Ответы:
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
function androidrun(){ ant clean debug adb shell am start -n $1/$1.MainActivity }
и ее использованиеandroidrun com.example.test
adb shell am
даст вам список других опций для передачи в am
команду. Вы можете узнать больше на developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
чтобы перечислить все приложения, которые были показаны.
Можно запустить приложение с указанием имени пакета только с помощью инструмента обезьяна , следуя этой схеме:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
Команда используется для запуска приложения, используя инструмент обезьяны, который генерирует случайный ввод для приложения. Последняя часть команды - целое число, которое определяет количество сгенерированных случайных входных данных для приложения. В данном случае это номер 1, который фактически используется для запуска приложения (щелчок по значку).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
см. Здесь: stackoverflow.com/a/18703083/211292
Или вы можете использовать это:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
Виаadb shell
Пользователи 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"
Примечание: для этого необходимо, чтобы у вас был путь на вашем пути. Вы можете найти его в новой папке инструментов сборки в SDK.
Кроме того, я хочу упомянуть еще одну вещь.
Когда вы запускаете приложение из adb shell am
, оно автоматически добавляет флаг FLAG_ACTIVITY_NEW_TASK, который меняет поведение. Смотрите код .
Например, если вы запускаете действие из Play Store из 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
Эта команда отображает доступные видеоплееры для воспроизведения файла sample.3gp
Шаг 1: Сначала получите все имена пакетов приложений, установленных на вашем устройстве, используя:
adb shell pm list packages
Шаг 2: Вы получите все имена пакетов, скопируйте тот, который вы хотите начать использовать с помощью adb.
Шаг 3: Добавьте желаемое имя пакета в приведенной ниже команде.
adb shell monkey -p 'your package name' -v 500
Например:
adb shell monkey -p com.estrongs.android.pop -v 500
запустить обозреватель Es.
откройте ~ / .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
app-debug
делает?
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 нет физических ключей, какие параметры необходимо включить в команду?
Попробуйте это, чтобы открыть приложение для Android с определенным файлом изображения, чтобы открыть в качестве параметра.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Он будет работать на последней версии Android, не появится всплывающее окно, чтобы выбрать приложение для открытия, поскольку вы даете конкретное приложение, для которого вы хотите открыть свое изображение с