Как запустить приложение с помощью Android ADB tools?

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

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, которое фактически используется для запуска приложения (значок мыши).


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

adb shell am start -n com.package.name/.ActivityName

пользователи 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, Чтобы узнать список действий приложения в отношении каждого пакета приложений