仮想端末の作成と管理

Android Virtual Device (AVD) では、Android スマートフォンやタブレット、Wear OS、Android TV など、Android Emulator でシミュレートしたい端末の特徴を定義できます。

AVD Manager は Android Studio から起動できるインターフェースで、AVD の作成と管理を支援します。

AVD Manager を開くには、次のいずれかの手順を実行します。

  • [Tools > AVD Manager] を選択します。
  • ツールバーで [AVD Manager] AVD Manager アイコン をクリックします。

AVD の概要

AVD にはハードウェア プロファイルやシステム イメージ、ストレージ領域、スキンなどのプロパティが含まれています。

マニフェストの <uses-sdk> 設定に基づいて、アプリがサポートする可能性がある各システム イメージに対して、AVD を作成することをお勧めします。

ハードウェア プロファイル

ハードウェア プロファイルは工場出荷時の端末の特徴を定義します。 AVD Manager には Pixel 端末などの特定のハードウェア プロファイルがプリロードされていますが、必要に応じてハードウェア プロファイルを定義したり、カスタマイズしたりすることができます。

一部のハードウェア プロファイルのみに、[Play Store] が含まれることが示されています。 これは、それらのプロファイルが CTS に完全に準拠していて、Play ストア アプリを含むシステム イメージを使用できることを示しています。

システム イメージ

[Google API] というラベルの付いたシステム イメージには、Google Play サービスへのアクセスが含まれています。 Play ストア列に Google Play のロゴが付いているシステム イメージには、Google Play ストア アプリ Google Play サービスへのアクセスが含まれ、[Extended controls] ダイアログの [Google Play] タブには、端末の Google Play サービスをアップデートするのに便利なボタンが提供されます。

アプリのセキュリティを確保し、実機と同様の体験を提供できるようにするため、Google Play ストアを含むシステム イメージはリリースキーで署名されています。つまり、このイメージを使用して昇格された権限(root)を取得することはできません。 アプリのトラブルシューティングに昇格された権限(root)が必要な場合は、Google のアプリやサービスが含まれていない Android オープンソース プロジェクト(AOSP)のシステム イメージを使うことができます。

ストレージ領域

AVD は開発マシン上に専用のストレージ領域を確保します。 その場所にインストールしたアプリや設定内容、エミュレートする SD カードなどの端末のユーザーデータが保存されます。

必要に応じて、AVD Manager を使用してユーザーデータを消去して、端末内のデータを新品と同じ状態に戻せます。

スキン

エミュレータのスキンは端末の外観を決めるものです。 AVD Manager には、あらかじめスキンがいくつか用意されています。 また、自身で定義したスキンやサードパーティから提供されたスキンを使用することもできます。

AVD とアプリの機能

AVD 定義に、アプリが依存している端末機能が含まれていることを確認してください。 AVD で定義できる機能のリストについては、ハードウェア プロファイルのプロパティAVD プロパティをご覧ください。

AVD の作成

ヒント: エミュレータでアプリを起動したい場合は、Android Studio からアプリを実行し、表示された [Select Deployment Target] ダイアログで [Create New Virtual Device] をクリックします。

AVD の新規作成方法:

  1. [Tools] > [AVD Manager] をクリックして、AVD Manager を開きます。
  2. [AVD Manager] ダイアログの下部にある [Create Virtual Device] をクリックします。

    以下の [Select Hardware] ページが表示されます。

    一部のハードウェア プロファイルのみに、[Play Store] が含まれることが示されています。 これは、そのプロファイルが CTS に完全に準拠していて、Play ストア アプリを含むシステム イメージを使用する場合があることを示しています。

  3. ハードウェア プロファイルを選択して [Next] をクリックします。
  4. 使用したいハードウェア プロファイルがない場合は、ハードウェア プロファイルを作成するか、 インポートすることができます。

    以下の [System Image] ページが表示されます。

  5. 任意の API レベル用のシステム イメージを選択して [Next] をクリックします。
  6. [Recommended] タブには推奨されるシステム イメージが一覧表示されます。 他のタブには、より包括的なリストが表示されます。 右のパネルには、選択したシステム イメージが表示されます。 x86 イメージがエミュレータ上で最速であることが記載されています。

    システム イメージの隣に [Download] と表示されている場合は、クリックしてシステム イメージをダウンロードしてください。 ダウンロードする際はインターネットに接続する必要があります。

    ターゲット端末の API レベルは重要です。アプリに必要な API レベル(アプリのマニフェスト ファイルの minSdkVersion 属性で指定したレベル)よりも低い API レベルのシステム イメージではアプリを実行することができません。 システムの API レベルと minSdkVersion の詳細な関係については、アプリのバージョニングをご確認ください。

    アプリのマニフェスト ファイルで <uses-library> 要素を宣言している場合は、その外部ライブラリを含むシステム イメージが必要になります。 エミュレータ上でアプリを実行するには、必要なライブラリを含む AVD を作成してください。 そのためには、Google マップのライブラリを含む Google API のアドオンなど、AVD プラットフォーム用のアドオン コンポーネントを使用しなければならない場合があります。

    [Verify Configuration] ページが表示されます。

  7. 必要に応じて AVD プロパティを変更して [Finish] をクリックします。

    スキンなどの詳細設定を確認するには、[Show Advanced Settings] をクリックします。

  8. [Your Virtual Devices] ページに新しい AVD か [Select Deployment Target] ダイアログが表示されます。

