Revision 5 as of 2010-09-27 02:16:55

Clear message
Locked History Actions

Android/Emulator

Androidエミュレータについて

リンク

6.8 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用