Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用终端运行特定的Android应用程序?_Android_Command Line_Android Emulator_Terminal_Adb - Fatal编程技术网

如何使用终端运行特定的Android应用程序?

如何使用终端运行特定的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 [-

我已经安装了Eclipse和Android SDK。一切正常

我想安装一个.apk文件,所以我已经按照说明操作了。但问题是,当我启动模拟器时,它不会自动运行我的应用程序


终端中是否有允许我运行我要求的特定应用程序的命令?

使用
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命令,它不依赖于设备,而是存在于您的开发机器中。