avd manager

AVD Manager 34+

Android Virtual Device (avdmanager / emulator) CLI のクイック リファレンス:AVD の作成 / 編集 / 削除、システム イメージの一覧表示、ヘッドレス エミュレーター起動、スナップショット管理、ネットワーク フォワーディング — よく使うオプションと実用例をまとめました。

34 コマンド

確認

avdmanager list avd

すべての AVD を名前、パス、ターゲット API、ABI、スキンとともに一覧表示します。

-c コンパクト; --force サイレント

avdmanager list avd
avdmanager list device

新しい AVD 用のデバイス プロファイル(`pixel_6`、`pixel_tablet`、`wear_round` など)を一覧表示します。

-c

avdmanager list device | head -40
sdkmanager --list

すべての SDK パッケージ(システム イメージ、ビルド ツール、Platform Tools、NDK)を一覧表示します。AVD 作成前にシステム イメージ ID を検索するために使用します。

--include_obsolete

sdkmanager --list | grep 'system-images;android-34'

システム イメージのインストール

sdkmanager 'system-images;android-<api>;google_apis;x86_64'

x86_64 用に Google APIs(Play ストア / マップなど)付きの Android <api> システム イメージをダウンロードします。イメージ ID 形式は `<type>;<version>;<variant>;<abi>`。

sdkmanager 'system-images;android-34;google_apis_playstore;x86_64'
sdkmanager 'system-images;android-<api>;default;arm64-v8a'

Apple シリコン バリアント(arm64)— M シリーズ Mac ではハードウェア アクセラレーションは不要です。

sdkmanager 'system-images;android-33;default;arm64-v8a'

AVD の作成

avdmanager create avd -n <name> -k 'system-images;<id>' -d <device>

新しい AVD を非対話的に作成します。`-n` はフレンドリ名; `-k` はシステム イメージ パッケージ ID; `-d` は `avdmanager list device` のデバイス ID。

-f 同じ名前の既存 AVD を上書き; -p <path> 既定の AVD パスを上書き; --sdcard <size|M|G>

avdmanager create avd -n pixel_7_api34 -k 'system-images;android-34;google_apis_playstore;x86_64' -d pixel_7 --sdcard 512M
echo no | avdmanager create avd ...

「カスタム ハードウェア プロファイルを作成しますか?」プロンプトに `no` で自動応答するので、コマンドを CI で実行できます。

echo no | avdmanager create avd -n ci_avd -k 'system-images;android-30;default;x86_64' -d pixel_4
avdmanager create avd -n <name> --tag google_apis_playstore

アプリ内購入 / Google サインイン フローのテストに役立つ Play Store フレーバー システム イメージ用の AVD をタグ付けします。

avdmanager create avd -n pixel_7_playstore -k 'system-images;android-34;google_apis_playstore;x86_64' -d pixel_7 --tag google_apis_playstore

編集 / 削除

avdmanager delete avd -n <name>

AVD(定義 + 既定のスナップショット)を削除します。

-f 確認プロンプトを表示しない

avdmanager delete avd -n old_test_avd -f
avdmanager move avd -n <name> -p <new-path>

AVD を新しいディレクトリに移動します(`ANDROID_AVD_HOME` を移行するときに便利)。

avdmanager move avd -n pixel_7_api34 -p /mnt/fast-ssd/.android/avd
avdmanager rename avd -n <old> -r <new>

AVD を再作成せずに名前を変更します。

avdmanager rename avd -n pixel_7_api34 -r pixel_7_main

エミュレーターの実行

emulator -avd <name>

現在のターミナルで指定された AVD をブートします。エミュレーター パッケージ + 高速化された仮想化(KVM/HVF/WHPX)が必要です。

-no-window; -no-audio; -no-boot-anim; -no-snapshot; -gpu swiftshader_indirect

emulator -avd pixel_7_api34 -no-window -no-snapshot
emulator -avd <name> -no-window -no-snapshot -no-audio -no-boot-anim

CI 対応のヘッドレス ブート — ディスプレイなし、音なし、ブート アニメーションをスキップ、保存されたスナップショットをロードしません(常にコールド ブート)。

-accel auto|off; -gpu host|swiftshader_indirect

emulator -avd ci_avd -no-window -no-snapshot -no-audio -no-boot-anim -gpu swiftshader_indirect -accel auto
emulator -avd <name> -port <port>

エミュレーター コンソールを特定のポートにバインドします(最初のインスタンスの既定は 5554; 2 番目以降のエミュレーターは 5556、5558 ...)。

-port 5554; -no-snapshot

emulator -avd pixel_7_api34 -port 5554 &
emulator -list-avds

すべての AVD 名を表示します — 反復処理や AVD を自動選択するスクリプトに便利です。

AVD=$(emulator -list-avds | head -1) && emulator -avd "$AVD" -no-window

スナップショット

emulator -avd <name> -no-snapshot

保存されたスナップショットを無視して毎回 AVD をコールド ブートします。スナップショット状態が疑わしい場合に使用します。

emulator -avd pixel_7_api34 -no-snapshot
adb -s emulator-5554 emu snapshot save <tag>

