Android エミュレータを使用すると、独自のカスタム Android システム イメージを実行する Android デバイスのエミュレーションを作成できます。さらに、Android エミュレータのエミュレーションにマルチディスプレイ サポートを追加できます。
Android エミュレータのアーキテクチャ
Android エミュレータを使用すると、Android エミュレータを実行できます。 Android エミュレータは、Android 仮想デバイス (AVD) と呼ばれる仮想マシンで Android オペレーティング システムを実行します。各 AVD には完全なAndroid ソフトウェア スタックが含まれており、物理デバイス上にあるかのように実行されます。図 1 は、Android エミュレータの高レベルのアーキテクチャを示しています。エミュレーターの詳細については、 「 Android エミュレーターでアプリを実行する 」を参照してください。
図 1. Android エミュレータのアーキテクチャ。
AVD イメージの構築
各 AVD には Android システム イメージが含まれており、その AVD 内で実行されます。 AVD Manager にはいくつかのシステム イメージが含まれています。また、ソース コードからカスタム AVD システム イメージを構築し、それを実行するデバイス エミュレーションを作成できます。
AVD システム イメージを構築して実行するには:
Android ソースをダウンロードします。
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
他の Android バージョンをビルドする場合は、パブリック Android リポジトリでブランチ名を見つけることができます。これらはAndroid コード名、タグ、ビルド番号にマッピングされます。
AVD システム イメージをビルドします。これは、 Android デバイスのシステム イメージを構築するのと同じプロセスです。たとえば、x86 64 ビット AVD をビルドするには:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
Android エミュレータで AVD システム イメージを実行します。
emulator
エミュレータの実行の詳細については、 「コマンド ライン起動オプション」を参照してください。図 2 は、AVD を実行する Android エミュレータの例を示しています。
図 2. AVD を実行する Android エミュレータ。
AVD システム イメージを共有して他の人が Android Studio で使用できるようにする
AVD システム イメージを他の人と共有するには、次の手順に従ってください。 Android Studioで AVD システム イメージを使用して、アプリの開発とテストを行うことができます。
追加の
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
-
ファイル
sdk-repo-linux-system-images-eng.[username].zip
ユーザーがアクセスできる場所にホストし、 AVD システム イメージ URLとして使用する URL を取得します。Android 12 以前の場合は、それに応じて
repo-sys-img.xml
を編集します。-
<sdk:url>
AVD システム イメージ URLに更新します。 - ファイルのその他の更新については、sdk-sys-img-03.xsdを参照してください。
- ユーザーがアクセスできる場所に
repo-sys-img.xml
をホストし、カスタム更新サイト URLとして使用する URL を取得します。
-
カスタム AVD イメージを使用するには、SDK マネージャーで次の手順を実行します。
カスタム更新サイト URLをSDK 更新サイトとして追加します。
これにより、カスタム AVD システム イメージが [システム イメージ] ページに追加されます。
カスタム 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
最新のエミュレータの機能とリリース情報は、次のソースから入手できます。