전체 치트시트Android 개발

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 패키지 — 시스템 이미지, 빌드 도구, 플랫폼 도구, NDK를 나열합니다. AVD를 만들기 전에 시스템 이미지 ID를 찾는 데 사용하세요.

--include_obsolete

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

시스템 이미지 설치

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

Google APIs(Play Store / Maps 등)가 포함된 x86_64 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

Play Store 변형 시스템 이미지에 AVD를 태그합니다 — 인앱 구매 / Google Sign-In 흐름 테스트에 유용합니다.

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, 이후 에뮬레이터는 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`의 개발 서버).

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>

ADB 시리얼(`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/` vs SDK 경로를 추적할 때 유용합니다.

ls $ANDROID_EMULATOR_HOME/lib/

기타

avdmanager --version

avdmanager / cmdline-tools 버전을 출력합니다.

avdmanager --version
emulator -version

에뮬레이터 패키지 버전을 출력합니다.

emulator -version
avdmanager --help

모든 avdmanager 하위 명령을 한 줄 설명과 함께 나열합니다.

avdmanager --help

관련 명령어 치트시트

AVD Manager 소개

Android Virtual Device(AVD) Manager는 안드로이드 에뮬레이터를 구동하는 툴체인입니다. 두 CLI가 협력합니다: `avdmanager`(Android SDK Command-line Tools와 함께 제공, Studio 3.0/2017부터)는 AVD 정의를 관리하고, `emulator`(Android Emulator 패키지와 함께 제공)는 실행합니다. AVD는 QEMU 기반 가상 안드로이드 폰, 태블릿, Wear, TV, Auto 디바이스로 부팅되는 프로파일(하드웨어, 시스템 이미지, 스토리지, 스킨)입니다. 현재 안정 라인은 AVD Manager 34+(Android 14)입니다. AVD는 물리적 디바이스 없이 개발하는 경우, 자동화된 UI 테스트, 데모, CI 매트릭스 커버리지에 유용합니다. 모던 Android Studio는 Google Play가 포함된 x86_64 시스템 이미지를 선호합니다(하드웨어 가속 + Google API). AVD는 `~/.android/avd/` 아래에 있습니다. 하드웨어 가속은 Linux에서는 KVM, Windows에서는 HAXM(지원 종료) 또는 WHPX/Windows Hypervisor Platform, macOS에서는 HVF가 필요합니다. AVD 스냅샷에는 로그인된 Google 계정이나 독점 앱이 포함될 수 있으므로 업로드하지 마세요.

치트시트 버전 1.0.0