Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
== 何をレミュレートするものか == | == 何をエミュレートするものか == |
Line 49: | Line 49: |
=== エミュレータコンソール === コンソールについては冒頭リンクの[[http://sites.google.com/a/techdoctranslator.com/jp/android/developing/tools/emulator#console|エミュレータコンソールの使用]]を参照。 単純にtelnetを使用して接続でき、そこで様々なコマンドを発行することができる。 {{{ telnet localhost 5554 }}} これらのコマンドで、実機のハードウェア状態のエミュレートを指示することができる。例えば、 「power ac off」ではAC電源に接続されていない状態(バッテリーでの駆動)にすることができるし、 「power capacity 10」とすればバッテリー残量を10%とすることができる。 エミュレータ上のプログラムがこれらのハードウェア状態に対応しなければならない性質のものである場合、適切に対処することができるかをテストできるというわけ。 |
Androidエミュレータについて
リンク
何をエミュレートするものか
Android用の開発プログラムは実機を用いることなくエミュレータ上で実行することができるのだが、このエミュレータなるものは、単にJavaコードを実行するのではなく、実機のCPUをエミュレートするものであるらしい。
つまり、実機のCPUがARMプロセッサであるならば、そのARMプロセッサ自体の動作をエミュレートし、その上にDalvik-VMを動作させ、その上で開発コード(Javaのコンパイル済みクラスをまとめたapkファイル)を実行するようだ。
このCPUエミュレーションにはQEMUというものが使用されているとのこと。
このように、おそらくx86系とは根本的に命令セットの異なると思われる(よく知らないのだが)ARMプロセッサをx86上で動作させるため、エミュレータの動作には非常にCPUパワーが必要になる。
複数のエミュレータを起動する
エミュレータは同時に複数起動することができる(それが何になるのか現在のところ不明)。
まず、Eclipse上で「設定/Android SDK and AVD Manager」を選択し、Virtual Devicesを選択。複数のavdを作成する。 これを仮にmy_avd, your_avdとする。これらのavdはこの画面にも表示されているように「ユーザ名\.android\avd」フォルダに作成される。つまり、SDKインストールディレクトリとは別の場所に作成されている。
他にも作成方法があるらしいがこれが最も簡単。
次に、コマンドプロンプトで「SDKインストールディレクトリ\tools」に移り、
start emulator -avd my_avd start emulator -avd your_avd
などとする。一つのavdについてはただ一つのエミュレータしか動作しないため、
start emulator -avd my_avd start emulator -avd my_avd
としても一つのエミュレータしか起動しない。
エミュレータの使用するポートは5554から2刻みで、この場合は5554と5556になる(エミュレータ画面に表示される)。 つまり、最初のエミュレータは5554,5555ポートを使用し、次は5556,5557を使用する。
エミュレータの制御
最初のエミュレータは、ポート5554と5556の二つのポートを使用するが、これはそれぞれ以下の目的で使用される。
- 5554 エミュレータコンソール
- 5555 adb用
エミュレータコンソール
コンソールについては冒頭リンクのエミュレータコンソールの使用を参照。
単純にtelnetを使用して接続でき、そこで様々なコマンドを発行することができる。
telnet localhost 5554
これらのコマンドで、実機のハードウェア状態のエミュレートを指示することができる。例えば、 「power ac off」ではAC電源に接続されていない状態(バッテリーでの駆動)にすることができるし、 「power capacity 10」とすればバッテリー残量を10%とすることができる。
エミュレータ上のプログラムがこれらのハードウェア状態に対応しなければならない性質のものである場合、適切に対処することができるかをテストできるというわけ。