仮想デバイスの作成と管理

Android Virtual Device(AVD)では、Android スマートフォンやタブレット、Wear OS、Android TV、Automotive OS デバイスなど、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 Store] 列に 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] ページか [Select Deployment Target] ダイアログに新しい AVD が表示されます。

コピーから AVD を作成するには:

  1. AVD Manager の [Your Virtual Devices] ページで AVD を右クリックし、[Duplicate] を選択します。
  2. またはメニュー アイコン をクリックして、[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] ページに表示されます。[Next] をクリックすると、任意でそのハードウェア プロファイルを使用する AVD を作成できます。または、[Cancel] をクリックして、[Your Virtual Devices] ページや [Select Deployment Target] ダイアログに戻ることもできます。

コピーからハードウェア プロファイルを作成するには:

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

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

既存の AVD を編集する

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

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

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

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

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

あらかじめ定義されたハードウェア プロファイルを編集したり、削除したりすることはできません。

エミュレータの実行と停止、データの消去を行う

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

  • AVD を使用するエミュレータの実行。AVD をダブルクリックするか、Launch アイコン をクリックします。
  • 実行中のエミュレータの停止。AVD を右クリックして [Stop] を選択するか、メニュー アイコン をクリックして、[Stop] を選択します。
  • エミュレータのデータを消去して、最初にエミュレータを定義したときと同じ状態に戻す。AVD を右クリックして [Wipe Data] を選択するか、メニュー アイコン をクリックして [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
  • Chrome OS デバイス
  • Android Automotive
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]: 十字キーに対応します。
  • [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 Emulator のスキンは、表示するエミュレータの外観やコントロールを定義した一式のファイルです。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 のスキンファイルを指定するツールのソースコードをご覧ください。