Android SDKを使おう

パソコンでもアンドロイドが体験できます。
もちろん3G通信やカメラなど
利用できない機能もありますが、
大半のアプリはそのまま動作します。
ここではパソコンでアンドロイドSDK(エミュレータ)を動かし
アンドロイドマーケットやGmail、Googleマップを使ったり
実機のスマートフォンにインストールした無料・有料アプリを
エミュレータでも利用する方法を紹介します。

(Android2.2のほか2.3も同じ手順で可能です・1.5用ではない最新のマーケットが使えます)


なお(マーケット以外の)普通のapk形式のアプリをインストールするだけなら、以下ような複雑な手順はいりません。APK形式のアプリを「アストロ」を使ってインストールする方法をご覧ください。

アンドロイド・エミュレータの画面

1.SDKのインストール

・まず、アンドロイドより先に「ジャバ」を入れる必要があります。
Java 6 JDKへのリンクにアクセスします。
Platformを選ぶところで「Windows」を選択します。
ユーザー登録は無視して、そのまま「continue」を押して次に進みます。
すると「jdk-6u21-windows-i586.exe 75.91MB」というリンクが表示されるので、巨大ファイルですが、がんばってダウンロードします。ダウンロードが終わったらそのままインストールします。
・続いて「アンドロイドSDK」本体を入れます。
http://developer.android.com/sdk/index.htmlにアクセスして、「Windows用」のインストーラー付きパッケージ(installer_r10-windows.exe) 3.3MBをダウンロードします。ダウンロードしたら、そのままインストールします。

・使うだけで、開発するわけではないのでEclipseなどを入れる必要はありません。

2.エミュレータの起動

[a]アンドロイド2.2のダウンロード
Windowsのスタートメニューから「Android SDK tools」→「SDK Manager」を起動します。
そのまま進むとAndroid1.6から2.3まで全部インストールされてしまいますが、途中で「cancel」を押すとAndroid2.2だけを手動で選んでインストールすることもできます。
[b]エミュレータの起動
SDK Managerの左にあるメニューから「Virtual Device」を選びます。右にある「New」ボタンを押して新規エミュレータを作成します。
エミュレータには名前が必要です。ここでは「A22」という名前にします。その下でアンドロイドのバージョン(ここでは2.2)を選び、さらに仮想SDカードの容量を入力します。1GB(1024MB)など好きな数字でかまいませんが、実機と合わせると後でやり取りがしやすいかもしれません。

エミュレータ(ADV)の作成画面の例

3.マーケットのインストールの準備

・SDK Managerの右の「start」ボタンを押すと、しばらくしてエミュレータが起動します(初回は5分!くらいかかります)。ところが、動かしてみるとブラウザー以外なんのアプリも入っていないことに驚かされます。
やはりマーケットあってこそのアンドロイドです。ところが探してみても「マーケット」アプリはどこにもありません。しかも普通にインストールすることはできません。
それはマーケットやGmailといったグーグル関連のアプリはシステムフォルダ(/system)に置かれているからです。システムフォルダはエミュレータでも実機でも読みとり専用(read only)で、変更・削除・上書きは一切できません。
実機では書き直すことはまず無理ですが、エミュレータではシステムファイルを変更して自分好みのアンドロイドを作ることができます。ようやく本題です。

一度、エミュレータやSDKをすべて止めてください(準備ができてから、動かします)

[a]システムファイル(system.img)のコピー
エミュレータではシステムフォルダが「system.img」という一つのファイルになっています。もともと入っているものを原料にして変更を加えていきます。

SDKのフォルダにあるファイルをエミュレータ(A22)の設定フォルダにもコピーします。そうすることで設定フォルダ内の変更したsystem.imgが利用されるようになります。

C:\Program Files\Android\android-sdk-windows\platforms\android-8\images\system.img
をエクスプローラで探し出して、エミュレータの設定フォルダ
C:\Documents and Settings\[PCのユーザー名]\.android\avd\A22.avd\
の中へコピーします。(移動ではありません。元のファイルは残してください)

[b]必要なファイルのダウンロード

