開発プラットフォームとしての Android 仮想デバイス

Android 仮想デバイス (AVD) を使用するために、 Android エミュレータはグラフィカル ユーザー インターフェイス (GUI) とコマンド ライン インターフェイス (CLI) をサポートしています。環境に最適なワークフローを選択します。

事前構築済みを使用して AOSP Car AVD を起動する

事前に構築された AOSP Car AVD を使用して迅速に起動してテストするには、オープン ソース スクリプトを使用して、 ci.android.comからエミュレータ ビルドをダウンロードして起動します。このスクリプトは macOS と Linux でテストされています。

このスクリプトを使用するにはCurlが必要です。

スクリプトを実行するには:

  1. ローカル ファイル名としてlaunch_emu.shを使用すると仮定して、 launch_emu.shスクリプトの内容をローカル ファイルにコピーします。
  2. ローカル スクリプトを実行可能にします。たとえば、 chmod +x ./launch_emu.shを実行します。
  3. ./launch_emu.sh -hを使用してスクリプトを実行して、利用可能なオプションを確認します。
  4. ci.android.comで、 aosp-main-throttledブランチに移動し、 sdk_car_x86_64が緑色になっている最近のビルドを選択します。例: 11370359。ビルド情報が表示されない場合は、Google アカウントからログアウトして、もう一度試してください。
  5. ビルド ID を含むエミュレータ関連のバイナリ ファイルをダウンロードしてインストールします。たとえば、 ./launch_emu.sh -i -a 11370359
  6. この後、 ./launch_emu.shを使用して、ダウンロードしてインストールしたエミュレータを起動できます ( -iまたは-aオプションは使用しないでください)。
  7. 別のビルド ID をダウンロードしてインストールするには、 ./launch_emu.sh -c実行してワークスペースをクリーンアップし、上記のステップ 4 とステップ 5 を繰り返します。

Android エミュレーターの起動時に Android エミュレーターのコマンドライン起動オプションを指定するには、 -vオプションを使用します。例:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

AOSP カー AVD を構築する

AOSP Car AVD を構築するプロセスは、電話機用の AVD イメージの構築(aosp_car_x86_64 など) と似ています。

  1. 開発環境をセットアップしてブランチを識別するには、 「 ソース管理ツール 」を参照してください。次に、 「ソースのダウンロード」を確認します:
    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
  2. AVD イメージをビルドします:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. AVD イメージを実行します (必要に応じて追加のコマンドライン起動オプションを追加します):
    emulator &

    例えば:

    図 1. Android 仮想エミュレータ画面

    このプロセスに関する注意事項:

    • ビルド プロセスは、物理デバイス用の Android のビルドに必要なプロセスと同じであるため、ソースをダウンロードしてからビルドするまでに少し時間がかかります。
    • 他のブランチで作業するには、 $ANDROID_BRANCH別のブランチ/タグに設定します。
    • system.imgなどの AVD イメージは$ANDROID_PRODUCT_OUTでビルドされます。キー イメージの詳細については、 「AVD システム ディレクトリ」を参照してください。
    • Android ツリー内の事前に構築されたエミュレータ バイナリがエミュレータを実行するためにどのように使用されるかについては、 READMEファイルを参照してください。

車の AVD を作成する

新しい車の AVD の追加は、新しいデバイスの追加とほぼ同じです。たとえば、 1660554 は新しいavd_car AVD を作成します。

車の AVD を作成するには:

  1. 必要に応じて、会社とデバイスのフォルダーを作成します。この例では$ANDROID_BUILD_TOP/device/google_car/avd_carを使用します。
  2. AVD のビルド方法を定義する製品メイクファイルavd_car.mkを作成します。
  3. BoardConfig.mksource.propertiesを含めるデバイス フォルダーavd_car_deviceを作成します。
  4. 新しいmakefileと新しいlunch選択をAndroidProducts.mkに追加します。
  5. 新しいavd_car AVD をビルドして実行するには:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
これで、新しい AVD でほとんどの HMI およびアプリ機能のプロトタイプを作成する準備が整いました。

AVD イメージ zip ファイルをパックする

