Подтвердить что ты не робот

Запуск приложения через adb без знания Название действия

Примечание. Это НЕ общий вопрос о запуске приложения Android с помощью инструмента Android adb, который, по мнению некоторых членов сообщества, является дубликатом. Как явственно указано ниже, я уже знаю, что это можно сделать с помощью adb, но с ограничением, что нам нужно знать имя Activity.

Итак, этот вопрос касается того, как запустить приложение с adb БЕЗ, зная название действия.

Из сообщения Можно ли начать работу через оболочку adb?, мы можем запустить приложение для Android через adb с помощью

adb shell am start -n yourpackagename/.activityname

Но можно ли запустить Android-приложение через adb, не зная имя Activity? Например, отправив пакет android.intent.action.MAIN в пакет? Может быть, некоторая команда вроде этого:

adb shell am start -a android.intent.action.MAIN -n packageName
4b9b3361

Ответ 1

Да, можно запустить приложение через оболочку adb, используя инструмент обезьяны.

Используя команду этот ответ:

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

Эта команда имитирует щелчок значка приложения, поэтому намерение подразумеваемого намерения LAUNCHER доставляется конкретному получателю, объявленному в манифесте приложения (MAIN)

Ответ 2

Используя последние версии (по крайней мере, API 25), вы можете запустить действие по умолчанию, не зная его имени, и не использовать monkey:

PKG=com.android.calculator2
adb shell am start $PKG/$(adb shell cmd package resolve-activity -c android.intent.category.LAUNCHER $PKG | sed -n '/name=/s/^.*name=//p')

Ответ 3

Если у вас есть файл apk, вы можете установить и запустить приложение, используя droidbot.

> droidbot -d emulator-5554 -a <xxx.apk> -install_app -policy none -count 0

DroidBot основан на adb, но он использует статический анализ для автоматического извлечения имени Activity.