CommandDescription
Emulator
emulator -list-avdsList local emulators
emulator -avd Pixel_4_API_31 -wipe-data -dns-server 8.8.8.8Run emulator
emulator -versionList emulator version.
telnet localhost 5554emulator console.
Adb
adb devicesList active devices.
adb --versionCheck adb.
adb logcatView adb log files.
Avd
avdmanager create avd -n emulator_name -k "system-images;android-24;default;x86_64" -g "default"Create
Sdkmanager
sdkmanager "system-images;android-24;default;x86_64"View system image
sdkmanager --listlist updates available
sdkmanager --updateupdate

Environment Variables

DirectoryDescriptioneg.
ANDROID_SDK_ROOTAndroid SDKC:\Users\<YourUsername>\AppData\Local\Android\Sdk
ANDROID_SDK_HOMEAndroid SDK configC:\Users\<YourUsername>\.android

Device Emulator

Emulator commands

CommandDescription
emulator -list-avdsList local emulators
emulator -avd Pixel_4_API_31 -dns-server 8.8.8.8Run emulator
telnet localhost 5554emulator console.
adb devicesList active devices.
adb --versionCheck adb.
adb logcatView adb log files.

AVD manager commands

  • NOTE DELETE THE AVD BEFORE DELETING THE SDK.

Customizations

Find ini file.

PS C:\Users\dave> avdmanager.bat list avd
Available Android Virtual Devices:
    Name: Android_API_35
    Path: C:\android-sdk\.android\avd\Android_API_35.avd
...

Add the following options to the config.ini (NOTE, NOT the Android_API_35)

PlayStore.enabled = true
hw.keyboard = yes
hw.ramSize = 2G
vm.heapSize = 512M
hw.camera.back = emulated
hw.camera.front = emulated
hw.cpu.ncore=6
hw.gpu.enabled = yes
hw.gpu.mode=host
hw.lcd.density = 420
hw.lcd.height = 2400
hw.lcd.width = 1080
hw.lcd.vsync = 60
hw.lcd.depth = 32

To check vm memory

PS E:\working\flipdare\code\apps\demo> adb shell
emu64xa:/ $ cat /proc/meminfo
CommandDescription
avdmanager -v delete avd -n "API_29_X86_PLAYSTORE"Delete avd
avdmanager list avdList avds
avdmanager create avd -n Android_API_30 -k "system-images;android-30;google_atd;x86_64" -c 100Mcreate avd

sdkmanager commands

CommandDescription
sdkmanager --listList all available images
sdkmanager --list_installedList installed
sdkmanager --uninstall \
"system-images;android-30;google_apis_playstore;x86"
Uninstall via sdk manager.

Paths

EnviromentPathDescription
D:\android\.android\avdemulator config
ANDROID_SDK_ROOTd:\Users\dave\AppData\Local\Android\Sdk
ANDROID_SDK_HOMED:\androidLocation of .android
ANDROID_EMULATOR_HOMED:\android\.androidEmulator
N/AC:\Users\dave\AppData\Local\TempLog files windows
N/AD:\Users\dave\AppData\Local\Android\Sdk\cmdline-tools\latest\binsdkmanager

Fixing key errors

rm -rf ~/.android/adbkey*;
adb kill-server;
adb devices;

Starting

Emulator

	emulator -avd Android_API_30  -no-skin -no-boot-anim -no-window -wipe-data \
	-no-audio -no-accel -no-snapshot-save -netspeed full -netdelat none \
	-memory 768 -port

Optimized Command

/opt/android-sdk/emulator/emulator @MyAVD -no-window -no-audio -ports 5554,5555 -skip-adb-auth -no-boot-anim -show-kernel -qemu -cpu max -machine gic-version=max

with options

Command
-no-skinno-boot-animno-window-wipe-data
-no-audio-no-accel-no-snapshot-save
-netspeed full-netdelay none
-memory 768
-gpu swiftshader_indirect
-port 8952

Adb settings

	adb shell settings put global window_animation_scale 0.0
	adb shell settings put global transition_animation_scale 0.0
	adb shell settings put global animator_duration_scale 0.0
  • Check for device up

    adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'
    

Installation

USB emulator

apt install linux-tools-generic
modprobe usbip_core
modprobe usbip_host
modprobe vhci_hcd

usbip list -l

emulator

Linux

Install image

sdkmanager "platform-tools" "platforms;android-30" "system-images;android-30;default;x86_64"
  • Note, the platform-tools installs adb

Create

