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:
- Solendroid: http://selendroid.io/
- Appium: http://appium.io/
#!/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