ADB常用命令:
- adb install <具體apk路徑>。通過命令行安裝指定的app,例如 adb install D:/meituxx.apk
- adb uninstall <app packagename>. 通過命令行直接移除不想繼續使用的app。例子 adb uninstall com.meitu.mtxx.mtxx
- adb shell. 通過該命令可以讓我們進入到安卓的系統裡面,你也可以通過該命令追加 shell 命令進行相關操作,例如可以通過 adb shell ls /mnt/sdcard/ 查看sdcard裡面有什麼目錄。我們應該注意如果你想像在linux裡面查看信息,就直接 adb shell 迴車,進入上帝視角了。
ADB啟動介面:
說到如何通過ADB啟動相應的 Activity
,首先你得明白安卓裡面每個介面都很可能是一個 Activity
,可以通過軟件開發的同學輸出一份關於他們內部的 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 才有意義。
講了這麼多到了實戰部分了:
我們要啟動一個Activity
可以直接執行:
$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>] 指定我们想出发的具体 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
如果执行的时候收到如下信息:
Warning: Activity not started, its current task has been brought to the front
说明Activity
已经被启动并处于前台状态。
总结:
adb还有许多我们不常用的命令,但是在有些场景下可以帮助我们解决一些特殊问题。这些就有待我们继续去发掘和研究了。也可以帮助自动化测试的同学解决部分问题。