Android エミュレーターの仮想デバイスを使用する

Android エミュレータを使用すると、独自のカスタム Android システム イメージを実行する Android デバイスのエミュレーションを作成できます。さらに、Android エミュレータのエミュレーションにマルチディスプレイ サポートを追加できます。

Android エミュレータのアーキテクチャ

Android エミュレータを使用すると、Android エミュレータを実行できます。 Android エミュレータは、Android 仮想デバイス (AVD) と呼ばれる仮想マシンで Android オペレーティング システムを実行します。各 AVD には完全なAndroid ソフトウェア スタックが含まれており、物理デバイス上にあるかのように実行されます。図 1 は、Android エミュレータの高レベルのアーキテクチャを示しています。エミュレーターの詳細については、 「 Android エミュレーターでアプリを実行する 」を参照してください。

Android エミュレータのアーキテクチャ。

図 1. Android エミュレータのアーキテクチャ。

AVD イメージの構築

各 AVD には Android システム イメージが含まれており、その AVD 内で実行されます。 AVD Manager にはいくつかのシステム イメージが含まれています。また、ソース コードからカスタム AVD システム イメージを構築し、それを実行するデバイス エミュレーションを作成できます。

AVD システム イメージを構築して実行するには:

  1. Android ソースをダウンロードします。

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

他の Android バージョンをビルドする場合は、パブリック Android リポジトリでブランチ名を見つけることができます。これらはAndroid コード名、タグ、ビルド番号にマッピングされます。

  1. AVD システム イメージをビルドします。これは、 Android デバイスのシステム イメージを構築するのと同じプロセスです。たとえば、x86 64 ビット AVD をビルドするには:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
    
  2. Android エミュレータで AVD システム イメージを実行します。

    emulator
    

エミュレータの実行の詳細については、 「コマンド ライン起動オプション」を参照してください。図 2 は、AVD を実行する Android エミュレータの例を示しています。

AVD を実行する Android エミュレーター。

図 2. AVD を実行する Android エミュレータ。

AVD システム イメージを共有して他の人が Android Studio で使用できるようにする

AVD システム イメージを他の人と共有するには、次の手順に従ってください。 Android Studioで AVD システム イメージを使用して、アプリの開発とテストを行うことができます。

  1. 追加のsdkおよびsdk_repoパッケージを作成します。

    Android 13 以降の場合は、 emu_img_zipコマンドを使用します。

    $ make emu_img_zip
    

    これsdk-repo-linux-system-images-eng.[username]].zipファイルが生成されます。

    Android 12 以前の場合は、 sdk_repoコマンドを使用します。

    $ make -j32 sdk sdk_repo
    

    make sdk sdk_repoコマンドはaosp-main/out/host/linux-x86/sdk/sdk_phone_x86に 2 つのファイルを作成します。

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. ファイルsdk-repo-linux-system-images-eng.[username].zipユーザーがアクセスできる場所にホストし、 AVD システム イメージ URLとして使用する URL を取得します。

  3. Android 12 以前の場合は、それに応じてrepo-sys-img.xmlを編集します。

    • <sdk:url> AVD システム イメージ URLに更新します。
    • ファイルのその他の更新については、sdk-sys-img-03.xsdを参照してください。
    • ユーザーがアクセスできる場所にrepo-sys-img.xmlをホストし、カスタム更新サイト URLとして使用する URL を取得します。

カスタム AVD イメージを使用するには、SDK マネージャーで次の手順を実行します。

  1. カスタム更新サイト URLSDK 更新サイトとして追加します。

    これにより、カスタム AVD システム イメージが [システム イメージ] ページに追加されます。

  2. カスタム AVD システム イメージをダウンロードして選択して、 AVD を作成します

マルチディスプレイサポートを追加

Android 10ではマルチディスプレイが強化され、自動モードやデスクトップ モードなど、より多くのユースケースのサポートが強化されています。 Android エミュレータはマルチディスプレイ エミュレーションもサポートしています。したがって、実際のハードウェアをセットアップしなくても、特定のマルチディスプレイ環境を作成できます。

次の変更を加えるか、これらの CLから選択することによって、AVD にマルチディスプレイ サポートを追加できます。

  • 次の行をファイルbuild/target/product/sdk_phone_x86.mkに追加して、マルチディスプレイ プロバイダーをビルドに追加します。

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • 次の行をファイルdevice/generic/goldfish/data/etc/advancedFeatures.iniに追加して、マルチディスプレイ機能フラグを有効にします。

    MultiDisplay = on
    

最新のエミュレータの機能とリリース情報は、次のソースから入手できます。