adb shell pm list packages [-?] [--user USER_ID] [FILTER]html
參數 | 顯示列表 |
---|---|
無 | 全部應用 |
-f | 顯示應用關聯的apk文件 |
-d | 只顯示disabled的應用 |
-e | 只顯示 enable的應用 |
-s | 只顯示系統應用 |
-3 | 只顯示第三方應用 |
-i | 只顯示應用的installer |
-u | 包含已卸載應用 |
T:string | 包名包含T的應用 |
adb install [?] [apk-file]python
參數 | 含義 |
---|---|
-l | 將應用安裝到保護目錄/mnt/esec |
-r | 容許覆蓋安裝 |
-t | 容許安裝AndroidManifest裏application指定android:testonly=「true」的應用 |
-s | 將應用安裝到sdcard |
-d | 容許降級安裝 |
-g | 授予全部運行時權限 |
運行後會有返回信息android
adb uninstall [-k] [package-name]shell
-k可選,表示卸載應用但保留數據和緩存目錄數組
adb shell dumpsys activity activities瀏覽器
adb shell dumpsys package [package-name]緩存
與應用交互主要是使用 am
命令,經常使用的命令以下:app
command | 用途 |
---|---|
start [options] <intent> | 啓動<intent>指定的activity |
Startservice [options] <intent> | 啓動<intent>指定的service |
broadcast [options] <intent> | 發送<intent>指定的廣播 |
force-stop [package-name] | 中止相關進程 |
用於決定 intent 對象的選項以下:ui
參數 | 含義 |
---|---|
-a |
指定 action,好比 android.intent.action.VIEW |
-c |
指定 category,好比 android.intent.category.APP_CONTACTS |
-n |
指定完整 component 名,用於明確指定啓動哪一個 Activity |
<intent> 裏還能帶數據,就像寫代碼時的 Bundle 同樣:code
參數 | 含義 |
---|---|
--esn <extra-key> |
null 值(只有 key 名) |
-e|--es <extra-key> <extra-string-value> |
string 值 |
--ez <extra-key> <extra-boolean-value> |
boolean 值 |
--ei <extra-key> <extra-int-value> |
integer 值 |
--el <extra-key> <extra-long-value> |
long 值 |
--ef <extra-key> <extra-float-value> |
float 值 |
--eu <extra-key> <extra-uri-value> |
URI |
--ecn <extra-key> <extra-component-name-value> |
component name |
--eia <extra-key><extra-int-value>[,<extra-int-value...>] | integer 數組 |
--ela <extra-key> <extra-long-value>[,<extra-long-value...>] | long 數組 |
Usage: input [<source>] <command> [<arg...>]
The sources are: dpad keyboard mouse touchpad gamepad touchnavigation joystick touchscreen stylus trackball
The commands and default sources are: text <string> (Default: touchscreen) keyevent [--longpress] <key code number or name> ... (Default: keyboard) tap <x> <y> (Default: touchscreen) swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) press (Default: trackball) roll <dx> <dy> (Default: trackball)
使用 adb shell input keyevent
命令,不一樣的 keycode 能實現不一樣的功能,完整的 keycode 列表詳見 KeyEvent,部分:
keycode | 含義 |
---|---|
3 | HOME 鍵 |
4 | 返回鍵 |
5 | 打開撥號應用 |
6 | 掛斷電話 |
24 | 增長音量 |
25 | 下降音量 |
26 | 電源鍵 |
27 | 拍照(須要在相機應用裏) |
64 | 打開瀏覽器 |
82 | 菜單鍵 |
85 | 播放/暫停 |
86 | 中止播放 |
87 | 播放下一首 |
88 | 播放上一首 |
122 | 移動光標到行首或列表頂部 |
123 | 移動光標到行末或列表底部 |
126 | 恢復播放 |
127 | 暫停播放 |
164 | 靜音 |
176 | 打開系統設置 |
187 | 切換應用 |
207 | 打開聯繫人 |
208 | 打開日曆 |
209 | 打開音樂 |
210 | 打開計算器 |
220 | 下降屏幕亮度 |
221 | 提升屏幕亮度 |
223 | 系統休眠 |
224 | 點亮屏幕 |
231 | 打開語音助手 |
276 | 若是沒有 wakelock 則讓系統休眠 |
adb shell uiautomator dump --compressed filepath(手機上保存的目錄)
adb pull /data/local/tmp/uidump.xml filepath(電腦上保存的目錄)
import os
os.popen("adb shell uiautomator dump --compressed 'filepath'") 便可調用,還能夠.read獲取返回值
經過對從手機拉取的ui樹進行解析,能夠獲取當前頁面的全部控件位置,能夠自動的進行一些例如點擊滑動等重複性的工做.