ADB常用命令:
- adb install <具體apk路徑>。通過命令行安裝指定的app,例如 adb install D:/meituxx.apk
- adb uninstall <app packagename>. 通過命令行直接移除不想繼續(xù)使用的app。例子 adb uninstall com.meitu.mtxx.mtxx
- adb shell. 通過該命令可以讓我們進入到安卓的系統(tǒng)裡面,你也可以通過該命令追加 shell 命令進行相關操作,例如可以通過 adb shell ls /mnt/sdcard/ 查看sdcard裡面有什麼目錄。我們應該注意如果你想像在linux裡面查看信息,就直接 adb shell 迴車,進入上帝視角了。
ADB啟動介面:
說到如何通過ADB啟動相應的 Activity ,首先你得明白安卓裡面每個介面都很可能是一個 Activity ,可以通過軟件開發(fā)的同學輸出一份關於他們內部的 Activity的列表:
例如:
| Activity | Action | Category |
|---|---|---|
| com.android.music.MusicBrowserActivity | android.intent.action.MAIN | android.intent.category.LAUNCHER |
| com.android.music.MediaPlaybackActivity | android.intent.action.VIEW |
Action:
- android.intent.action.MAIN 表示這個
Activity是整個 App的主入口 - android.intent.action.VIEW 表示這個
Activity可以響應某種類型的數據的 View,一般用於程序之間相互調用。
Category:
- android.intent.category.LAUNCHER 決定了App是否顯示在程序列表裡面,只有與 android.intent.action.MAIN 才有意義。
講了這麼多到了實戰(zhàn)部分了:
我們要啟動一個Activity可以直接執(zhí)行:
$adb shell
# am start -n com.mt.mtxx.mtxx/com.meitu.mtxx.MainActivity
以上就會默認啟動美圖秀秀的首頁。
com.mt.mtxx.mtxx是美圖秀秀的 packagename,com.meitu.mtxx.MainActivity是主入口的Activity名稱。
以上命令還有一個快速的調用方式。
$adb shell am start -n com.mt.mtxx.mtxx/com.meitu.mtxx.MainActivity
在指定Activity時候我們可能會用到以下兩個參數:
[-a <ACTION>] 指定我們想出發(fā)的具體 Action類型:
$adb shell am start -n com.mt.mtxx.mtxx/com.meitu.mtxx.MainActivity -a android.intent.action.MAIN
[-c <CATEGORY> [-c <CATEGORY>] ...] 指定我們要接收響應Activity的 category。
$ adb shell am start -n com.mt.mtxx.mtxx/com.meitu.mtxx.MainActivity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如果執(zhí)行的時候收到如下信息:
Warning: Activity not started, its current task has been brought to the front
說明Activity已經被啟動并處于前臺狀態(tài)。
總結:
adb還有許多我們不常用的命令,但是在有些場景下可以幫助我們解決一些特殊問題。這些就有待我們繼續(xù)去發(fā)掘和研究了。也可以幫助自動化測試的同學解決部分問題。