ここ(FC2)ではapk形式のファイルが扱えないので忍者サーバ(http://androidsdk.zouri.jp/)に置きました。
リンク先から
1.Vending.apk(マーケット本体)
2.GoogleServiceFramework.apk(必要なファイル)
3.MarketUpdater.apk(たぶん必要なファイル)
4.Development.apk(たぶん必要なファイル)
の4つをダウンロードして、次の作業がしやすいようにアンドロイドSDKのフォルダの中
C:\Program Files\Android\android-sdk-windows\platform-tools\
に入れてください。

4.マーケットのインストール

・準備が整ったので、システムファイルを追加していきます。
[a]コマンドプロンプトから、エミュレータを起動します。
まずWindowsのコマンドプロンプトを立ち上げます。

cd C:\Program Files\Android\android-sdk-windows\tools」と入力してディレクトリを移動します
emulator -avd A22 -partition-size 100
と入力して、まずA22と名づけたエミュレータを起動します。(partition-sizeを指定してシステム領域を広げないとマーケットを入れる容量が足りなくなります。この時だけはSDK Managerの「Start」を使わず、コマンドで起動してください。) キチンと立ち上がるまでじっと我慢します。

 

エミュレータの起動待ちの画面

[b] もう一つコマンドプロンプトを立ち上げます。
cd C:\Program Files\Android\android-sdk-windows\platform-tools
と入力して、作業のためのディレクトリに移動します。
エミュレータのルート・シェル(Linuxのコマンドプロンプト)を起動します

adb -s emulator-5554 shell

(adb.exeはAndroid2.2までのSDKに入っているコマンドです。2.3のSDKでは削除されていますが2.2用のものが使えます)。
シェルが起動すると、プロンプトが#に変わります。そこに
mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
と入力します。これでシステムフォルダを読み取り専用から読み書き可能に属性を変更できます。

さらにシステム・アプリのフォルダに書き込みを許可します。
chmod 777 /system/app
完了したらシェルを終了します。
exit

コマンド・プロンプトの表示例

[c] いよいよマーケット本体のインストールです。(シェルを終了したあとの)Windowsのコマンドプロンプトから
adb -s emulator-5554 push Vending.apk /system/app/
を実行します。10秒ぐらいでメッセージが出て、プロンプトに戻ればOKです。
続いて必要なファイルを入れていきます。
adb -s emulator-5554 push GoogleServicesFramework.apk /system/app/
adb -s emulator-5554 push MarketUpdater.apk /system/app/
adb -s emulator-5554 push Development.apk /system/app/
これで4つのapkファイルが無事にシステムに入りました。

[d] 不要なファイルを消していきます。

まずシステムフォルダのSdkSetup.apkを消して正しいアンドロイドに変身させます。

コマンドプロンプトで
adb shell rm /system/app/SdkSetup.apk

を実行します。

[e] ここで2つのコマンドプロンプトを閉じて、エミュレータをすべて止めてください。(エミュレータが動作していると次のファイルが消せません)

[f] 最後に設定フォルダの不要な2つのキャッシュ・ファイルを消します。

エクスプローラで
C:\Documents and Settings\[PCのユーザー名]\.android\avd\A22.avd\」を開き
その中の「userdata-qemu.img」と「cache.img」の二つのファイルを消します。

削除すべきファイル

5.アンドロイド・エミュレータ完成!

完成したA22エミュレータを立ち上げてみてください。アンドロイド2.2が普通に使えるはずです。
マーケットを利用するにはGoogleのアカウントが必要です。その場で新規登録もできます。他のアンドロイドで使用しているアカウントを使うと、マーケットが動かないことがありますので、エミュレータ用には別のアカウントを作製することをおすすめします。

なお、このように無理をしてエミュレータ上でマーケットを利用しなくても、アプリを入れる方法があります。
他のエミュレータや実機のアンドロイドにインストールしたアプリを「アストロファイルマネージャ」や「APKoptic」などを使って「apk形式」に戻すことが出来ます。(インストールしたアプリをAPK形式に戻す方法をご参照ください)

そのapkファイルをSDカード経由などでパソコンに入れて、前述のSDKのplatform-toolsにある「adb」コマンドでインストールできます。
コマンドプロンプトから、「abd install アプリ名.apk」と入力するだけです。インストールが成功すると「success」と表示されます。
エミュレータのアンドロイド上でFTPやWEB経由で、直接apkファイルをダウンロードしてアストロを使ってエミュレータにインストールする方法もあります。(APK形式のアプリを「アストロ」を使ってインストールする方法をご参照ください)
 

最近では悪意を持ったアプリも出回っていると言われ、マーケット以外でダウンロードしたアプリのチェックなどにエミュレータが活用できそうです。


画面の例


これぐらいのゲームは普通に遊べます。なお画面を横向きにするには「CTRL-F11」を押します。
もう一度押すと元に戻ります


数々の疑問にお答えします
Q)手順どおりにやったのに、マーケットがみつからないよ
A)あなたは、最初に「system.img」をコピーするのを忘れてます
Q)adbというコマンドが見つかりません
A)最新のSDKではadb.exeが削除されているらしいです。アストロの使い方の最後に置いた「adb.zip」を解凍して、その中の「adb.exe」を使ってみてください。
Q)adb -s emulator-5554 shellが動かないよ
A)アンドロイド画面のロックを解除して、もう一度トライ
Q)5554ってなに
A)エミュレータのポート番号です。左上に表示されています。5556とかのこともあるようです。その場合は5554を全部5556になおしてください
Q)アプリが動かない、アプリが途中で止まる
A)動かないものがかなりあります。エミュレータのメモリの設定などで動くこともあるようです
Q)音が出ないよ
A)音は出ないようです。出し方がわかったら教えてください。
Q)遅い
A)「もっさり」というレベルを超越していますが、必ず動きますから忍耐が大切です。
待ちきれずに途中で操作すると、いっそう悲惨な状況になることが多いです。
画面が変わるまで、毎回待ちましょう。
Q)マーケットの検索結果が出ません。最初の画面が変です。
A)Googleアカウントが別のアンドロイドやエミュレータに紐付けされていると、うまく動きません。
新しいアカウントを作って実験しましょう。最初にマーケットを起動する時に「sign up」をクリックして作ることもできます。
もし既存のアカウントを使って変になっても、エミュレータの起動時に「Wipe User Data(個人情報の消去)」をチェックして起動すると、設定を初期化できます。
また、たとえ変になっても、それまで使っていた実機や他のエミュレータには影響しないようですので、ご安心下さい。
個人設定の消し方
Q)やり方が長すぎて、読んでられない
A)本当は、変更した「system.img」をダウンロードするだけで良いのですが、それでは応用がきかないので、今回は心を鬼にしてあえてadbを使って1つずつ作っています。


上にも書きましたが、必要なファイルや追加の情報は忍者サーバ(http://androidsdk.zouri.jp/)にあります。こちらも是非ご参照ください。

 

2010/12/15作成・2011/3/30リンク先確認済・内容の大きな変更の予定はありません

inserted by FC2 system