・
[Mobile] 関係の記事・
[Android] 関係の記事 一昨日、昨日と、非力マシンで「Android」の「emulator」を弄っていたので、メモしておきます。
本日1つ目のメモは、サンプル・アプリ「Lunar Lander」のコンパイルと「Android」へのインストールについてです。
以下、備忘録です。
■ サンプル・アプリ「Lunar Lander」
「Android」のSDK付属のサンプル・アプリ「Lunar Lander」を、コンパイルして「emulator」にインストールするまでを実験しました。
以下、「Android」について少し書いておきます。
「Android」は、Linux系のOSです。このOSは、「emulator.exe」を実行すると、バーチャルOSとしてPC上に起動します。
Linux系のOSなので、shellコマンドで、「Android」内のディレクトリ構造を見たり、ファイル操作したりできます。
以下、まずは「Eclipse」でプロジェクトをコンパイルしてデバッグした時のメモです。
■ 「Lunar Lander」を「Eclipse」でコンパイルして実行
・「Eclipse」を起動。
・「Lunar Lander」のプロジェクトを作る。
・プロジェクトの作り方は以下の通り。
・[ファイル]→[プロジェクト]→ダイアログ起動→[Android]→[Androidプロジェクト]として作ること(「Javaプロジェクト」ではない)。
・[Androidプロジェクト]を選ぶと、既存プロジェクト(サンプルの「Lunar Lander」)を、ディレクトリ指定で読み込むことができる。
■ 実行1 「Eclipse」のデバッグから実行
・実行からエミュレーターの起動まで4分9秒。
・ホーム画面が出て、1分40秒後に「Lunar Lander」の画面が起動。
・CPUは100%になりっぱなしだが、取り敢えず遊ぶことはできる。
・8462が方向キーで、5が決定キー。
・エミュレーターは起動したままで、再度デバッグを実行。
・「Lunar Lander」は、今度は1分30秒で起動した(既に「emulator.exe」自体は起動しているため、短くなっている)。
以下、メモです。
・デバッグの際は、エミュレーターは起動しっぱなしにしておく。
デバッグを実行した際の「Eclipse」の動作は、以下の通りです。
・ソースをコンパイルする。
・プロジェクトをapkファイルにする。
・apkファイルにデバッグ用の署名をする。
・そのファイルをエミュレーターにアップロードしてインストールする。
・アプリをデバッグ用に実行する。
■ 実行2 別マシンの「Android」にインストールして実行
以下、開発用のマシンとは別に、デバッグ用のマシンを用意してデバッグをするための実験です。
・プロジェクトを右クリック→[Androidツール]→[Export Unsigned Application Package...]を選ぶ。
・コンパイルされた、apkファイルが作られる。
・コンパイルしているのとは別のマシンで、デバッグツールである「ddms」を起動。
※ こうすれば、「Eclipse」のデバッグ機能を利用しなくても、そのマシンでデバッグが可能なため。
・コンパイルしているのとは別のマシンで、コマンドラインに「emulator」と打ち込んで「Android」を起動。
・「LunarLander.apk」を別マシンにコピー。コマンドラインで、そのディレクトリに移動。
・コマンドラインで、「adb install LunarLander.apk」として、エミュレーター上の「Android」に、アプリをアップロードする(ここでは失敗する)。
アプリの追加、削除方法は以下を参照。
追加:
http://www.javadrive.jp/android/distribute/index3.html削除:
http://www.javadrive.jp/android/distribute/index4.html・インストールに失敗して、「Failure [Install_PARSE_FAILED_NO_CERTIFICATES]」というエラーメッセージが出る。
原因は、アプリに署名がないため。
「Android」では、アプリを導入するためには、アプリに署名をしておく必要がある。
参考:
http://karetta.jp/book-node/android/233799
■ アプリへの署名の方法1 証明書の作成
・アプリをインストールするには「keytool」(JDK付属のソフト)で署名をする必要がある。
・まずは、署名するための証明書を作る。
参考:
http://www.adamrocker.com/blog/232/signing_for_publish_android_application.html・コマンドラインで、証明書を作るディレクトリに移動。
・以下のコマンドで、証明書を作成。
keytool -genkey -keystore (名前).keystore -validity 10000 -alias (名前)
・「キーストアのパスワードを入力して下さい。」などと尋ねられるので、聞かれた通りに答えていく。
・「〜でよろしいですか?」と聞かれるので、「yes」と入力。最後まで質問に答えていく。
■ アプリへの署名の方法2 アプリへの署名
・アプリに署名をする。
・「(名前).keystore」と「LunarLander.apk」は同じディレクトリにあるとする。違う場合はフルパスで書く。
jarsigner -keystore (名前).keystore -verbose LunarLander.apk (名前)
・これで署名完了。apkファイルのファイルサイズが、2KBぐらい増える。
・別マシンのemulatorに「adb install LunarLander.apk」としてインストールを行う。
・今度は成功した。
・「LunarLander」をしばらく弄る。CPU消費は70%ぐらいなので、デバッグは可能そう。
というわけで、プロジェクトをコンパイルして「Android」で実行するまでをやってみました。