如何使用终端运行特定的Android应用程序?
我已经安装了Eclipse和Android SDK。一切正常 我想安装一个.apk文件,所以我已经按照说明操作了。但问题是,当我启动模拟器时,它不会自动运行我的应用程序如何使用终端运行特定的Android应用程序?,android,command-line,android-emulator,terminal,adb,Android,Command Line,Android Emulator,Terminal,Adb,我已经安装了Eclipse和Android SDK。一切正常 我想安装一个.apk文件,所以我已经按照说明操作了。但问题是,当我启动模拟器时,它不会自动运行我的应用程序 终端中是否有允许我运行我要求的特定应用程序的命令?使用cmd activity start activity(或可选的am start)命令,该命令是到终端的命令行界面。使用am启动活动,如本帮助中所示: $ adb shell am usage: am [start|instrument] am start [-
终端中是否有允许我运行我要求的特定应用程序的命令?使用
cmd activity start activity
(或可选的am start
)命令,该命令是到终端的命令行界面。使用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 $comp
有关其他详细信息,请参见(可能是过时url:)的副本
要终止应用程序,可以使用
$ pkg=com.google.android.contacts
$ comp=$(adb shell cmd package resolve-activity --brief -c android.intent.category.LAUNCHER $pkg | tail -1)
$ adb shell cmd activity start-activity $comp
$ adb shell am kill com.google.android.contacts
还是更激烈
$ adb shell am force-stop com.google.android.contacts
您可以通过此命令启动android服务 adb shell am startservice-n packageName/.ServiceClass 无论何时使用命令行,我都会随时准备:
#!/usr/bin/env bash
PACKAGE=com.example.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
我使用了上面所有的答案,它给了我错误,所以我尝试了
adb shell monkey-p com.yourpack.name-c android.intent.category.LAUNCHER 1
它成功了。一个优点是,如果使用此命令,则不必指定启动器活动。Hi dtmilano。我也在尝试活动管理器,但我不知道应用程序的组件。请您进一步解释一下好吗?例如:我在/opt/sdk/example.apk中有一个已编译的文件,在中安装后,如何使其在命令行中运行?因此。。你怎么停下来?我已经尝试过adb stop…有没有一种方法可以启动应用程序并等待它停止?你是说活动何时停止?在
onStop()
中添加一些日志消息,然后搜索logcat
,直到找到该消息。是否也要等待一段时间才能停止活动?kill$(pidof…)?我很感谢您的回答,但请详细描述您的回答,而不是仅在两行中提供用户帮助。当我运行此命令时,我收到一个错误,错误是:活动类{com.example.demo/com.example.demo.MainActivity}不存在。。你知道怎么解决这个问题吗?它还表示错误类型3@Ezio请将脚本中的第2行更改为指向您的主要活动。在我的例子中,它是:MainActivity.java,位于包的根=>com.example.demo.MainActivity中。这对你来说将是不一样的。您还需要将第1行的包名(com.example.demo)更新为应用程序的包名。我知道这件事,Shubham,我做了您所说的所有更改,但仍然得到了错误。但是现在我使用了adb shell monkey-p com.mypackage.name-c android.intent.category.LAUNCHER 1,它工作了。我写了一个答案,以防其他人面临类似的问题。我只能通过这个猴子命令得到答案。谢谢。其他人给了我权限错误。monkey命令在所有Android设备上都有吗?我在嵌入式Android设备上执行盲代码,不知道它有什么命令,也不知道它没有什么命令。monkey命令是一个adb命令,它不依赖于设备,而是存在于您的开发机器中。