Když potřebuju emulátor a je mi jedno jaký:
1. $ sdkmanager —list
V první sekci se zobrazují dostupné image, jednu si vyberu
2. avdmanager create avd -n android28 -k "system-images;android-28;google_apis_playstore;x86"
3. /opt/android/sdk/emulator/emulator -avd android28
—-
Když potřebuji otestovat Android aplikaci na emulátoru s použitím konkrétní verze. Např. Android 4.2.
1. zjistím si, že Android 4.2 je API 17
2. najdu image pro emulátor
$ sdkmanager --list | grep android-17 platforms;android-17 | 3 | Android SDK Platform 17 sources;android-17 | 1 | Sources for Android 17 system-images;android-17;default;armeabi-v7a | 5 | ARM EABI v7a System Image system-images;android-17;default;mips | 1 | MIPS System Image system-images;android-17;default;x86 | 3 | Intel x86 Atom System Image system-images;android-17;google_apis;armeabi-v7a | 5 | Google APIs ARM EABI v7a System Image system-images;android-17;google_apis;x86 | 5 | Google APIs Intel x86 Atom System Image
3. stáhnu image
$ sdkmanager --install "system-images;android-17;default;x86" [=======================================] 100% Unzipping... x86/userdata.img
4. vytvořím AVD
$ avdmanager create avd -n android42 -k "system-images;android-17;default;x86"
5. spustím emulátor
$ /opt/android/sdk/tools/emulator -avd android42
nebo
$ /opt/android/sdk/emulator/emulator -avd android28
6. nastavení rozlišení
do ~/.android/avd/android44.avd/config.ini přidat:
hw.lcd.density=320
Spustit emulátor:
/opt/android/sdk/tools/emulator -avd android44 -skin 2048x1536
—-
Staré příkazy:
android create avd -n jara3 -t android-19 --abi default/armeabi-v7a emulator -avd jara3 adb -s emulator-5554 install -r platforms/android/ant-build/MainActivity-debug.apk adb -s emulator-5554 shell am start -a android.intent.action.MAIN -n cz.inited.pojisteni/.MainActivity adb -s emulator-5554 emu kill
Script na spuštění emulátorů: https://gist.github.com/stackedsax/2639601
Testovací nástroje:
#!/bin/bash #export ANDROID_AVD_HOME=/home/inited/avd export ANDROID_HOME=/opt/android/sdk # function to really, really check things are booted up function wait_for_boot_complete { local boot_property=$1 local boot_property_test=$2 echo "[emulator-5554] Checking $boot_property..." local result=`adb -s emulator-5554 shell $boot_property 2>/dev/null | grep "$boot_property_test"` while [ -z $result ]; do echo -n "." sleep 1 result=`adb -s emulator-5554 shell $boot_property 2>/dev/null | grep "$boot_property_test"` done echo "[emulator-5554] All boot properties succesful" } android delete avd -n avd_test echo no | android -s create avd -n avd_test -t android-16 -c 60M -f -b default/x86 emulator -avd avd_test -port 5554 -no-boot-anim -noaudio -no-window & echo $! > /tmp/avd_test.pid echo "[emulator-5554] Waiting for emulator to boot completely" wait_for_boot_complete "getprop dev.bootcomplete" 1 wait_for_boot_complete "getprop sys.boot_completed" 1 wait_for_boot_complete "pm path android" package echo "Emulator nabehl" java -jar selendroid-standalone-0.16.0-with-dependencies.jar -aut app.apk & echo $! > /tmp/avd_test2.pid
chyba v selendrodiu: http://scn.sap.com/blogs/fqlyu/2015/01/14/automate-kapsel-applicationcordova-36x-or-above-with-selendroid-on-android