Как запустить приложение с помощью Android ADB tools?
10 ответов
adb shell
am start -n com.package.name/com.package.name.ActivityName
или вы можете использовать это непосредственно:
adb shell am start -n com.package.name/com.package.name.ActivityName
вы также можете указать действия, которые будут фильтроваться по вашему намерению-фильтры:
am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName
можно запустить приложение, указав имя пакета только с помощью обезьяна инструмент, следуя этой схеме:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
команда используется для запуска приложения с помощью monkey tool, который генерирует случайный ввод для приложения. Последняя часть команды-integer, которая задает количество сгенерированных случайных входных данных для приложения. В этом случае число 1, которое фактически используется для запуска приложения (значок мыши).
пользователи linux / mac также могут создать скрипт для запуска apk с чем-то вроде следующего:
создайте файл с именем "adb-run.sh" с этими 3 строками:
pkg=$(aapt dump badging |awk -F" " '/package/ {print }'|awk -F"'" '/name=/ {print }')
act=$(aapt dump badging |awk -F" " '/launchable-activity/ {print }'|awk -F"'" '/name=/ {print }')
adb shell am start -n $pkg/$act
затем " chmod +x adb-run.sh-чтобы сделать его исполняемым.
теперь вы можете просто:
adb-run.sh myapp.apk
преимущество здесь в том, что вам не нужно знать имя пакета или имя запускаемой активности. Точно так же вы можете создать "adb-uninstall.sh приложение myapp.apk"
Примечание: это требует, чтобы у вас был aapt на вашем пути. Вы можете найти его в папке new build tools в SDK.
кроме того, я хочу упомянуть еще одну вещь.
при запуске приложения из adb shell am
, автоматически добавляет флаг FLAG_ACTIVITY_NEW_TASK что приводит к изменению поведения. Вижу код.
например, если вы запускаете Play Store activity из adb shell am
нажатие кнопкиназад' кнопка (аппаратная кнопка назад) не будет принимать вас ваше приложение, вместо этого он будет принимать вас предыдущую деятельность Play Store, если есть некоторые(Если там не было задачи Play store, тогда это займет у вас ваше приложение). flag_activity_new_task документация говорит :
Если задача уже запущена для действия, которое вы сейчас запускаете, то новое действие не будет запущено; вместо этого текущая задача будет просто выведена на переднюю часть экрана с состоянием, в котором она была последней в
поэтому, имейте в виду это adb shell am
добавить FLAG_ACTIVITY_NEW_TASK флаг.
мы также можем запустить приложение, зная тип приложения и подавая его с данными:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
эта команда отображает доступные видеоплееры для воспроизведения образец.3гп
открыть ~/.файл и добавьте эти функции bash в конец файла
function androidinstall(){
adb install -r ./bin/.apk
}
function androidrun(){
ant clean debug
adb shell am start -n /.
}
затем откройте папку проекта Android
androidinstall app-debug && androidrun com.example.app MainActivity
monkey --pct-syskeys 0
для советов по развитию
без этого аргумента приложение не откроется на доске разработки без ключей / дисплея:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
и терпит неудачу с ошибкой:
SYS_KEYS has no physical keys but with factor 2.0%
протестировано на HiKey960, Android O AOSP.
узнал от:https://github.com/ARM-software/lisa/pull/408
также спросил:monkey test : если система Android не имеет физических ключей, каковы параметры нужно быть includeded в команду
попробуйте это, для открытия приложения android photo & с конкретным файлом изображения, чтобы открыть в качестве параметра.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
он будет работать на последнем android, не всплывающее окно не придет, чтобы выбрать приложение, чтобы открыть, как вы даете конкретное приложение, к которому вы хотите открыть изображение с
adb shell am start -n '<appPackageName>/.<appActitivityName>
Ex:
adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'
вы можете использовать приложение APK-INFO, Чтобы узнать список действий приложения в отношении каждого пакета приложений