コピーして AVD を作成する方法:

  1. AVD Manager の [Your Virtual Devices] ページで AVD を右クリックし、[Duplicate] を選択します。
  2. または、[Menu] をクリックし、[Duplicate] を選択します。

    [Verify Configuration] ページが表示されます。

  3. [System Image] ページと [Select Hardware] ページで変更が必要な場合は、[Change] か [Previous] をクリックします。
  4. 変更を終えたら [Finish] をクリックします。
  5. [Your Virtual Devices] ページに AVD が表示されます。

ハードウェア プロファイルの作成

AVD Manager には一般的な端末のハードウェア プロファイルがあらかじめ定義されており、それらを簡単に自身の AVD 定義に追加することができます。 一方、別の端末を定義したい場合は、ハードウェア プロファイルを新規に作成できます。 一から新しいハードウェア プロファイルを作成することも、コピーしたハードウェア プロファイルをベースに作成することも可能です。 なお、プリロード済みのハードウェア プロファイルは編集できません。

ハードウェア プロファイルを一から作成する方法:

  1. [Select Hardware] ページで [New Hardware Profile] をクリックします。
  2. [Configure Hardware Profile] ページで、必要に応じてハードウェア プロファイルのプロパティを変更します。
  3. [Finish] をクリックします。
  4. 新しいハードウェア プロファイルが [Select Hardware] ページに表示されます。 オプションで、そのハードウェア プロファイルを使用した AVD を作成する場合は、 [Next] をクリックします。 または、[Cancel] をクリックして、[Your Virtual Devices] ページや [Select Deployment Target] ダイアログに戻ることもできます。

コピーしたハードウェア プロファイルをベースに作成する方法:

  1. [Select Hardware] ページで ハードウェア プロファイルを選択して [Clone Device] をクリックします。
  2. またはハードウェア プロファイルを右クリックして、[Clone] を選択します。

  3. [Configure Hardware Profile] ページで、必要に応じてハードウェア プロファイルのプロパティを変更します。
  4. [Finish] をクリックします。
  5. 新しいハードウェア プロファイルが [Select Hardware] ページに表示されます。 オプションで、そのハードウェア プロファイルを使用した AVD を作成する場合は、 [Next] をクリックします。 または、[Cancel] をクリックして、[Your Virtual Devices] ページや [Select Deployment Target] ダイアログに戻ることもできます。

既存の AVD の編集

[Your Virtual Devices] ページから、既存の AVD に対して以下の操作を行うことができます。

  • AVD を編集するには、[Edit this AVD] をクリックして、変更を加えます
  • AVD を削除するには、AVD を右クリックして [Delete] を選択するか、 [Menu] をクリックし、[Delete] を選択します。
  • ディスク上に存在する関連のある AVD の .ini ファイルと .img ファイルを表示するには、AVD を右クリックして [Show on Disk] を選択するか、 [Menu] をクリックして、[Show on Disk] を選択します。
  • Android Studio チームへのバグレポートに含めることのできる AVD 設定の詳細を表示するには、AVD を右クリックして [View Details] を選択するか、 [Menu] をクリックして、[View Details] を選択します。

既存のハードウェア プロファイルの編集

