2011-03-31 117 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

相關問題