AVD を圧縮して他の人と共有したり、別のコンピュータで使用したりできます。 emu_img_zip.mkを使用して AVD イメージ zip ファイルを生成します。

  1. AVD をビルドしたら、 emu_img_zipターゲットにします:
    m emu_img_zip
  2. sdk-repo-linux-system-imagesというプレフィックスが付いた AVD イメージ zip ファイルが、 $ANDROID_PRODUCT_OUTという名前のフォルダーに作成されます。

AVD カーネルを構築する

AVD カーネルは、すべてが事前に構築されたイメージであるという点で他の Android カーネルと似ています。通常、各 Android リリースの標準の金魚カーネルの事前構築済みイメージをそのまま使用できます。

カーネルの変更を試してみるには:

  1. 次の一連の命令を実行します:
    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/
    
  2. AVD メイクファイルに従って、コードベース内のカーネル バイナリを置き換えます。たとえば、 x86_64-vendor.mkにはx86_64-kernel.mkが含まれます。

カーネルのコードと構成は次の場所にあります。

アイテム価値
支店common-android11-5.4 (Android 11 で使用)
マニフェストkernel/manifest/common-android11-5.4
共通モジュール/仮想デバイスkernel/common-modules/virtual-device/android11-5.4
カーネルkernel/common/android11-5.4

新しいデバイスプロファイルを作成する

ユーザーが Android Studio AVD Manager で特定の AVD を作成できるようにするには、 「仮想デバイスの作成と管理」を参照してください。デバイス メーカーは、AVD イメージに含まれるdevices.xmlファイルを使用して、画面サイズや DPI などの独自のハードウェア仕様を定義できます。

  • たとえば、 automotive.xmlの自動車デバイス プロファイルを参照してください。
  • HMI 開発またはプロトタイピングの場合、同じ AVD イメージのファイルに複数のデバイスを追加できます。
  • [ABI]フォルダー内の OEM AVD イメージ zip ファイルにファイルを含めます。たとえば、 x86_64のように。
  • デバイス メーカーは、エミュレータ スキンを作成することもできます。たとえば、より忠実な UX のために追加のハードウェア ボタンを定義します。これは、開発者のワークフローだけでなく、UX の調査やレビューなどの他のタスクにも役立ちます。

AVD イメージ XML ファイルを作成する

デバイス メーカーは、Android Studio 用の AVD イメージ XML ファイルを作成してダウンロードできます。

  • たとえば、AAOS AVD イメージ XML ファイルsys-img2-1.xmlを参照してください。
  • デバイス メーカーは、Android エミュレータのライセンスを使用して、対象ユーザー向けに独自の OEM AVD ライセンス契約を定義できます (名誉システムを採用)。このようなライセンスが含まれる場合、Android Studio はユーザーの合意を得ます。

イメージを作成するには:

  1. AVD イメージの zip ファイルを準備します。
  2. ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zipを解凍します。
  3. devices.xmlx86_64フォルダーに追加し、ファイルを zip ファイルに圧縮します。たとえば、 oem_avd_img_x86_64.zipのようになります。
  4. oem-sys-img2-1.xmlを更新します。
  5. 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になります。

AVD イメージを Android Studio ユーザーと共有する

ユーザーが AVD イメージをダウンロードして Android Studio で AVD を使用できるように、SDK アドオン XML ファイルを提供できます。詳細については、 「IDE および SDK ツールを更新する」を参照してください。

ネットワークから AVD をダウンロードするには:

  1. イメージ zip ファイルと XML ファイルをサーバー上でホストします。
  2. 対象ユーザーに URL を提供します。
  3. (オプション) ユーザー名とパスワードによってアクセスを制限します。

あるいは、開発をスピードアップするには、AVD をローカル ディレクトリにダウンロードします。

  1. XML ファイルと、XML ファイルで指定されたすべてのアーティファクトを、 ADDON_DIRという名前のフォルダー (たとえば、すべての AVD イメージ zip ファイル) に保存します。
  2. URL をfile://$ADDON_DIR/oem-sys-img2-1.xmlとして指定します。