Android Virtual Device(AVD)を使用するために、Android Emulator は Graphical User Interface(GUI)とコマンドライン インターフェース(CLI)をサポートしています。ワークフローは環境に合わせて最適なものを選択できます。
- 仮想デバイスの作成と管理 GUI は、ほとんどのアプリ デベロッパーやユーザーにとって使いやすいツールです。
- コマンドラインからエミュレータを起動すると、パワーユーザーと自動化のための柔軟な方法を提供します。たとえば、複数の AVD を使用したり、継続的なテストと継続的インテグレーションを設定したりできます。開始するには、ツールの例をご覧ください。
プレビルドを使用して AOSP Car AVD をリリースする
ビルド済みの AOSP Car AVD を使用してすばやくリリース、テストするには、オープンソース スクリプトを使用して、ci.android.com
でビルドされたエミュレータをダウンロードし、リリースします。スクリプトは macOS と Linux でテスト済みです。
このスクリプトを使用するには、Curl が必要となります。
このスクリプトを実行するには、次のようにします。
launch_emu.sh
スクリプト コンテンツをローカル ファイルにコピーします。ローカル ファイル名としてlaunch_emu.sh
を使用すると仮定します。- ローカル スクリプトを実行可能にします。たとえば、
chmod +x ./launch_emu.sh
を実行します。 ./launch_emu.sh -h
を使用してスクリプトを実行し、利用可能なオプションを確認します。ci.android.com
で、aosp-main-throttled
ブランチに移動し、sdk_car_x86_64
が緑色の最近のビルドを選択します。たとえば、11370359 です。ビルド情報が表示されない場合は、お使いの Google アカウントをログアウトしてから再度お試しください。- ビルド ID のあるエミュレータ関連のバイナリ ファイルをダウンロードしてインストールします(例:
./launch_emu.sh -i -a 11370359
)。 - この後に、
./launch_emu.sh
を使用して、ダウンロードしてインストールしたエミュレータをリリースできます(-i
または-a
オプションは使用しないでください)。 - 別のビルド ID をダウンロードしてインストールするには、
./launch_emu.sh -c
を実行してワークスペースをクリーンアップしてから、上記の手順 4 と手順 5 を繰り返してください。
エミュレータのリリース時に、Android Emulator のコマンドライン起動オプションを指定するには、-v
オプションを使用します。次に例を示します。
./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"
AOSP Car AVD をビルドする
AOSP Car AVD をビルドするプロセスは、スマートフォン用に AVD イメージをビルドする場合と同様です(例: aosp_car_x86_64)。
- 開発環境をセットアップし、ブランチを特定するには、ソース管理ツールをご覧ください。その後、ソースのダウンロードを確認します。
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - AVD イメージをビルドします。
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- AVD イメージを実行します(必要に応じて、さらにコマンドラインの起動オプションを追加します)。
emulator &
例:
図 1. Android Virtual Emulator の画面
このプロセスに関する注意事項:
- ビルドプロセスは、物理デバイス用に Android をビルドするのに必要なプロセスと同様であるため、ソースをダウンロードしてビルドするまでしばらくお待ちください。
- 他のブランチで操作するには、
$ANDROID_BRANCH
を別のブランチまたはタグに設定します。 system.img
などの AVD イメージは$ANDROID_PRODUCT_OUT
でビルドされます。キーイメージの詳細については、AVD システム ディレクトリをご覧ください。- Android ツリー内のビルド済みエミュレータ バイナリを使用してエミュレータを実行する方法については、README ファイルをご覧ください。
Car AVD を作成する
新しい車の AVD を追加するのは、新しいデバイスを追加するのとほぼ同じです。たとえば、1660554 は新しい avd_car
AVD を作成します。
Car AVD を作成するには:
- 必要に応じて、会社とデバイスのフォルダを作成します。この例では
$ANDROID_BUILD_TOP/device/google_car/avd_car
を使用しています。 - AVD のビルド方法を定義するプロダクトの makefile、
avd_car.mk
を作成します。 - デバイス フォルダ
avd_car_device
を作成します。このフォルダにはBoardConfig.mk
とsource.properties
を含めます。 - 新しい
makefile
と新しいlunch
チョイスをAndroidProducts.mk
に追加します。 - 新しい
avd_car
AVD をビルドして実行するには:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
AVD イメージの zip ファイルをパッケージ化する
AVD をパッケージ化して他のユーザーと共有したり、別のパソコンで使用したりできます。emu_img_zip.mk
を使用して、AVD イメージの zip ファイルを生成します。
- AVD をビルドしたら、
emu_img_zip
をターゲットにします。m emu_img_zip
sdk-repo-linux-system-images
の接頭辞が付いた AVD イメージの zip ファイルが、$ANDROID_PRODUCT_OUT
という名前のフォルダに作成されます。
AVD カーネルをビルドする
AVD カーネルは、他の Android カーネルと同様に、すべてビルド済みのイメージです。通常は、Android の各リリースからの標準 goldfish カーネルのビルド済みイメージをそのまま使用できます。
カーネルの変更をテストするには:
- 次の一連の手順を実行します。
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- AVD Makefile に応じて、コードベースのカーネル バイナリを置き換えます。例:
x86_64-vendor.mk
(x86_64-kernel.mk
を含む)
カーネルのコードと構成は次のように配置されています。
アイテム | 値 |
---|---|
ブランチ | common-android11-5.4 (Android 11 で使用) |
Manifest | kernel/manifest/common-android11-5.4 |
common-modules/virtual-device | kernel/common-modules/virtual-device/android11-5.4 |
カーネル | kernel/common/android11-5.4 |
新しいデバイス プロファイルを作成する
ユーザーが Android Studio AVD Manager で特定の AVD を作成できるようにするには、仮想デバイスの作成と管理をご覧ください。デバイス メーカーは、AVD イメージに含まれる devices.xml
ファイルを使用して、独自のハードウェア仕様(画面サイズや DPI など)を定義できます。
- 例については、
automotive.xml
の Automotive Device プロファイルをご覧ください。 - HMI の開発またはプロトタイピングでは、同じ AVD イメージのファイルに複数のデバイスを追加できます。
- OEM AVD イメージの zip ファイルのファイルを
[ABI]
フォルダに含めます。たとえば、x86_64
のようにします。 - デバイス メーカーは、エミュレータ スキンを作成することもできます。たとえば、再現性を優先した UX を実現するために追加のハードウェア ボタンを定義します。これは、デベロッパーのワークフローだけでなく、UX リサーチやレビューなど他のタスクでも有用です。
AVD イメージの XML ファイルを作成する
デバイス メーカーは、Android Studio でダウンロードする、AVD イメージの XML ファイルを作成できます。
- たとえば、AAOS AVD のイメージ XML ファイルである
sys-img2-1.xml
をご覧ください。 - デバイス メーカーは、ターゲット ユーザー(自己申告システムを採用)向けの独自の OEM AVD ライセンス契約を、Android Emulator のライセンスとともに定義できます。そのようなライセンスが含まれている場合、Android Studio はユーザーの合意を取得します。
イメージを作成するには:
- AVD イメージの zip ファイルを準備します。
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
を解凍します。devices.xml
をx86_64
フォルダに追加してから、そのファイルを zip ファイルに圧縮します。たとえば、oem_avd_img_x86_64.zip
のようにします。oem-sys-img2-1.xml
を更新します。- zip ファイルの名前、サイズ、shasum を更新します(サンプル XML ファイルは
tools
で提供されています)。
たとえば、Google Cloud Storage で AVD をホストするには、ストレージ バケットの作成をご覧ください。
AVD をアップロードして誰もがアクセスできるようにするには、データを一般公開するをご覧ください。
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
AVD イメージ SDK アドオンの URL 形式は https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
です。
たとえば、BUCKET_NAME が aaos-avd の場合、URL は https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml
になります。
Android Studio ユーザーと AVD イメージを共有する
ユーザーが AVD イメージをダウンロードして、Android Studio で AVD を使用できるようにするために、SDK アドオン XML ファイルを指定できます。詳しくは、IDE および SDK ツールの更新をご覧ください。
AVD をネットワークからダウンロードするには:
- イメージの zip ファイルと XML ファイルをサーバーでホストします。
- 対象のユーザーに URL を提供します。
- (省略可)ユーザー名とパスワードを使用してアクセスを制限します。
また、AVD をローカル ディレクトリにダウンロードすることで、開発をスピードアップすることもできます。
- XML ファイルと XML ファイルで指定されているすべてのアーティファクトを、
ADDON_DIR
という名前のフォルダ(たとえば、すべての AVD イメージ zip ファイル)に保存します。 - URL を
file://$ADDON_DIR/oem-sys-img2-1.xml
として指定します。