[Select Hardware] ページから、既存のハードウェア プロファイルに対して以下の操作を行うことができます。

  • ハードウェア プロファイルを編集するには、ハードウェア プロファイルを選択して [Edit Device] をクリックするか、 ハードウェア プロファイルを右クリックして [Edit] を選択し、 変更を加えます
  • ハードウェア プロファイルを削除するには、ハードウェア プロファイルを右クリックして [Delete] を選択します。

あらかじめ定義されたハードウェア プロファイルの編集や削除はできません。

エミュレータの実行と停止、データのクリア

[Your Virtual Devices] ページから、エミュレータ上で以下の操作を行うことができます。

  • AVD を使用したエミュレータを実行するには、AVD をダブルクリックするか、 [Launch] をクリックします。
  • 実行中のエミュレータを停止するには、AVD を右クリックして [Stop] を選択するか、 [Menu] をクリックして、[Stop] を選択します。
  • エミュレータのデータをクリアして、最初に定義されたときと同じ状態に戻すには、AVD を右クリックして [Wipe Data] を選択するか、 [Menu] をクリックして、[Wipe Data] を選択します。

ハードウェア プロファイルのインポートとエクスポート

[Select Hardware] ページからハードウェア プロファイルのインポートとエクスポートができます。

  • ハードウェア プロファイルをインポートするには、[Import Hardware Profiles] をクリックして、コンピュータ上にある定義を含む XML ファイルを選択します。
  • ハードウェア プロファイルをエクスポートするには、ハードウェア プロファイルを右クリックして [Export] を選択し、 定義を含む XML ファイルを保存する場所を指定します。

ハードウェア プロファイルのプロパティ

[Configure Hardware Profile] ページで、以下のハードウェア プロファイルのプロパティを指定できます。 AVD 設定のプロパティはハードウェア プロファイルのプロパティをオーバーライドします。この両方のプロパティをオーバーライドするのがエミュレータの実行中に設定したエミュレータ プロパティです。

AVD Manager に含まれるあらかじめ定義されたハードウェア プロファイルは編集できません。 ただし、それらをコピーしたものを編集することはできます。

ハードウェア プロファイルのプロパティ 説明
Device Name ハードウェア プロファイルの名称。 使用できるのは大文字と小文字の英字、0 から 9 までの数字、ピリオド(.)、アンダースコア(_)、丸括弧(())、スペースです。 このハードウェア プロファイル名が、ハードウェア プロファイルを保存するファイル名になります。
Device Type 次のいずれかを選択します。
  • スマートフォン / タブレット
  • Wear OS
  • Android TV
Screen Size 対角線で計測した画面の物理サイズ(インチ表記)です。 このサイズがコンピュータの画面よりも大きい場合は、起動時にサイズを縮小します。
Screen Resolution ピクセル単位で幅と高さを入力して、シミュレートした画面上での総ピクセル数を指定します。
Round Wear OS 端末のように丸い画面がある端末は、このオプションを選択します。
Memory:RAM 端末の RAM サイズを入力して、B(バイト)、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)、TB(テラバイト)の中から単位を選択します。
Input:Has Hardware Buttons (Back/Home/Menu) 端末にハードウェア ナビゲーション ボタンがある場合は、このオプションを選択します。 ソフトウェアのみでこれらのボタンが実装されている場合は、選択を解除します。 このオプションを選択すると画面上にボタンが表示されなくなりますが、 いずれにしてもエミュレータのサイドパネルを使えばボタンを押すことができます。
Input:Has Hardware Keyboard 端末にハードウェア キーボードがある場合はこのオプションを選択し、 ない場合は選択を解除します。 このオプションを選択すると画面上にキーボードが表示されなくなりますが、 いずれにしてもコンピュータのキーボードを使えばキー入力をエミュレータに送信できます。
Navigation Style

次のいずれかを選択します。

  • None: ハードウェア コントロールは非対応。 ソフトウェアを介してナビゲーションを行う。
  • D-pad: D パッドに対応。
  • Trackball
  • Wheel

これらのオプションは実機本体のハードウェア コントロール用です。 ただし外部コントローラによって端末に送信されるイベントは同じです。

Supported Device States

以下のどちらか、または両方を選択します。

  • Portrait: 縦長になります。
  • Landscape: 横長になります。

両方を選択すると、エミュレータ上で端末の向きを切り替えることができます。 続けるには少なくとも一方を選択する必要があります。

Cameras

