Ключ должен запускать adb
в отдельном процессе (&).
Я придумал следующий скрипт для одновременного запуска установки на всех моих подключенных устройствах и, наконец, запуска на каждом из них установленного приложения:
#!/bin/sh
function install_job {
adb -s ${x[0]} install -r PATH_TO_YOUR_APK
adb -s ${x[0]} shell am start -n "com.example.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
}
#iterate over devices IP-addresses or serial numbers and start a job
while read LINE
do
eval x=($LINE)
install_job ${x[0]} > /dev/null 2>&1 &
done <<< "`adb devices | cut -sf 1`"
echo "WATING FOR INSTALLATION PROCESSES TO COMPLETE"
wait
echo "DONE INSTALLING"
Примечание1: STDOUT и STDERR подавляются.Вы не увидите никаких результатов операции "adb install".Думаю, это можно улучшить, если вам действительно нужно
Примечание 2: , вы также можете улучшить сценарий, указав аргументы вместо жестко закодированных путей и имен действий.Таким образом, вы:
- Не нужно вручную выполнять установку на каждом устройстве
- Не нужно ждать окончания одной установки, чтобы выполнить другую (задачи adb)запускаются параллельно)