echo "no" | avdmanager create avd -n test -k "system-images;android-30;default;x86_64" --device "pixel"

Removing

avdmanager delete avd -n test_arm
sdkmanager --uninstall "system-images;android-30;default;x86_64"

Windows

Creating ARM emulator

sdkmanager --install "system-images;android-30;google_atd;arm64-v8a"
echo "no" | avdmanager --verbose create avd --force --name "pixel_5_api30_google_atd_emulator" --package "system-images;android-30;google_atd;arm64-v8a" --tag "google_atd" --abi "arm64-v8a" --device "pixel_5"

Creating x86 emulator

sdkmanager --install "system-images;android-30;google_atd;x86_64"
echo "no" | avdmanager create avd -n Android_API_30 -k "system-images;android-30;google_atd;x86_64" -c 100M

echo "no" | avdmanager create avd -n API_30_X86_64_PLAYSTORE -k "system-images;android-30;google_apis_playstore;x86_64" -c 100M
echo "no" | avdmanager create avd -n API_30_X86_PLAYSTORE -k "system-images;android-30;google_apis_playstore;x86" -c 100M
  • With google_apis

    sdkmanager --install "system-images;android-30;google_apis_playstore;x86_64"
    avdmanager create avd -n tester -k "system-images;android-30;google_apis_playstore;x86" -c 100M
    avdmanager create avd -n Android_API_33 -k "system-images;android-33;google_atd;x86_64" -c 100M
    

Linux Installation

setup on linux

android sdk

wget https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip
unzip commandlinetools-linux-8512546_latest.zip -d android-sdk
mv android-sdk /opt/
mkdir /opt/android-sdk/cmdline-tools/latest
mv /opt/android-sdk/cmdline-tools/* /opt/android-sdk/cmdline-tools/latest

echo "export JAVA_HOME=/usr/lib/jvm/jdk-21.0.4-oracle-x64" >> /etc/bash.bashrc
export "PATH="\$JAVA_HOME/bin:\$PATH" >> /etc/bash.bashrc
echo "export ANDROID_SDK_ROOT=/opt/android-sdk" >> /etc/bash.bashrc
echo "export ANDROID_HOME=/opt/android-sdk" >> /etc/bash.bashrc
echo "export ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL=60" >> /etc/bash.bashrc
echo "export PATH=\$PATH:/opt/android-sdk/cmdline-tools/latest/bin" >> /etc/bash.bashrc

updates and licenses

sdkmanager --update
sdkmanager --licenses

emulator

  • Get emulator download link:

    • https://ci.android.com/builds/branches/aosp-emu-master-dev/grid?

    • column: emulator –> linux_aarch64

    • click a green version

    • click Artifacts tab

    • click sdk-repo-linux_aarch64-emulator-[build number].zip

    • Right-click the Download link (blue) and copy the download URL

        cd /opt/android-sdk/
        wget -O emulator.zip https://ci.android.com/builds/submitted/12345114/emulator-linux_aarch64/latest/sdk-repo-linux_aarch64-emulator-12345114.zip
        unzip emulator.zip
        cd emulator
      
  • Update licenses

    • copy text from https://chromium.googlesource.com/android_tools/+/refs/heads/master/sdk/emulator/package.xml
      • e.g. sdk-repo-linux-emulator-12345114.zip on branch aosp-emu-master-dev on target emulator-linux_x64_gfxstream
    • vi /opt/android-sdk/emulator/package.xml –> paste copied text
    • cat source.properties –> get Emulator version number from Pkg.Revision (Example: Pkg.Revision=31.3.9)
    • update the following params in package.xml according to the version: <major>, <minor>, <micro>
  • Configure vm

    • Version from <major> in previous step.

        sdkmanager "system-images;android-VanillaIceCream;google_apis_playstore;x86_64"
        avdmanager -v create avd -f -n MyAVD -k "system-images;android-35;google_apis;arm64-v8a" -p "/opt/android-sdk/avd"
        avdmanager list avd --> check that you have MyAVD
      
  • Misc

      mkdir /opt/android-sdk/platforms
      mkdir /opt/android-sdk/platform-tools
      echo "Vulkan = off" >> ~/.android/advancedFeatures.ini
      echo "GLDirectMem = on" >> ~/.android/advancedFeatures.ini
    
  • Metal instance, enabled KVM access:

  • sudo gpasswd -a $USER kvm

  • logout and re-login

  • /opt/android-sdk/emulator/emulator -accel-check –> check accel:0, KVM (version 12) is installed and usable: accel