カメラを有効にするには、以下のどちらか、または両方を選択します。

  • Back-Facing Camera: ユーザーの反対側にレンズがある。
  • Front-Facing Camera: ユーザー側にレンズがある。

カメラ撮影をシミュレートするために、エミュレータで提供されているウェブカメラや写真を利用できます。

Sensors:Accelerometer 端末の向きを特定するためのハードウェアが備わっている場合は、選択します。
Sensors:Gyroscope 回転や傾きを検出するハードウェアが端末に備わっている場合は、選択します。 加速度計と併用すると方向検出がスムーズになり、6 軸方向システムをサポートできます。
Sensors:GPS グローバル ポジショニング システム(GPS)の衛星測位システムをサポートするハードウェアが端末に備わっている場合は、選択します。
Sensors:Proximity Sensor 通話中に端末が顔に近づいたことを検出して画面入力を無効にするハードウェアが端末に備わっている場合は、選択します。
Default Skin エミュレータを表示した際に端末の外観を決めるスキンを選択します。 解像度に対して極端に大きい画面を指定すると、画面の一部がカットされるため、画面全体を表示できないことに注意してください。 詳細は、エミュレータ スキンの作成を ご覧ください。

AVD プロパティ

[Verify Configuration] ページで以下の AVD 設定のプロパティを指定できます。 AVD 設定では開発に使用するコンピュータとエミュレータとの相互作用や、ハードウェア プロファイルでオーバーライドしたいプロパティを指定できます。

AVD 設定のプロパティはハードウェア プロファイルのプロパティをオーバーライドします。 この両方のプロパティをオーバーライドするのがエミュレータの実行中に設定したエミュレータ プロパティです。

AVD プロパティ 説明
AVD Name AVD の名称です。 使用できるのは大文字と小文字の英字、0 から 9 までの数字、ピリオド(.)、アンダースコア(_)、丸括弧(())、ダッシュ(-)、スペースです。 この AVD 名が、AVD 設定を保存するファイル名になります。
AVD ID (Advanced) この ID が AVD ファイル名になり、コマンドラインから AVD を参照するのに使用できます。
Hardware Profile [Change] をクリックして、[Select Hardware] ページから異なるハードウェア プロファイルを選択します。
System Image [Change] をクリックして、[System Image] ページから異なるシステム イメージを選択します。 新しいイメージをダウンロードするにはインターネット接続が必要です。
Startup Orientation

エミュレータ画面の向きとして、どちらかを初期値に選択します。

  • Portrait: 縦長になります。
  • Landscape: 横長になります。

このオプションはハードウェア プロファイルで選択している場合のみ、有効になります。 ハードウェア プロファイルで縦向きと横向きの両方をサポートしていれば、エミュレータで AVD を実行中に画面の向きを切り替えることができます。

Camera (Advanced)

カメラを有効にするには、以下のどちらか、または両方を選択します。

  • Front: ユーザーの反対側にレンズがある。
  • Back: ユーザー側にレンズがある。

[Emulated] 設定では、ソフトウェアで生成されたイメージが取得され、[Webcam] 設定では、開発コンピュータのウェブカメラを使用して写真が撮影されます。

このオプションはハードウェア プロファイルで選択している場合のみ、有効になります。Wear OS と Android TV 向けには、このオプションは利用できません。

Network:Speed (Advanced)

データ転送速度を決定するネットワーク プロトコルを選択します。

  • GSM - Global System for Mobile Communications
  • HSCSD - High-Speed Circuit-Switched Data
  • GPRS - Generic Packet Radio Service
  • EDGE - Enhanced Data rates for GSM Evolution
  • UMTS - Universal Mobile Telecommunications System
  • HSDPA - High-Speed Downlink Packet Access
  • LTE - Long-Term Evolution
  • Full (default): コンピュータで実現できる最高速度でデータを転送します。
Network:Latency (Advanced) 選択したネットワーク プロトコルで、ある地点からある地点へデータパケットを転送した際の遅延時間を設定します。
Emulated Performance:Graphics

エミュレータでのグラフィックのレンダリング方法を選択します。

  • Hardware: コンピュータ グラフィック カードを使用して高速レンダリングします。
  • Software: ソフトウェアでグラフィックをエミュレートします。グラフィック カードでのレンダリングに問題がある場合に便利です。
  • Automatic: グラフィック カードに応じてエミュレータが最適なオプションを選択します。
