* 查看設備
adb devices
ps這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示
若有多台安卓設備,可以通過在adb后面加上 -s <設備id> 對指定設備進行裝包、卸載等操作
*啟動adb
adb start-server
*關閉adb
adb kill-server
* 安裝軟件
adb install <apk文件路徑>
* 卸載軟件
adb uninstall <應用進程名>
*卸載app但保留數據和緩存文件
adb uninstall -k<package>
*重新啟動設別
adb reboot
*重啟到bootloader,即刷機模式
adb reboot bootloader
*重啟到recovery,即恢復模式
adb reboot recovery
*從電腦上發送文件到設備
adb push <本地路徑> <遠程路徑>
ps: 用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)
*從設備上下載文件到電腦
adb pull <遠程路徑> <本地路徑>
ps: 用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦
*取得設備root權限
adb remount
*登錄設備shell
adb shell
adb shell<command命令>
ps: adb shell 后面加的是linux系統操作指令,也即直接運行設備命令, 相當於執行遠程命令
-查看手機產線版本
adb shellcat/sys/devices/mx_tsp/appid
-查看手機運營商版本
adb shellcat/proc/lk_info/sw_version
-查看手機是否加密
adb shellcat/proc/lk_info/sec(返回0則非加密。1則加密)
-查看手機型號
adb shell getpropro.build.product
-安卓版本
adb shell getpropversion.release
-查看flyme版本
adb shell getpropro.build.display.id
*使用adb命令對手機進行截屏並拷貝到電腦
adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到手機)
adb pull /sdcard/screenshot.png d:/screenshot.png(拷貝到電腦)
*錄制設備屏幕
adb shell screenrecord--bugreport /sdcard/xxx.mp4
*查看性能
adb shell dumpstate
ps其輸出內容主要包括以下內容
a.設備基本信息
b.內存使用情況
c.CPU使用情況
d./proc文件夾中保存的系統各種實時信息,特別是內存使用方面的詳細信息,如用procrank命令獲取的按內存使用率情況排序的進程列表
e.內核的一些信息
f.進程列表
g.各種進程中的線程列表以及各線程的堆棧信息
h.各進程打開的文件
i.Logcat中的三個環狀日志的內容,分別是系統主日志SYSTEM、事件日志EVENT和無線電日志RADIO
j.網絡相關的信息
k.df命令輸入的文件系統使用率信息
l.系統中安裝的應用包信息
m.dumpsys命令輸出的信息
n.正在運行的應用列表
o.正在運行的服務列表
p.正在運行的內容供應組件列表
*輸出當前servers信息
adb shell dumpsys
ps: 輸出信息的開始部分就是所有運行的service
-查詢到運行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。
adb shell dumpsys activity
adb shell dumpsys cpuinfo(CPU)
adb shell dumpsys batterystate(電池)
adb shell dumpsys window(分辨率)
*檢測手機運行時間
adb shell uptime
*查看logcat日志
adb logcat -v time-s tag > xxx.log
ps: 其中-v time使輸出的日志帶時間信息,-s用於通過tag過濾日志(也可以通過管道grep過濾),> 使保存到本地文件。若直接在終端查看日志,則不加。
adb logcat | grep <正則表達式>
ps: grep后為正則表達式
adb logcat | grep <正則表達式> | tee xxx.log
ps:使用 tee可以實現同時在終端輸出且保存到文件
*模擬系統按鍵
adb shell inputkeyevent <數值>
具體數值對應的按鍵如下
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"
所以,adb shell input keyevent 4 為返回系統主頁,adb shell input keyevent 24 為增加音量
*強制殺死進程
adb shell amforce-stop <進程名>
*啟動指定Activity
adb shell am start-n <進程名> /<Acitvity>
*開關wifi
adb shell svc wifienable #打開wifi
adb shell svc wifidisable #關閉wifi
*查看wifi密碼
adb shell cat/data/misc/wifi/*.conf
*獲取序列號
adb get-serialno
*查看設備cpu和內存占用情況
adb shell top
*查看占用內存前6的app
adb shell top -m 6
*刷新一次內存信息,然后返回
adb shell top -n 1
*查詢各進程內存使用情況
adb shell procrank
*殺死一個進程
adb shell kill[pid]
*查看進程列表
adb shell ps
*查看指定進程狀態
adb shell ps -x[PID]
*查看后台services信息
adb shell servicelist
*查看當前內存占用
adb shell cat/proc/meminfo
*查看IO內存分區
adb shell cat/proc/iomem
*重命名文件
adb shell rename <原文件名> <修改后文件名>
*刪除system/avi.apk
adb shell rm/system/avi.apk
*刪除文件夾及其下面所有文件
adb shell rm -r<文件夾>
*移動文件
adb shell mv <原文件路徑> <移動后文件路徑>
*設置文件權限
adb shell chmod 777<文件>
*新建文件夾
adb shell mkdirpath/foldelname
*查看文件內容
adb shell cat<file>
*清除log緩存
adb logcat -c
*查看bug報告
adb bugreport
*獲取設備名稱
adb shell cat/system/build.prop
*查看ADB幫助
adb help
*跑monkey
adb shell monkey -v-p <進程名> <次數>
*當adb 顯示端口被占用,拒絕訪問時的處理辦法:
adb nodaemon server//查看哪個端口被占用
netstat -ano |findstr "<端口號>" //提示占用該端口的進程(非0地址)
(下面步驟可省略,可通過任務管理器殺死)
tasklist /fi “PIDeq <進程號>”//通過pid查看所有進程
taskkill /pid <進程號> /f//殺死進程
* 查看設備adb devicesps這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示若有多台安卓設備,可以通過在adb后面加上 -s <設備id> 對指定設備進行裝包、卸載等操作
*啟動adbadb start-server
*關閉adbadb kill-server
* 安裝軟件adb install <apk文件路徑>
* 卸載軟件 adb uninstall <應用進程名>
*卸載app但保留數據和緩存文件adb uninstall -k<package>
*重新啟動設別adb reboot
*重啟到bootloader,即刷機模式adb reboot bootloader
*重啟到recovery,即恢復模式adb reboot recovery
*從電腦上發送文件到設備adb push <本地路徑> <遠程路徑>ps: 用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)
*從設備上下載文件到電腦adb pull <遠程路徑> <本地路徑>ps: 用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦
*取得設備root權限adb remount *登錄設備shelladb shelladb shell<command命令>ps: adb shell 后面加的是linux系統操作指令,也即直接運行設備命令, 相當於執行遠程命令-查看手機產線版本adb shellcat/sys/devices/mx_tsp/appid-查看手機運營商版本adb shellcat/proc/lk_info/sw_version-查看手機是否加密adb shellcat/proc/lk_info/sec(返回0則非加密。1則加密)-查看手機型號adb shell getpropro.build.product-安卓版本adb shell getpropversion.release-查看flyme版本adb shell getpropro.build.display.id
*使用adb命令對手機進行截屏並拷貝到電腦adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到手機)adb pull /sdcard/screenshot.png d:/screenshot.png(拷貝到電腦)
*錄制設備屏幕adb shell screenrecord--bugreport /sdcard/xxx.mp4
*查看性能adb shell dumpstateps其輸出內容主要包括以下內容a.設備基本信息b.內存使用情況c.CPU使用情況d./proc文件夾中保存的系統各種實時信息,特別是內存使用方面的詳細信息,如用procrank命令獲取的按內存使用率情況排序的進程列表e.內核的一些信息f.進程列表g.各種進程中的線程列表以及各線程的堆棧信息h.各進程打開的文件i.Logcat中的三個環狀日志的內容,分別是系統主日志SYSTEM、事件日志EVENT和無線電日志RADIOj.網絡相關的信息k.df命令輸入的文件系統使用率信息l.系統中安裝的應用包信息m.dumpsys命令輸出的信息n.正在運行的應用列表o.正在運行的服務列表p.正在運行的內容供應組件列表
*輸出當前servers信息adb shell dumpsys ps: 輸出信息的開始部分就是所有運行的service-查詢到運行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。adb shell dumpsys activityadb shell dumpsys cpuinfo(CPU)adb shell dumpsys batterystate(電池)adb shell dumpsys window(分辨率)
*檢測手機運行時間adb shell uptime
*查看logcat日志adb logcat -v time-s tag > xxx.logps: 其中-v time使輸出的日志帶時間信息,-s用於通過tag過濾日志(也可以通過管道grep過濾),> 使保存到本地文件。若直接在終端查看日志,則不加。adb logcat | grep <正則表達式>ps: grep后為正則表達式adb logcat | grep <正則表達式> | tee xxx.logps:使用 tee可以實現同時在終端輸出且保存到文件
*模擬系統按鍵adb shell inputkeyevent <數值>具體數值對應的按鍵如下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"所以,adb shell input keyevent 4 為返回系統主頁,adb shell input keyevent 24 為增加音量
*強制殺死進程adb shell amforce-stop <進程名>
*啟動指定Activityadb shell am start-n <進程名> /<Acitvity>
*開關wifiadb shell svc wifienable #打開wifiadb shell svc wifidisable #關閉wifi
*查看wifi密碼adb shell cat/data/misc/wifi/*.conf
*獲取序列號adb get-serialno
*查看設備cpu和內存占用情況adb shell top
*查看占用內存前6的appadb shell top -m 6
*刷新一次內存信息,然后返回adb shell top -n 1
*查詢各進程內存使用情況adb shell procrank
*殺死一個進程adb shell kill[pid]
*查看進程列表adb shell ps
*查看指定進程狀態adb shell ps -x[PID]
*查看后台services信息adb shell servicelist
*查看當前內存占用adb shell cat/proc/meminfo
*查看IO內存分區adb shell cat/proc/iomem
*重命名文件adb shell rename <原文件名> <修改后文件名>
*刪除system/avi.apkadb shell rm/system/avi.apk
*刪除文件夾及其下面所有文件adb shell rm -r<文件夾>
*移動文件adb shell mv <原文件路徑> <移動后文件路徑>
*設置文件權限adb shell chmod 777<文件>
*新建文件夾adb shell mkdirpath/foldelname
*查看文件內容adb shell cat<file>
*清除log緩存adb logcat -c
*查看bug報告adb bugreport
*獲取設備名稱adb shell cat/system/build.prop
*查看ADB幫助adb help
*跑monkeyadb shell monkey -v-p <進程名> <次數>
*當adb 顯示端口被占用,拒絕訪問時的處理辦法:adb nodaemon server//查看哪個端口被占用netstat -ano |findstr "<端口號>" //提示占用該端口的進程(非0地址)(下面步驟可省略,可通過任務管理器殺死)tasklist /fi “PIDeq <進程號>”//通過pid查看所有進程taskkill /pid <進程號> /f//殺死進程