Как запустить приложение с помощью инструментов Android ADB? - PullRequest
421 голосов
/ 31 декабря 2010

Как отправить намерение с помощью инструментов Android ADB?

Ответы [ 11 ]

568 голосов
/ 31 декабря 2010
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 
256 голосов
/ 20 августа 2014

Можно запустить приложение с указанием имени пакета только с помощью инструмента monkey , следуя этой схеме:

adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1

Команда используется для запуска приложения, используя инструмент обезьяны, который генерирует случайный ввод для приложения. Последняя часть команды - целое число, которое определяет количество сгенерированных случайных входных данных для приложения. В данном случае это номер 1, который фактически используется для запуска приложения (щелчок по значку).

117 голосов
/ 01 сентября 2012

Или вы можете использовать это:

adb shell am start -n com.package.name/.ActivityName
58 голосов
/ 25 июня 2013

Пользователи linux / mac могут также создать сценарий для запуска apk с чем-то вроде следующего:

создать файл с именем "adb-run.sh" с этими 3 строками:

pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act

затем "chmod + x adb-run.sh", чтобы сделать его исполняемым.

теперь вы можете просто:

adb-run.sh myapp.apk

Преимущество в том, что вам не нужно знать имя пакета или имя запускаемой деятельности.Точно так же вы можете создать «adb-uninstall.sh myapp.apk»

Примечание: для этого необходимо, чтобы у вас был aapt на вашем пути.Вы можете найти его в новой папке инструментов сборки в SDK.

18 голосов
/ 26 мая 2014

Кроме того, я хочу упомянуть еще одну вещь.

Когда вы запускаете приложение из adb shell am, , оно автоматически добавляет флаг FLAG_ACTIVITY_NEW_TASK , который вносит изменения в поведение,См. код .

Например, если вы запускаете игру в Play Store с adb shell am, нажатие кнопки * Back (аппаратная кнопка возврата) не потребуетвы - ваше приложение, вместо этого вам потребовалось бы предыдущее действие в магазине Play, если бы оно было (если не было задачи магазина Play, то это заняло бы ваше приложение). Документация FLAG_ACTIVITY_NEW_TASK гласит:

если задача уже запущена для действия, которое вы сейчас запускаете, то новое действие не будет запущено;вместо этого текущее задание будет просто выведено на переднюю часть экрана с состоянием, в котором оно было последним в

. Это заставило меня потратить несколько часов, чтобы выяснить, что пошло не так.

Итак, имейте в виду, что adb shell am добавить флаг FLAG_ACTIVITY_NEW_TASK .

15 голосов
/ 04 января 2014

Мы также можем запустить приложение, зная тип приложения и предоставляя ему данные:

adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW

Эта команда отображает доступные видеоплееры для воспроизведения sample.3gp file

14 голосов
/ 16 февраля 2013

открыть ~ / .bash_profile и добавьте эти функции bash в конец файла

function androidinstall(){
   adb install -r ./bin/$1.apk
}
function androidrun(){
   ant clean debug
   adb shell am start -n $1/$1.$2
}

затем откройте папку проекта Android

androidinstall app-debug && androidrun com.example.app MainActivity
8 голосов
/ 16 ноября 2018

Шаг 1. Сначала получите все имена пакетов приложений, установленных на вашем устройстве, используя:

adb shell pm list packages

Шаг 2: Вы получите все имена пакетов, copy , которые вы хотите начать использовать с помощью adb.

Шаг 3: Добавьте желаемое имя пакета в приведенной ниже команде.

adb shell monkey -p 'your package name' -v 500

Например:
adb shell monkey -p com.estrongs.android.pop -v 500 запустить Es Explorer.

5 голосов

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

Также спрашивается по адресу: Обезьяна тест: Еслисистема Android не имеет физических ключей, какие параметры необходимо включить в команду

0 голосов
/ 08 мая 2018
adb shell am start -n '<appPackageName>/.<appActitivityName>

Пример:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

Вы можете использовать приложение APK-INFO, чтобы узнать список операций приложения для каждого пакета приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...