Emulated Performance:Boot option (Advanced)
  • Cold boot: 毎回、端末がオフの状態から電源を入れて端末を起動します。
  • Quick boot: 保存したスナップショットから端末の状態を読み込んで端末を起動します。 詳細は、 クイックブートでエミュレータを実行するをご覧ください。
Emulated Performance:Multi-Core CPU (Advanced) エミュレータで利用したいコンピュータ上のプロセッサコア数を選択します。 この数が多いほどエミュレータの速度は上がります。
Memory and Storage:RAM 端末の RAM 容量です。 この値はハードウェア メーカーによって設定されますが、エミュレータ動作を高速化したい場合など、必要に応じてオーバーライドすることができます。 このサイズを大きくするほど、コンピュータのリソースをより多く使用します。 RAM サイズを入力して、B(バイト)、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)、TB(テラバイト)の中から単位を選択します。
Memory and Storage:VM Heap VM ヒープサイズです。 この値はハードウェア メーカーによって設定されますが、必要に応じてオーバーライドすることができます。 ヒープサイズを入力して、B(バイト)、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)、TB(テラバイト)の中から単位を選択します。 Android VM の詳細については、異なる仮想マシンでのメモリ管理をご覧ください。
Memory and Storage:Internal Storage 端末で利用可能な取り外しができないメモリ領域の容量です。 この値はハードウェア メーカーによって設定されますが、必要に応じてオーバーライドすることができます。 サイズを入力して、B(バイト)、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)、TB(テラバイト)の中から単位を選択します。
Memory and Storage:SD Card 端末データの保存に利用できる取り外し可能なメモリ領域の容量です。 Android Studio で管理する仮想 SD カードを使用するには、[Studio-managed] を選択してサイズを入力し、B(バイト)、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト)、TB(テラバイト)の中から単位を選択します。 カメラを使用する場合は 100 MB 以上に設定することをお勧めします。 この領域をファイルで管理するには、[External file] を選択して [...] をクリックし、ファイルと場所を指定します。 詳細は、mksdcardAVD データ ディレクトリをご覧ください。
Device Frame:Enable Device Frame エミュレータ ウィンドウの周りに表示されるフレームを有効にすると、実機の外観を再現できます。
Custom Skin Definition (Advanced) エミュレータを表示した際に端末の外観を決めるスキンを選択します。 スキンに対して極端に大きい画面を指定すると、画面の一部がカットされるため、画面全体を表示できないことに注意してください。 詳細は、エミュレータ スキンの作成を ご覧ください。
Keyboard:Enable Keyboard Input (Advanced) エミュレータと相互作用するハードウェア キーボードを使用したい場合は、このオプションを選択します。 Wear OS と Android TV 向けには、このオプションは無効になっています。

エミュレータ スキンの作成

Android エミュレータのスキンは、表示するエミュレータの外観やコントロールを定義した一式のファイルです。 AVD 設定で利用可能なスキン定義の中に、自身の要件を満たすものがない場合は、自身でカスタムスキンの定義を作成して AVD に適用することができます。

各エミュレータ スキンには次のファイルが含まれます。

  • hardware.ini ファイル
  • サポートする画面の向き(横向き、縦向き)と物理的な設定に対応したレイアウト ファイル
  • 背景やキー、ボタンなどの表示要素用のイメージ ファイル

カスタムスキンの作成方法:

  1. スキン設定ファイルを保存するディレクトリを新規に作成します。
  2. layout という名称のテキスト ファイルでスキンの外観を定義します。 このファイルでは、特定のボタンのサイズやイメージ アセットなど、さまざまなスキンの特徴を定義できます。

    次に例を示します。

    parts {
        device {
            display {
                width   320
                height  480
                x       0
                y       0
            }
        }

    portrait {
        background {
            image background_port.png
        }
    
        buttons {
            power {
                image  button_vertical.png
                x 1229
                y 616
            }
        }
    }
    ...
    

    }

  3. 同じディレクトリに端末イメージ用のビットマップ ファイルを追加します。
  4. hardware.ini

    ファイルで hw.keyboardhw.lcd.density など、ハードウェア固有の端末設定を追加で指定します。

  5. スキンフォルダ内のファイルをアーカイブして、そのファイルをカスタムスキンとして選択します。

エミュレータ スキンの作成に関する詳細情報については、Android Emulator のスキンファイルを指定するツールのソースコードをご覧ください。