2011-03-31 119 views
34

我已经安装了Eclipse和Android SDK。一切运行良好。如何使用终端运行特定的Android应用程序?

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

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

+0

你是否等待停止活动呢?杀死$(pidof ...)? – RzR 2011-08-18 15:38:11

回答

67

使用'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 
+0

嗨dtmilano。我也在尝试活动管理器,但我不知道应用程序的组件。你介意进一步解释吗? – 2011-03-31 03:16:47

+0

例如:我在/opt/sdk/example.apk中有一个已编译的文件在我安装完成后,如何使它在命令行中运行? – 2011-03-31 03:37:49

+0

包名称+活动名称 – 2011-03-31 05:45:02

6

您可以通过以下命令启动的Android服务。

adb shell am startservice -n packageName/.ServiceClass

+0

我很感谢您的回答,但请在一些细节中描述您的答案,而不是仅为用户提供的两行帮助。 – Hamad 2013-12-10 05:32:43

4

我一直this build-and-run 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 
+0

当我运行这个命令时,我收到一个错误,说**错误:Activity类{com.example.demo/com.example.demo.MainActivity}不存在。**。你知道如何解决这个问题?它还表示错误类型3 – Ezio 2017-06-14 10:20:29

+0

@Ezio请更改脚本中的第2行以指向您的主要活动。在我的情况下它是:MainActivity.java在包的根目录下=> com.example.demo.MainActivity。这对你来说会有所不同。此外,您需要将第1行的软件包名称(com.example.demo)更新为应用程序的软件包名称。 – 2017-06-15 09:02:11

+0

我知道Shubham,我做了你所说的所有改变,但仍然出现错误。但现在我使用** adb shell的猴子-p com.mypackage.name -c android.intent.category.LAUNCHER 1 **,它的工作。我写了一个答案,以防其他人面临类似的问题 – Ezio 2017-06-15 10:17:28

1

我用所有上述答案,这是给我的错误,所以我尝试

adb shell monkey -p com.yourpackage.name -c android.intent.category.LAUNCHER 1

,它的工作。一个好处是如果你使用这个命令,你不必指定你的启动器活动。

+0

我只能用这个猴子命令得到它,谢谢。其他人给我许可错误。 – giorgio79 2017-08-24 12:20:47

相关问题