adb shell am start -n
/.
C:\Users\>adb shell
venus:/ $ ^C
C:\Users\>adb shell |
={ u0com../com.asu..
C:\Users\>adb shell am start -ncom../com.asu..
: { cmp=com../com.asu..lias}
6.16
清楚應用數據adb shell pm path
輸出安裝包的APK路徑
adb shell pm clear
刪除與包相關的所有數據:清除數據和緩存
7、獲得應用的啟動時間wandoujia是什么文件夾可以刪除嗎,可以很方便地獲取應用的啟動時間
adb shell am start -W
/.
試驗結果如下:
adb shell am start .test/com..test. : {act=...MAIN cat=[...]cmp=.test/com..test. } : ok :.test/com..test. : 355 : : 365
返回的幾個結果,以為準,返回的是從到應用第一幀完全顯示的時間。
8、啟動,am的-n參數表示組件,-a參數表示命令,-a后面的參數為中定義的的
adb shell am -n
/.
也可:
adb shell am -a"...CALL"
9、發送廣播
adb shell am -a"...."
廣播可以帶上不同類型的參數,–es為參數類型,–ei為int參數類型,–ez為參數類型
adb shell am -a "...."--es "this is test "
10、查看某個app的進程相關信息10.1
adb shell ps
例如
adb shell ps com.ma.app:push USER PID PPID VSIZE RSS WCHAN PC NAME 5483 304 S com.ma.app:push
小米手機上測試成功,在另外一個設備上,如果ps后面的參數是包名則顯示不了進程的詳細信息,參見下面的方式獲取
10.2
adb shell ps | grep
11、殺掉某個進程,一般用于模擬某個bug復現
adb shell kill
12、查看某一個app的內存占用
adb shell
結果如下,其中的Heap size包括了 Heap和 Heap,平時我們所說的內存限制指的是 Heap。
Pss Heap Total Dirty Size Alloc Free------ ------ ------ ------ ------ ------ ------ Heap 04696 44288 21352 22935 Heap 60102 60088 0 26192 88285 16201 App Pss(KB) ------Java Heap: 61640 Heap:18940 Code: : 428 : 16876 Other: : 2031 ...
13、查看單個應用程序的最大內存限制
adb shell | grep
得到的結果為128M: [.vm.]: [128m]
這就是說 Heap size的最大值超過了128M,就很可能發生OOM
14、獲取單個應用的電量消耗信息 是 5.0開始引入的,下面的命令為獲取單個app的電量消耗信息,獲取系統耗電信息見下節
adb shell >
> xxx.txt
上面的電量信息為原始數據wandoujia是什么文件夾可以刪除嗎,可以通過編寫的.py腳本把數據信息轉換為可讀性很好的html文件,類似生成的列表數據,之前在做app性能優化的時候起了很大的作用
.py xxx.txt > xxx.html
15、跑,個人很喜歡這個命令,運行過程中,應用程序會不斷切換畫面,按照選定的不同級別反饋信息,還可以看到執行過程報告和生成的事件。測試應用的穩定性時很實用。現在也有了的tool
adb shell -v -p
500 -p 對象包 -v 反饋信息級別
:: seed=12 count=500 ::com..mm.app:push :: ...:: ... ** No found to run, .
系統相關
1、查看設備名稱,豌豆莢等應用就是通過此來獲得設備的名稱
adb shell cat //build.prop/
結果:
ro..model=MI 3W ro..brand=
2、查看手機分辨率有兩種方法,第二種方法最為簡潔2.1
adb shell | grep
grep是一個非常有用的參數,具體含義和用法大家自行一下,試驗結果為1080 * 1920:
: shown=false layer=21000 alpha=1.0rect=(0.0,0.0) 1080.0 x 1920.0
2.2.
adb shell wm size
返回結果為:
size:
3、查看手機sdk版本
adb shell | grep
運行上面的命令后,列出來的中[ro.build..]: [6.0.1]即為手機sdk版本
4、查看手機型號信息
adb shell | grep
運行此命令之后,能看到,board,brand和cpu等等的型號
5、獲取序列號,獲取到的序列號即為adb 列出來的序列號
adb get-
6、查看連接的設備
adb
如果有多個設備連接,想對其中的某一設備進行操作,就需要在此命令的后面加參數
adb [-d|-e|-s ] -d:真機(多個設備中只有一個真機時適用) -e:模擬器(多個設備中只有一個模擬器時適用) -s:序列號
假如有兩個真機連接了我的電腦,adb 獲取到的數據如下
List of
進入設備的命令為:
adb -s shell
7、查看wifi密碼(需要root權限)
adb shell cat data/misc/wifi/*.conf
8、查看
adb shell cat /sys/class/net/wlan0/
運行此命令,93:a1:a2:91:d1:c1是小米3的地址
9、查看后臺信息
adb shell list
運行結果為
Found 126 : 0 :[miui..] 1 miui..power: [miui..power]...
10、查看系統當前內存占用,為總述
adb shell cat /proc/
運行結果:
: kB : 81200 : 14828 kB : kB : 15152 kB : kB : kB ...
11、查看各進程詳細內存占用和系統的內存占用有幾種方法
11.1
adb shell
Total PSS SWAP by : 97858 kB: 34944 kB: com.. () ... Total RAM: kB () Free RAM: kB ( pss + + )
Total PSS 信息就是你的應用真正占據的內存大小,通過這個信息,可以輕松判別手機中哪些程序占內存比較大。
11.2 查看各進程內存的另一方法 不是所有設備都支持
adb shell
運行結果如下:
PID Vss Uss 496 743 .. .... ------------ ------ : total, free, , , 300K shmem, slab
其中
VSS – Set Size 虛擬耗用內存(包含共享庫占用的內存) RSS – Set Size 實際使用物理內存(包含共享庫占用的內存) PSS – Set Size 實際使用的物理內存(比例分配共享庫占用的內存) USS – Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)
11.3 查看設備上進程的cpu和內存占用情況
adb shell top
12、查看系統耗電情況
adb shell > xxx.txt
13、查看系統設置的鬧鐘
adb shell alarm
14、查看系統的,不合理的使用會導致系統耗電加劇
adb shell power
返回結果:
Wake Locks: size=2 '' (uid=1013, pid=236,ws={10018}) '.media.' (uid=10018, pid=24023,ws=null)
文件操作相關:
1、拷貝文件/目錄到設備
adb push ...
2、從設備拷貝文件/目錄,-a參數保留了文件的時間戳和模式
adb pull [-a] ...
3、查看設備log,和和的相同,可通過參數控制輸出的日志
adb -s 過濾指定參數log -v time 保留日志時間 >> 追加寫 > 覆蓋寫
下面的命令含義為:打印出log信息中的時間并且包含關鍵字“Test” 的所有log以覆蓋寫的方式保存到test文件
adb -v time -s Test > test.txt
4、列出目錄下的文件和文件夾,可選參數-al可查看文件和文件夾的詳細信息
adb shell ls [-al]
5、進入文件夾
adb shell cd
6、查看文件
adb shell cat
7、重命名文件
adb shell path/ path/
8、刪除文件/文件夾
adb shell rm path/ -r 可選參數用于刪除文件夾及下面的所有文件 eg:adb shell rm -r
9、移動文件
adb shell mv path/ /
10、拷貝文件
adb shell cp file /file1
11、創建目錄
adb shell mkdir path/
12、設置文件最高讀寫權限
adb shell chmod 777
13、手機未root 查看data/data/某一app文件信息
筆者的小米3沒有root,但是又想方便地查看data/data/目錄下的一些文件,直接進入data會提示沒有權限,查看的方式為進入data/data/后,運行下面的命令,就能直接進入你應用的包下了,可通用cp或者mv拷貝或移動到目錄進行其他操作
run-as
數據庫相關
數據庫的操作和今天的主題關系不大,增刪改查操作不再列舉。但是平時的開發過程中只是查看數據庫中某個表或者某個字段,也無需每次都pull出來之后再查看,用命令行會更加方便快捷,進入到test.db的目錄后,運行如下命令1、操作db
test.db
操作:
通過adb操作手機UI并不常用,但在有的場景下會非常有用,比如測試自動化,訪問在遠端服務器上的手機等。
發送和文本
命令行
adb shell input keyevent {key_code}
復制
adb shell input text {text}
復制
列表
0 –>? “KEYCODE_UNKNOWN”1 –>? “KEYCODE_MENU”
復制
2 –>? “KEYCODE_SOFT_RIGHT”
復制
3 –>? “KEYCODE_HOME”
復制
4 –>? “KEYCODE_BACK”
復制
5 –>? “KEYCODE_CALL”
復制
6 –>? “KEYCODE_ENDCALL”
復制
7 –>? “KEYCODE_0”
復制
8 –>? “KEYCODE_1”
復制
9 –>? “KEYCODE_2”
復制
10 –>? “KEYCODE_3”
復制
11 –>? “KEYCODE_4”
復制
12 –>? “KEYCODE_5”
復制
13 –>? “KEYCODE_6”
復制
14 –>? “KEYCODE_7”
復制
15 –>? “KEYCODE_8”
復制
16 –>? “KEYCODE_9”
復制
17 –>? “KEYCODE_STAR”
復制
18 –>? “KEYCODE_POUND”
復制
19 –>? “KEYCODE_DPAD_UP”
復制
20 –>? “KEYCODE_DPAD_DOWN”
復制
21 –>? “KEYCODE_DPAD_LEFT”
復制
22 –>? “KEYCODE_DPAD_RIGHT”
復制
23 –>? “KEYCODE_DPAD_CENTER”
復制
24 –>? “KEYCODE_VOLUME_UP”
復制
25 –>? “KEYCODE_VOLUME_DOWN”
復制
26 –>? “KEYCODE_POWER”
復制
27 –>? “KEYCODE_CAMERA”
復制
28 –>? “KEYCODE_CLEAR”
復制
29 –>? “KEYCODE_A”
復制
30 –>? “KEYCODE_B”
復制
31 –>? “KEYCODE_C”
復制
32 –>? “KEYCODE_D”
復制
33 –>? “KEYCODE_E”
復制
34 –>? “KEYCODE_F”
復制
35 –>? “KEYCODE_G”
復制
36 –>? “KEYCODE_H”
復制
37 –>? “KEYCODE_I”
復制
38 –>? “KEYCODE_J”
復制
39 –>? “KEYCODE_K”
復制
40 –>? “KEYCODE_L”
復制
41 –>? “KEYCODE_M”
復制
42 –>? “KEYCODE_N”
復制
43 –>? “KEYCODE_O”
復制
44 –>? “KEYCODE_P”
復制
45 –>? “KEYCODE_Q”
復制
46 –>? “KEYCODE_R”
復制
47 –>? “KEYCODE_S”
復制
48 –>? “KEYCODE_T”
復制
49 –>? “KEYCODE_U”
復制
50 –>? “KEYCODE_V”
復制
51 –>? “KEYCODE_W”
復制
52 –>? “KEYCODE_X”
復制
53 –>? “KEYCODE_Y”
復制
54 –>? “KEYCODE_Z”
復制
55 –>? “KEYCODE_COMMA”
復制
56 –>? “KEYCODE_PERIOD”
復制
57 –>? “KEYCODE_ALT_LEFT”
復制
58 –>? “KEYCODE_ALT_RIGHT”
復制
59 –>? “KEYCODE_SHIFT_LEFT”
復制
60 –>? “KEYCODE_SHIFT_RIGHT”
復制
61 –>? “KEYCODE_TAB”
復制
62 –>? “KEYCODE_SPACE”
復制
63 –>? “KEYCODE_SYM”
復制
64 –>? “KEYCODE_EXPLORER”
復制
65 –>? “KEYCODE_ENVELOPE”
復制
66 –>? “KEYCODE_ENTER”
復制
67 –>? “KEYCODE_DEL”
復制
68 –>? “KEYCODE_GRAVE”
復制
69 –>? “KEYCODE_MINUS”
復制
70 –>? “KEYCODE_EQUALS”
復制
71 –>? “KEYCODE_LEFT_BRACKET”
復制
72 –>? “KEYCODE_RIGHT_BRACKET”
復制
73 –>? “KEYCODE_BACKSLASH”
復制
74 –>? “KEYCODE_SEMICOLON”
復制
75 –>? “KEYCODE_APOSTROPHE”
復制
76 –>? “KEYCODE_SLASH”
復制
77 –>? “KEYCODE_AT”
復制
78 –>? “KEYCODE_NUM”
復制
79 –>? “KEYCODE_HEADSETHOOK”
復制
80 –>? “KEYCODE_FOCUS”
復制
81 –>? “KEYCODE_PLUS”
復制
82 –>? “KEYCODE_MENU”
復制
83 –> ?“KEYCODE_NOTIFICATION”
復制
84 –>? “KEYCODE_SEARCH”
復制
85 –>? “TAG_LAST_KEYCODE”
復制
比如:按Home鍵:adb shell input
滑動屏幕
命令行
# 從(x1, y1)滑動到(x2, y2)
復制
adb shell input touchscreen swipe {x1} {y1} {x2} {y2}
復制
點擊屏幕
命令行
# 點擊屏幕坐標(x, y)
復制
adb shell input touchscreen tap {x} {y}
復制
ADB 錄制屏幕命令
對于.4的上的手機,系統自帶了一個命令,我們可以很方便的使用。
·錄制命令
·??????? adb shell screenrecord /sdcard/test.mp4
復制
視頻保存目錄可以自己指定,如上面的//test.mp4,命令執行后會一直錄制180s,按下ctrl+c可以提前結束錄制輸入 –time-limit N,限制視頻錄制時間為N秒
·設定視頻分辨率
對于高分辨率的手機,錄制的視頻很大,我們分享又不需要這么大的我們可以設置錄制的視頻分辨率
adb shell screenrecord --size 848*480 /sdcard/test.mp4
復制
·設定視頻比特率
默認比特率是4M/s,為了分享方便,我們可以調低比特率為2M
adb shell screenrecord --bit-rate 2000000 /sdcard/test.mp4
復制
·獲取視頻文件
使用adb pull 即可把手機SD卡中視頻獲取到本地
adb pull /sdcard/test.mp4 .
復制
設置時間:
查看內存:
adb shell
df
打電話:adb shell am start -a ...CALL -d tel:10086
獲取
cat//build.prop|grep""
adb ro..name
自動填充內存:adb shell ddif=/dev/zero of=/mnt//
dd命令創建文件 可以跟參數,比如創建一個1G的文件....可以根據想創建的大小 更改后邊的參數值(bs=xx count=xx)
adb if=/dev/zero of=/mnt/ bs==1024