Android Virtual Device¶
AndroidデバイスをPC上でエミュレートするソフトウェアです。Android SDKに含まれます。
設定¶
Windows OS上でAndroid Virtual Deviceを実行するには、次の2つのハイパーバイザーのいずれかを使用します。
- Intel Hardware Accelerated Execution Manager (HAXM)
- Windows Hypervisor Platform (WHPX)
Intel HAXM¶
「死ぬほど遅い」といわれるAndroidエミュレータを高速にする機構です。
ARMプロセッサではなくIntelプロセッサ(Atom)をPC上でエミュレートするのでネイティブにAndroidが実行されるので高速になるという仕組みと思います。
ただし、Intel HAXMを動かすには、Intel CPUを搭載し、VT-x、EM64T、XDが必要となります。
また、Hyper-Vと同居できないのでHyper-Vを無効にする必要があります。
WHPX¶
Windows Hypervisor Platform 機能を利用します。Intel CPUまたはAMD CPUで動作します。
Hyper-Vと同居することができます。
- SSSE3命令を使用するため、AMD CPUではBulldozerコア以降が必要です(PhenomⅡでは利用できません)。
トラブルシュート¶
エミュレータ・ウィンドウ¶
エミュレータ・ウィンドウのタイトルバーが画面の外に出て移動できない¶
Windows 7では、タスクバーのエミュレータアイコンにマウスを重ね、サムネイルが表示されたら底にマウスを移動して右クリックします。ポップアップメニューの[移動]をクリックすると、エミュレータ・ウィンドウがカーソルキーまたはマウス移動で移動できます。
エミュレータ・ウィンドウが大きすぎて開発マシンのディスプレイに収まらない¶
最近のデバイスは解像度がPCよりも高いので、そのまま表示すると開発PCの画面を超えてしまうことがあります。Nexus 6は解像度が1440x2560になるので、開発PCがWUXGA(1920x1200)であっても収まりきれません。そこで、画素の対応を1対1から変更します。
試行1)AVD Managerに設定¶
[Tools]メニュー > [Android] > [AVD Manager]をクリックし、「Android Virtual Device Manager」画面を開きます。
既存のデバイスの設定(鉛筆アイコンをクリック)を開き、Startup size and orientationの箇所でScale: をデフォルトの"Auto"から、"2dp on device = 1px on screen"などに変更します。
Androidデバイスの解像度の2ピクセルを開発マシンの画面の1ピクセルとするのがこの設定です。
- 結果:AVD Managerから起動するときは設定どおりの大きさになりましたが、Android Studioから立ち上げたときは設定が反映されず大きすぎる表示となってしまいました。
試行2)Android Studioに設定¶
[Run]メニュー > [Edit Configurations]をクリックして「Run/Debug Configurations」画面を開きます。
左側ペインで[app]が選択された状態で(デフォルト)、右側ペインの[Emulator]タブを選択します。
[Additional command line options:]欄に、-scale 0.5
のように記述します。0.1~3の範囲が指定できます。
エミュレータの設定・定義・挙動がおかしくなった¶
エミュレータの設定がおかしくなって回復が難しいときは、ばっさりエミュレータの設定を捨てて、新たに作り直したほうが速いことがあります。
AVD Managerで作成したエミュレータの設定は、Windows 7ではC:\Users\<ユーザー名>\.android\avd
ディレクトリの下にファイル群として置かれます。このavdディレクトリの中をばっさり消去してしまうと、初期状態(実行可能なエミュレータが空)となります。そこから再度エミュレータを定義します。