Как запустить конкретное приложение для Android с помощью терминала?
Я уже установил Eclipse и Android SDK. Все работает нормально.
Я хочу установить файл .apk, чтобы я уже выполнил инструкцию. Но проблема в том, что когда я запускаю эмулятор, он автоматически не запускает мое приложение.
Есть ли команда в терминале, которая позволяет мне запускать определенное приложение, которое я прошу об этом?
Ответы
Ответ 1
Используйте команду 'am start
', которая является интерфейсом командной строки для ActivityManager. Используйте am
для запуска действий, как показано в этой справке:
$ adb shell am
usage: am [start|instrument]
am start [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...]
[-n <COMPONENT>] [-D] [<URI>]
...
Например, чтобы запустить приложение "Контакты", вы можете использовать
$ adb shell am start -n com.google.android.contacts/.ContactsActivity
См. также http://www.kandroid.org/online-pdk/guide/instrumentation_testing.html (может быть копия устаревшего URL: http://source.android.com/porting/instrumentation_testing.html) для других деталей.
Чтобы завершить приложение, вы можете использовать
$ adb shell am kill com.google.android.contacts
или более резкий
$ adb shell am force-stop com.google.android.contacts
Ответ 2
Вы можете запустить службу android с помощью этой команды.
adb shell am startservice -n packageName/.ServiceClass
Ответ 3
Я поддерживаю этот сборка и запуск script, когда я работаю из командной строки:
PACKAGE=com.examply.demo
ACTIVITY=.MainActivity
APK_LOCATION=app/build/outputs/apk/app-debug.apk
echo "Package: $PACKAGE"
echo "Building the project with tasks: $TASKS"
./gradlew $TASKS
echo "Uninstalling $PACKAGE"
adb uninstall $PACKAGE
echo "Installing $APK_LOCATION"
adb install $APK_LOCATION
echo "Starting $ACTIVITY"
adb shell am start -n $PACKAGE/$ACTIVITY
Ответ 4
Я использовал все вышеперечисленные ответы, и это давало мне ошибки, поэтому я попробовал
adb shell monkey -p com.yourpackage.name -c android.intent.category.LAUNCHER 1
и это сработало. Одно из преимуществ - вам не нужно указывать свою активность запуска, если вы используете эту команду.