現在のエミュレーター状態を名前付きスナップショットとして保存します。

adb -s emulator-5554 emu snapshot save clean-install
adb -s emulator-5554 emu snapshot load <tag>

次回のブート時に名前付きスナップショットを復元します。

adb -s emulator-5554 emu snapshot load clean-install

ネットワーク

adb -s emulator-5554 reverse tcp:<d-port> tcp:<h-port>

ホスト ポートをエミュレーターから到達可能にします(例: `localhost:3000` 上の dev サーバー)。

adb -s emulator-5554 reverse tcp:3000 tcp:3000
emulator -avd <name> -dns-server <ip>

エミュレーター内の DNS サーバーを上書きします — 企業ネットワークが Google DNS の既定をブロックしている場合に必要です。

emulator -avd pixel_7_api34 -dns-server 1.1.1.1

パフォーマンス

emulator -avd <name> -memory <MB>

エミュレーターの RAM を制限します。既定はデバイス プロファイルから派生; CI ランナーでは下げます。

emulator -avd pixel_7_api34 -memory 2048
emulator -avd <name> -cores <N>

ゲストに報告される CPU コア数を設定します。

emulator -avd pixel_7_api34 -cores 4
emulator -avd <name> -gpu <mode>

グラフィックス バックエンドを選択します: `host` はホスト GPU を使用(最速、ハードウェア アクセラレーション)、`swiftshader_indirect` はソフトウェア フォールバック(CI 安全)、`off` は GPU を無効化。

host | swiftshader_indirect | guest | off

emulator -avd pixel_7_api34 -gpu swiftshader_indirect

ハードウェア

emulator -avd <name> -skin <skin>

AVD の画面スキンを上書きします(`1080x1920`、`480x800`、`Nexus 5` ...)。

emulator -avd pixel_7_api34 -skin 1080x2280
emulator -avd <name> -camera-back <mode>

背面カメラ ソースを設定します: `emulated`(アニメーション シーン)、`webcam0`、`webcam1`、`none`。

emulated | webcam<N> | none

emulator -avd pixel_7_api34 -camera-back webcam0

ADB 統合

adb -s emulator-<port> install <apk>

ADBs シリアル(`emulator-5554`、`emulator-5556` ...)で特定のエミュレーターに APK をインストールします。

adb -s emulator-5554 install -r app-debug.apk
adb -s emulator-<port> shell screencap -p /sdcard/x.png

エミュレーター画面をキャプチャします — スクリーンショット リグレッション テストに便利です。

adb -s emulator-5554 shell screencap -p /sdcard/x.png && adb -s emulator-5554 pull /sdcard/x.png ./snap.png
adb -s emulator-<port> emu kill

指定されたエミュレーターを正常にシャットダウンします。

adb -s emulator-5554 emu kill

環境変数

echo $ANDROID_AVD_HOME

AVD ストレージ ディレクトリを表示します(既定 `~/.android/avd`)。AVD を高速 SSD に移動するために上書きします。

export ANDROID_AVD_HOME=/mnt/fast-ssd/.android/avd
echo $ANDROID_SDK_ROOT

SDK インストール ルートを表示します。`ANDROID_SDK_ROOT` と `ANDROID_HOME` の両方が動作します; 新しいスクリプトは後者を好みます。

export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
echo $ANDROID_EMULATOR_HOME

エミュレーター構成ディレクトリを表示します(既定 `$ANDROID_SDK_ROOT/emulator`)。`~/.android/` と SDK パスの追跡に便利です。

ls $ANDROID_EMULATOR_HOME/lib/

その他

avdmanager --version

avdmanager / cmdline-tools バージョンを表示します。

avdmanager --version
emulator -version

エミュレーター パッケージ バージョンを表示します。

emulator -version
avdmanager --help

すべての avdmanager サブコマンドを 1 行説明とともに一覧表示します。

avdmanager --help

関連コマンド速查

AVD Manager について

Android Virtual Device (AVD) Manager は Android エミュレーターを支えるツールチェーンです。2 つの CLI が連携します:AVD 定義を管理する `avdmanager`(Android SDK Command-line Tools に同梱、Studio 3.0 の 2017 年以降)と、それらを実行する `emulator`(Android Emulator パッケージに同梱)。AVD は、QEMU ベースの仮想 Android フォン、タブレット、Wear、TV、Auto デバイスにブートするプロファイル(ハードウェア、システム イメージ、ストレージ、スキン)です。現在の安定版は AVD Manager 34+(Android 14)です。AVD は物理デバイスなしでの開発、自動 UI テスト、デモ、CI マトリックス カバレッジに役立ちます。モダンな Android Studio はハードウェア アクセラレーションと Google API のために Google Play 付きの x86_64 システム イメージを優先します。AVD は `~/.android/avd/` 配下にあります。ハードウェア アクセラレーションには Linux では KVM、Windows では HAXM(非推奨)または WHPX / Windows Hypervisor Platform、macOS では HVF が必要です。AVD スナップショットは決してアップロードしないでください — ログイン済みの Google アカウントや独自アプリが含まれている可能性があります。

チートシート バージョン 1.0.0