基本的なタッチ スクリーンのジェスチャーとスマートフォンの操作以外の方法を使用して、仮想デバイスでアプリをテストする必要が生じることがあります。たとえば、さまざまな場所やネットワークの状態をシミュレートする場合などです。このページでは、高度なエミュレータ機能と、Android Studio でエミュレータを起動するさまざまな方法について説明します。
このセクションの別のページでは、ターミナルを使用する、エミュレータのさらに高度な使用方法について説明しています。特別なユースケースは次のとおりです。
- Android Studio を使用していない場合は、コマンドラインからエミュレータを起動できます。
- 指紋認証などの機能をテストしたり、仮想デバイスのバッテリー状態を変更したりするには、エミュレータ コンソール コマンドを送信します。
- 相互に通信できる 2 つのエミュレータ インスタンスを用意したり、他の複雑なネットワーク アーキテクチャを設定したりするには、エミュレータのネットワークをセットアップします。
ほとんどのアプリ デベロッパーは、基本的なエミュレータ ナビゲーション機能とこのページの機能で、テストのニーズを満たすことができます。エミュレータの操作方法に応じて何ができるかを個別に比較するには、エミュレータの機能比較をご覧ください。
スクリーンショット
仮想デバイスのスクリーンショットを撮るには、スクリーンショット撮影ボタン をクリックします。
表示される [Screen Capture] ダイアログで、撮影した画像を再撮影、編集、コピーできます。画像に問題がなければ、[Save] をクリックします。撮影した年、月、日、時、分、秒を示す Screenshot_yyyymmdd-hhmmss.png
という PNG ファイルが作成されます。必要に応じて、名前を変更したり、ファイルの保存場所を選択したりできます。
次のいずれかのコマンドを使用して、コマンドラインからスクリーンショットを撮ることもできます。
screenrecord screenshot [destination-directory]
adb emu screenrecord screenshot [destination-directory]
画面の録画
Android Emulator から動画と音声を記録し、WebM またはアニメーション GIF ファイルに保存できます。
画面録画コントロールは、[Extended Controls] ウィンドウの [Record and Playback] タブにあります。
ヒント: 画面録画コントロールは、Ctrl+Shift+R(macOS では Command+Shift+R)キーを押して開けます。
画面の録画を開始するには、[Record and Playback] タブの [Start recording] ボタンをクリックします。録画を停止するには、[Stop recording] をクリックします。
録画した動画を再生および保存するコントロールは、[Record and Playback] タブの下部にあります。動画を保存するには、タブの下部にあるメニューから [WebM] または [GIF] を選択して、[Save] をクリックします。
または、コマンドラインで次のコマンドを使用して、エミュレータから画面の録画と保存を行うこともできます。
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
カメラのサポート
以前のバージョンの Android の仮想デバイスでは、エミュレータは基本的なカメラ機能をサポートしています。Android 11 以降で追加されている Android Emulator のカメラ機能は、以下のとおりです。
- RAW 撮影
- YUV 再処理
- レベル 3 デバイス
- 論理カメラのサポート
- センサー マネージャーのデータを使用してセンサーの向きをエミュレート
- ハンドシェイク頻度の低減による動画の手ぶれ補正の適用
- 通常は YUV パイプラインで行われるアップスケーリングを除去してエッジ補正を適用
- 同時カメラ
仮想シーンカメラと ARCore
仮想環境で仮想シーンカメラを使用して、ARCore で作成された拡張現実(AR)アプリを試すことができます。
エミュレータで仮想シーンカメラを使用する方法については、Android Emulator で AR アプリを実行するをご覧ください。
エミュレータでカメラアプリを使用する場合、仮想シーン内で使用する PNG または JPEG 形式の画像をインポートできます。仮想シーンで使用する画像を選択するには、[Extended controls] ウィンドウを開き、[Camera] > [Virtual scene images] タブを選択して [Add image] をクリックします。この機能を使用すると、カメラベースのアプリで使用する QR コードなどのカスタム画像をインポートできます。詳細については、拡張画像をシーンに追加するをご覧ください。
一般的な AR アクションをマクロでテストする
エミュレータでプリセット マクロを使用すると、一般的な AR アクションのテストにかかる時間を大幅に短縮できます。たとえば、マクロを使用して、デバイスのすべてのセンサーをデフォルトの状態にリセットできます。
マクロを使用する前に、Android Emulator で AR アプリを実行するの手順に沿って、アプリで使用する仮想シーンカメラを設定し、エミュレータでアプリを実行して、ARCore を更新します。その後に、次の手順でエミュレータ マクロを使用します。
- エミュレータを実行し、アプリを ARCore に接続して、エミュレータ パネルのその他アイコン
をクリックします。
- [Record and Playback ] > [Macro Playback] を選択します。
使用するマクロを選択し、[Play] をクリックします。
再生中に [Stop] をクリックすると、マクロを中断できます。
別のウィンドウでエミュレータを起動する
デフォルトでは、Android Emulator は Android Studio 内で実行されます。これにより、画面スペースを効率的に使用し、ホットキーを使用してエミュレータとエディタ ウィンドウをすばやく移動して、IDE とエミュレータ ワークフローを単一のアプリ ウィンドウで整理できます。
ただし、一部のエミュレータ機能は、別のウィンドウで実行する場合にのみ使用できます。別のウィンドウでエミュレータを起動するには、[File] > [Settings] > [Tools] > [Emulator](macOS では [Android Studio] > [Preferences] > [Tools] > [Emulator])に移動して、[Launch in a tool window] の選択を解除します。
拡張コントロール、設定、ヘルプ
拡張コントロールを使用すると、データの送信、デバイス プロパティの変更、アプリの制御などを行えます。[Extended controls] ウィンドウを開くには、エミュレータ パネルでその他アイコン をクリックします。なお、拡張コントロール オプションの一部は、Android Studio の外部で、別のウィンドウでエミュレータを実行する場合にのみ使用できます。
これらのタスクの多くは、キーボード ショートカットで実行できます。エミュレータのショートカットを一覧表示するには、F1(macOS では Command+/)キーを押して [Help] ペインを開きます。
表 1. 拡張コントロールの詳細
機能 | 説明 |
---|---|
位置情報 |
エミュレータでは「現在地」情報(エミュレートしているデバイスがある場所)をシミュレートできます。たとえば、Google マップで現在地 デバイスの位置情報に関するコントロールは、2 つのタブ([Single points] と [Routes])にまとめられています。 Single points [Single points] タブでは、Google マップの WebView を使用して、スマートフォンやブラウザで Google マップを使用しているときと同じようにスポットを検索できます。地図で場所を検索またはクリックすると、地図の下部で [Save point] を選択して保存できます。保存した場所はすべて [Extended controls] ウィンドウの右側の一覧に表示されます。 エミュレータの場所を地図上で選択した場所に設定するには、[Extended controls] ウィンドウの右下にある [Set location] ボタンをクリックします。 Routes [Single points] タブと同様に、[Routes] タブには、Google マップ WebView が表示されるので、2 つ以上の場所の間に経路を作成できます。経路を作成して保存する手順は次のとおりです。
保存した経路に沿ってエミュレータでシミュレートするには、[Saved routes] リストから経路を選択し、[Extended controls] ウィンドウの右下にある [Play route] をクリックします。シミュレーションを停止するには、[Stop route] をクリックします。 指定した経路に沿ってエミュレータで継続的にシミュレートするには、[Repeat playback] のスイッチを有効にします。エミュレータが指定された経路をたどる速度を変更するには、[Playback speed] メニューから速度を選択します。 GPX データと KML データをインポートする GPS データ交換フォーマット(GPX)やキーホール マークアップ言語(KML)ファイルの地理情報データを利用する方法は以下のとおりです。
速度はデフォルトで [Delay](Speed 1X)に設定されています。速度は 2 倍(Speed 2X)、3 倍(Speed 3X)のように増加させることができます。 |
ディスプレイ |
エミュレータを使用すると、サイズをカスタマイズできる複数のディスプレイにアプリをデプロイして、マルチウィンドウやマルチディスプレイをサポートするアプリをテストできます。仮想デバイスの実行中、次のように、最大 2 つのディスプレイを追加できます。
|
モバイル | エミュレータでは、さまざまなネットワークの状態をシミュレートできます。さまざまなネットワーク プロトコルのネットワーク速度に近づけたり、[Full] を指定してコンピュータで実現できる最高速度でデータを転送したりできます。ネットワーク プロトコルを指定すると必ず、[Full] にした場合よりも速度が低下します。さらにローミングなど、音声やデータ ネットワークの状態も指定できます。デフォルトでは AVD に設定されています。 [Network type] の値を選択します。
[Signal strength] の値を選択します。
[Voice status] と [Data status] の一方または両方の値を選択します。
|
電池 | デバイスの電池プロパティをシミュレートすると、さまざまな条件下でアプリの動作を確認できます。[Charge level] を選択するには、スライダー コントロールを使用します。 [Charger connection] の値を選択します。
[Battery health] の値を選択します。
[Battery status] の値を選択します。
|
Camera | エミュレータのカメラを開いたときにシミュレートされるシーンに画像を読み込むことができます。詳細については、ARCore ドキュメントのシーンに拡張画像を追加するをご覧ください。 |
電話 | エミュレータで電話の着信やテキスト メッセージの受信をシミュレートできます。 エミュレータへの通話を開始する方法は次のとおりです。
エミュレータにテキスト メッセージを送信する方法は以下のとおりです。
|
十字キー | AVD のハードウェア プロファイルで十字キーが有効になっている場合は、エミュレータで十字キーを利用できます。ただし、Android スマートウォッチなどの一部のデバイスは十字キーに対応していません。各ボタンがシミュレートする動作は以下のとおりです。 ![]() |
Microphone | [Virtual microphone uses host audio input] がオンになっている場合、エミュレータはホストマイクからオーディオ入力を受け取ります。そうでない場合は、オーディオ入力を受け取りません。[Virtual headset plug inserted]、[Virtual headset has microphone]、および [Voice Assist] オプションは、現在実装されていません。 |
Fingerprint | このコントロールでは 10 種の異なる指紋スキャンをシミュレートできます。この機能を使用して、アプリで指紋機能の統合をテストできます。この機能は、Android 5.1(API レベル 22)以前、および Wear OS では無効です。 仮想デバイス上で指紋のスキャンをシミュレートする方法は次のとおりです。
|
Virtual sensors > Device Pose |
このコントロールでは、デバイスの位置および / またはデバイスの向きの変化に対するアプリの反応をテストできます。たとえば、傾きや回転などのジェスチャーをシミュレートできます。加速度センサーは、デバイスの絶対位置を追跡することはありません。変更が発生したことを検出するだけです。このコントロールは、実際のデバイスを移動または回転させたときの加速度センサーと磁力計センサーの反応をシミュレートします。 このコントロールを使用するには、AVD の加速度センサーを有効にする必要があります。 このコントロールは、x、y、z 軸で このコントロールは x、y、z 軸でデバイスを回転させるには、[Rotate] を選択して、次のいずれかを行います。
Yaw、Pitch、Roll の計算方法の詳細は、デバイスの向きの計算に関する説明をご覧ください。 デバイスを水平(x)または垂直(y)に移動するには、[Move] を選択し、次のいずれかを行います。
デバイスを 0、90、180、270 度に配置するには:
デバイスを調整すると、それに応じて [Resulting values] フィールドが変わります。これらの値には、アプリからアクセスできます。 上記のセンサーの詳細については、センサーの概要、モーション センサー、位置センサーをご覧ください。 |
Virtual sensors > Additional sensors | エミュレータは、さまざまな位置および環境センサーをシミュレートできます。以下のセンサーを調整して、アプリでテストできます。
|
バグレポート | エミュレータで問題が発生した場合は、バグレポートを作成して送信できます。エミュレータは、バグレポート用のスクリーンショットやログなどのデータを自動的に収集します。 |
Record and Playback | 画面の録画をご覧ください。 |
Google Play | AVD システム イメージに Play ストア アプリが含まれている場合、Google Play 開発者サービスのバージョン情報が表示されます。 |
Settings > General |
|
Settings > Proxy | エミュレータはデフォルトで Android Studio の HTTP プロキシ設定を使用します。この画面では、エミュレータの HTTP プロキシ設定を手動で定義できます。詳細については、エミュレータでプロキシを使用するをご覧ください。 |
Settings > Advanced |
|
Help > Keyboard Shortcuts | このペインには、エミュレータのキーボード ショートカットの一覧が表示されます。エミュレータでの操作中にこのペインを開くには、F1(macOS では Command+/)キーを押します。 ショートカットを有効にするには、[General] 設定ペインの [Send keyboard shortcuts] オプションを [Emulator controls (default)] に設定する必要があります。 |
Help > Emulator Help | エミュレータのオンライン ドキュメントを参照するには、[Documentation] をクリックします。 エミュレータのバグを報告するには、[Send feedback] をクリックします。詳細については、エミュレータのバグを報告する方法をご覧ください。 |
Help > About | エミュレータで使用している エミュレータのシリアル番号は emulator-adb_port です。これは、 |
アプリを起動せずにエミュレータを起動する
アプリを実行せずにエミュレータを起動したい場合があります。たとえば、2 台のエミュレータ デバイスを Bluetooth でペア設定して、それらの相互作用を確認したい場合などです。アプリを起動せずにエミュレータを起動する手順は次のとおりです。
- デバイス マネージャーを開きます。
- AVD をダブルクリックするか AVD を選択して、実行アイコン
をクリックします。Android Emulator が読み込まれます。
エミュレータの実行中に、Android Studio プロジェクトを実行して、エミュレータを対象デバイスとして選択できます。次のセクションで説明するように、1 つ以上の APK をエミュレータにインストールして実行することもできます。
ファイルのインストールと追加
Google Play ストアで入手できないアプリをエミュレータで使用したい場合は、APK ファイルを手動でインストールできます。エミュレートするデバイスに APK ファイルをインストールするには、APK ファイルをエミュレータ画面にドラッグします。ファイルをドラッグすると、APK インストーラ ダイアログが表示されます。インストールが完了すると、アプリリストにアプリが表示されます。
エミュレートしているデバイスにファイルを追加するには、ファイルをエミュレータ画面にドラッグします。
ファイルは /sdcard/Download/
ディレクトリに配置されます。追加したファイルは、Device File Explorer を使用して Android Studio から表示できます。デバイスのバージョンによっては、ダウンロードまたはファイルアプリを使用してデバイスからファイルを検索できます。
スナップショット
スナップショットは、AVD の保存されたイメージであり、OS 設定、アプリの状態、ユーザーデータなど、デバイスが保存された時点の全体的な状態を保持します。スナップショットを読み込むことで、保存されたシステム状態に戻せるため、仮想デバイス上のオペレーティング システムとアプリの再起動を待つ時間を削減でき、テストを再開したい特定の状態にアプリを戻す手間が省けます。スナップショットを読み込んで仮想デバイスを起動することは、実機を電源オフの状態から起動するのではなく、スリープ状態から起動する場合に似ています。
AVD ごとに、1 つのクイックブート スナップショットを作成でき、一般的なスナップショットは無制限に作成できます。
スナップショットを利用する最も簡単な方法は、クイックブート スナップショットを使用することです。デフォルトでは、各 AVD は終了時にクイックブート スナップショットを自動的に保存し、起動時にクイックブート スナップショットから読み込みが行われるように設定されます。
AVD を初めて起動するときは、コールドブートを行う必要があります(デバイスの電源を入れるのと同じです)。クイックブートが有効になっている場合、初回以降の起動時にはすべて指定のスナップショットから読み込みが行われ、システムはそのスナップショットに保存された状態に復元されます。
スナップショットは、そのスナップショットを保存したときのシステム イメージ、AVD 構成、エミュレータ機能に対して有効です。これらの領域のいずれかを変更すると、影響を受ける AVD のすべてのスナップショットが無効になります。Android Emulator、システム イメージ、または AVD 設定を更新すると、AVD の保存済み状態がリセットされるため、次回 AVD を起動するときはコールドブートを行う必要があります。
スナップショットの保存、読み込み、管理のコントロールのほとんどは、[Snapshots] ペインの [Snapshots] タブと [Settings] タブにあります。Android Studio のツール ウィンドウでエミュレータを実行している場合は、エミュレータ ツールバーに [Snapshots] ペインボタンが表示されます。Android Studio の外部で、スタンドアロン ウィンドウでエミュレータを実行している場合は、[Extended controls] ウィンドウに [Snapshots] ペインが表示されます。
コマンドラインからエミュレータを起動するときにも、クイックブート オプションを操作できます。
クイックブート スナップショットを保存する
閉じるときエミュレータが自動的にスナップショットを保存するかどうかを指定できます。この動作を制御するには、次の手順で処理します。
- スナップショットの設定を開きます。Android Studio にエミュレータが埋め込まれている場合は、ツールバーの [Snapshots] をクリックします。エミュレータが別のウィンドウに表示されている場合は、[Extended controls] ウィンドウを開きます。
- コントロールの [Snapshots] カテゴリで、[Settings] タブに移動します。
[Auto-save current state to Quickboot] メニューから、次のいずれかのオプションを選択します。
Yes: エミュレータを閉じるときは常に AVD スナップショットを保存しますこれがデフォルトです。
No: エミュレータを閉じるときに AVD スナップショットを保存しません。
選択した内容は、現在開いている AVD にのみ適用されます。ADB がオフラインのとき(AVD の起動中など)にスナップショットを保存することはできません。
一般的なスナップショットを保存する
クイックブート スナップショットは AVD ごとに 1 つしか保存できないのに対して、一般的なスナップショットは AVD ごとに複数保存できます。
一般的なスナップショットを保存するには、[Snapshots] ペインを開き、右下隅にある [Take snapshot] ボタンをクリックします。
選択したスナップショットの名前と説明を編集するには、ペインの下部にある編集ボタン をクリックします。
スナップショットを削除する
スナップショットを手動で削除するには、[Snapshots] ペインを開き、スナップショットを選択して、ペインの下部にある削除ボタン をクリックします。
また、AVD 設定やエミュレータのバージョンが変更されたときなどに、無効になったスナップショットを自動的に削除するかどうかも指定できます。デフォルトでは、エミュレータは無効なスナップショットを削除するかどうかを確認します。この設定は、[Snapshots] ペインにある [Settings] タブの [Delete invalid snapshots] メニューで変更できます。
スナップショットを読み込む
必要なときにスナップショットを読み込むには、エミュレータの [Snapshots] ペインを開き、[Snapshots] カテゴリを選択し、スナップショットを選択して、ペインの下部にある読み込みボタン をクリックします。
Android Studio 3.2 以降では、デバイス設定ごとに、[Virtual Device Configuration] ダイアログの詳細設定に [Boot option] コントロールが表示されます。このコントロールを使用して、AVD の起動時に読み込むスナップショットを指定できます。
クイックブートを無効にする
AVD が常にコールドブートを実行するようにクイックブートを無効にする手順は次のとおりです。
- [Tools] > [Device Manager] を選択し、AVD 編集アイコン
をクリックします。
- [Show Advanced Settings] をクリックし、[Emulated Performance] までスクロールします。
- [Cold boot] を選択します。
一度だけのコールドブート
クイックブートを完全に無効にする代わりに、[Device Manager] の AVD メニューで [Cold Boot Now] をクリックすることで、コールドブートを一度実行できます。
スナップショットの要件とトラブルシューティング
- スナップショットは、Android 4.0.4(API レベル 15)以前では機能しません。
- スナップショットは、Android 8.0(API レベル 26)の ARM システム イメージでは機能しません。
- エミュレータがスナップショットからの起動に失敗した場合は、デバイス マネージャーで AVD の [Cold Boot Now] を選択し、バグレポートを送信します。
- ソフトウェア レンダリングが有効になっている場合、スナップショットの信頼性は低下します。スナップショットが機能しない場合は、デバイス マネージャーで AVD 編集アイコン
をクリックし、[Graphics] を [Hardware] または [Automatic] に変更します。
- スナップショットの読み込みまたは保存は、メモリを集中的に使用する操作です。読み込みまたは保存操作の開始時に十分な RAM を確保できない場合、オペレーティング システムは RAM の内容をハードディスクにスワップすることがあり、操作が大幅に遅くなる可能性があります。スナップショットの読み込みや保存が非常に遅い場合は、RAM を解放するとこうした操作を高速化できることがあります。作業上重要でないアプリケーションを閉じると、簡単に RAM を解放できます。
Wi-Fi
API レベル 25 以上の AVD を使用する場合、エミュレータで Wi-Fi アクセス ポイント(「AndroidWifi」)をシミュレートでき、Android はこれに自動的に接続されます。
コマンドライン パラメータ -feature -Wifi
を使用してエミュレータを実行すると、エミュレータで Wi-Fi を無効にできます。
制限事項
Android Emulator には、次の仮想ハードウェアは含まれません。
- Bluetooth
- NFC
- SD カードの挿入、取り出し
- デバイスに装着されたヘッドフォン
- USB
Wear OS のスマートウォッチ エミュレータには、[Overview (Recent Apps)] ボタン、十字キー、指紋認証センサーはありません。