如何透過 adb command line 指令啟動 Android App

執行自動化測試時我們都必須先開啟 App 後才開始才進行測試,開啟 App 的動作我們可以透過 adb(Android Debug Bridge) 指令來幫我們完成,指令如下所示:

adb shell am start -n [PACKAGE-NAME]/[ACTIVITY-NAME]

其中 PACKAGE-NAME 參數的部分,我們可以透過以下指令來得知 App 的 package name。

adb shell pm list packages -f

如果不想透過 adb 指令取得 package name 也可以使用 Package Name Viewer 應用程式來查看 App 的 package name。

接著 ACTIVITY-NAME 參數則可透過以下指令來查看,它就可以列出所有正在執行 App 的 Activity 名稱。

adb shell dumpsys activity

舉個例子來說,假設裝置裡有安裝 “ES文檔瀏覽器“,透過剛才取 package name 的名稱得到 “com.estrongs.android.pop",接著我們開啟 ES 文檔瀏覽器 App 後執行 adb shell dumpsys activity 指令後,可以在命令模式下搜尋 com.estrongs.android.pop 關鍵字,可以找到 android.intent.category.LAUNCHER 啟動的起始畫面 Activity,如下所示:

Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHE
R] flg=0x10200000 cmp=com.estrongs.android.pop/.view.FileExplorerActivity }

實際執行圖:

adb dump

我們就可以知道 ES 文檔瀏覽器 App 的啟始畫面,就可以直接下指令來開啟 App。

adb shell am start -n com.estrongs.android.pop/.view.FileExplorerActivity

 

參考文章:

1. android – get launchable activity name of package from adb – Stack Overflow

2. Bartosz Kosarzycki’s blog: Android – Find main activity name of the running application

3. FYTSAI: Android 用 adb shell啟動 Activity

 

廣告

3 thoughts on “如何透過 adb command line 指令啟動 Android App

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s