0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 03:52:15 +02:00
Anki-Android/tools/quality-check/start_all_emulators.sh

67 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# This will start a fleet of android emulators that have been created using avdmanager or Android Studio
#
# You should follow the convention of naming them xxx_OLD for API15-17, and xxx_NEW for API18+
# Name ARM emulators (if you have them) xxxARM and make sure Chomebook is in the Chromebook emulators name
# as adb isn't available until you log in on Chromebooks
#
# Final note is that for the OLD emulators, you create them with avdmanager or Android Studio, then
# you have to start them once the *new* way to initialize things, but the sdcard won't mount. Then you
# start them the old way and everything works. If you get it wrong, either you won't have an sdcard, or
# the emulator will fail to boot with "Failed to decrypt" or similar
#
# Note that if you have many emulators, you may need to increase your file handles or you'll run out
# of file handles in your user session and enjoy very strange behavior (Chrome extensions crashing,
# terminals behaving strangely etc)
SLEEP=$1
if [ "$SLEEP" == "" ];
then SLEEP=10
else
SLEEP=0
fi
for AVD in `emulator -list-avds`; do
echo -n Found $AVD...
#SDCARD="/tmp/$AVD-sdcard.img"
NORMAL_ARGS="-no-snapshot -no-boot-anim " #-sdcard $SDCARD"
EXTRA_ARGS=""
case "$AVD" in
#*21*)
# echo "API 21 is problematic, skipping for now..."
# continue
# ;;
#*15*)
# echo "API 15 is problematic, skipping for now..."
# continue
# ;;
*OLD*)
# Name your emulators with an "OLD" tag for API <=17 or sdcard doesn't auto-mount
echo "$AVD is old, using workaround..."
EXTRA_ARGS="$EXTRA_ARGS -engine classic"
;;
*NEW*)
# Name your emulators with a "NEW" tag for API >17
echo "$AVD is new, normal emulator..."
;;
*ARM*)
# Don't use ARM emulators by default on x86 (so slow...)
echo "Skipping ARM emulator $AVD..."
continue
;;
*Chromebook*)
# Don't use Chromebook emulators by default
echo "Skipping Chromebook emulator $AVD..."
continue
;;
esac
#$ANDROID_SDK/tools/mksdcard -l sdcard 100M $SDCARD
$ANDROID_SDK/emulator/emulator $NORMAL_ARGS $EXTRA_ARGS @$AVD &
sleep $SLEEP
done