Android中ADB命令用法大結(jié)局
前言
說到 ADB 大家應(yīng)該都不陌生,即 Android Debug Bridge,Android調(diào)試橋,身為 Android 開發(fā)的我們,熟練使用 ADB 命令將會(huì)大大提升我們的開發(fā)效率。
查看版本
ADB 的安裝這里就不多說了,輸入以下命令有如下提示就證明你環(huán)境ok,否則自行網(wǎng)上搜索解決下。
$ adb version Android Debug Bridge version 1.0.36 Revision 8f855a3d9b35-android
ADB 的命令有很多,今天就來總結(jié)下我在開發(fā)常用到的一些 ADB 命令。
ADB命令
1、查看最上層成activity名字:
adb shell dumpsys activity | findstr "mFocusedActivity" 或者 adb shell dumpsys window w | findstr \/ | findstr name=
2、查看Activity的任務(wù)棧:
adb shell dumpsys activity activities
3、顯示所有的activities的信息,包括任務(wù)棧等:
adb shell dumpsys activity
4、查看Android應(yīng)用包名package和入口activity名稱 :
aapt dump badging E:\apk\es3.apk
5、顯示accounts信息:
adb shell dumpsys account
5、顯示CPU信息 :
adb shell dumpsys cpuinfo
查看CPU使用信息
adb shell top -n 1 -d 0.5 | findstr proc_ id
6、顯示鍵盤,窗口和它們的關(guān)系
adb shell dumpsys window
當(dāng)我們需要知道設(shè)備的分辨率時(shí)
adb shell dumpsys window displays
查看UI繪制的各個(gè)層級(jí)信息
adb shell dumpsys SurfaceFlinger
7、顯示wifi信息
adb shell dumpsys wifi
8、電量信息及CPU 使用時(shí)長
adb shell dumpsys batteryinfo $package_name
9、獲取安裝包信息
adb shell dumpsys package packagename
10、每個(gè)應(yīng)用的啟動(dòng)次數(shù)和時(shí)間
adb shell dumpsys usagestats
11、顯示狀態(tài)欄相關(guān)的信息
adb shell dumpsys statusbar
12、內(nèi)存信息(meminfo package_name or pid 使用程序的包名或者進(jìn)程id顯示內(nèi)存信息)
adb shell dumpsys meminfo
得到com.teleca.robin.test進(jìn)程使用的內(nèi)存的信息 adb shell dumpsys meminfo com.teleca.robin.test
13、磁盤相關(guān)信息
adb shell dumpsys diskstats
14、電池相關(guān)信息
adb shell dumpsys battery
15、顯示Alarm信息
adb shell dumpsys alarm
統(tǒng)計(jì)系統(tǒng)耗電量
adb shell dumpsys batterystats
設(shè)置線程的優(yōu)先級(jí)
adb shell dumpsys activity|grep oom_adj
16、強(qiáng)制關(guān)閉一個(gè)應(yīng)用程序;
adb shell am force-stop <PACKAGE>
17、查看內(nèi)存信息
adb shell cat proc/meminfo
指定進(jìn)程內(nèi)存地址映射
adb shell cat proc/pid/maps
指定進(jìn)程內(nèi)存詳細(xì)使用信息
adb shell cat proc/pid/smaps
VSS. RSS. PSS. USS 信息
adb shell procrank
指定進(jìn)程VSS. RSS. PSS. USS 詳細(xì)信息
adb shell procmem pid
18、查看可輸入的設(shè)備
adb shell getevent -p
19、獲得特定設(shè)備的輸入信息
adb shell getevent /dev/input/event0
20、點(diǎn)擊
adb shell input tap x y
21、發(fā)送按鍵
adb shell input keyevent 82(keycode)
22、輸入文本
adb shell input text XXXX
23、查看報(bào)名中包含mobileqq的進(jìn)程
adb shell ps | findstr mobileqq
24、遠(yuǎn)程進(jìn)程ID
adb jdwp
25、獲取序列號(hào)
adb get-serialno
26、重啟到bootloader,即刷機(jī)模式
adb reboot bootloader
27、重啟到recovery,即恢復(fù)模式
adb reboot recovery
28、獲取機(jī)器MAC地址:
adb shell cat /sys/class/net/wlan0/address
29、獲取CPU序列號(hào)
adb shell cat /proc/cpuinfo
30、覆蓋安裝(保留數(shù)據(jù)和緩存文件,重新安裝apk)
adb install -r <apkfile>
31、安裝apk到sd卡
adb install -s <apkfile>
32、卸載app但保留數(shù)據(jù)和緩存文件
adb uninstall -k <package>
33、查看設(shè)備cpu和內(nèi)存占用情況
adb shell top
34、查看占用內(nèi)存前6的app
adb shell top -m 6
35、刷新一次內(nèi)存信息,然后返回
adb shell top -n 1
36、查詢各進(jìn)程內(nèi)存使用情況
adb shell procrank
37、查看指定進(jìn)程狀態(tài)
adb shell ps -x [PID]
38、查看后臺(tái)services信息
adb shell service list
39、查看當(dāng)前內(nèi)存占用(該方式只能得出系統(tǒng)整個(gè)內(nèi)存的大概使用情況) 車
如果你想查看所有進(jìn)程的內(nèi)存使用情況
adb shell procrank
40、查看IO內(nèi)存分區(qū)
adb shell cat /proc/iomem
41、查看wifi密碼
adb shell cat /data/misc/wifi/*.conf
42、清除log緩存
adb logcat -c
43、查看設(shè)備信息
adb shell cat /system/build.prop
44、跑monkey
adb shell monkey -v -p your.package.name 500
45、列出目標(biāo)設(shè)備上安裝的所有app的包名
adb shell pm list packages
46、截屏命令:
adb shell screencap -p /sdcard/screen.png adb pull /sdcard/screen.png adb shell rm /sdcard/screen.png
錄制手機(jī)屏幕,視頻格式為mp4,存放到手機(jī)sd卡里,默認(rèn)錄制時(shí)間為180s:
adb shell screenrecord
限制視頻錄制時(shí)間為10s,如果不限制,默認(rèn)180s:
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
指定視頻分辨率大小:
adb shell screenrecord --size 1280*720 /sdcard/demo.mp4
指定視頻的比特率:
adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4
在命令行顯示log:
adb shell screenrecord --time-limit 10 --verbose /sdcard/demo.mp4
47、設(shè)置、獲取屬性信息
adb shell getprop [key] adb shell setprop [key] [value]
監(jiān)聽系統(tǒng)屬性的變化,如果期間系統(tǒng)的屬性發(fā)生變化則把變化的值顯示出來
adb shell watchprops
48、adb logcat 每一條日志消息都有一個(gè)標(biāo)記和優(yōu)先級(jí)與其關(guān)聯(lián)。
(1)標(biāo)記是一個(gè)簡短的字符串,用于標(biāo)識(shí)原始消息的來源 (例如"View" 來源于顯示系統(tǒng))。優(yōu)先級(jí)是下面的字符,順序是從低到高:
V — 明細(xì) (最低優(yōu)先級(jí))
D — 調(diào)試
I — 信息
W — 警告
E — 錯(cuò)誤
F — 嚴(yán)重錯(cuò)誤
S — 無記載 (最高優(yōu)先級(jí),沒有什么會(huì)被記載)
(2)查看過濾日志
adb logcat ActivityManager:I *:S
*:S 用于設(shè)置所有標(biāo)記的日志優(yōu)先級(jí)為S,可以確保輸出符合指定的過濾器設(shè)置的一種推薦的方式,
這樣過濾器就成為了日志輸出的“白名單”
顯示所有優(yōu)先級(jí)大于等于“warning”的日志
adb logcat *:W
(3)日志消息在標(biāo)記和優(yōu)先級(jí)之外還有很多元數(shù)據(jù)字段,這些字段可以通過修改輸出格式來控制輸出結(jié)果, -v 選項(xiàng)加上下面列出的內(nèi)容可以控制輸出字段:
brief — 顯示優(yōu)先級(jí)/標(biāo)記和原始進(jìn)程的PID (默認(rèn)格式)
process — 僅顯示進(jìn)程PID
tag — 僅顯示優(yōu)先級(jí)/標(biāo)記
thread — 僅顯示進(jìn)程:線程和優(yōu)先級(jí)/標(biāo)記
raw — 顯示原始的日志信息,沒有其他的元數(shù)據(jù)字段
time — 顯示日期,調(diào)用時(shí)間,優(yōu)先級(jí)/標(biāo)記,PID
long —顯示所有的元數(shù)據(jù)字段并且用空行分隔消息內(nèi)容
使用 thread 輸出格式
adb logcat -v thread
(4)Android日志系統(tǒng)為日志消息保持了多個(gè)循環(huán)緩沖區(qū),而且不是所有的消息都被發(fā)送到默認(rèn)緩沖區(qū),要想查看這些附加的緩沖區(qū),可以使用-b 選項(xiàng),以下是可以指定的緩沖區(qū):
radio — 查看包含在無線/電話相關(guān)的緩沖區(qū)消息
events — 查看事件相關(guān)的消息
main — 查看主緩沖區(qū) (默認(rèn)緩沖區(qū))
查看radio緩沖區(qū)
adb logcat -b radio
48、打印應(yīng)用程序的log
adb logcat -b main -v time>app.log
49、打印射頻相關(guān)的log,SIM STK也會(huì)在里面,modem相關(guān)的ATcommand等,當(dāng)然跟QXDM差的很遠(yuǎn)了
adb logcat -b radio -v time> radio.log
50、打印系統(tǒng)事件的日志,比如觸屏事件
adb logcat -b events -v time
51、tcpdump 是很有用的,對(duì)于TCP/IP協(xié)議相關(guān)的都可以使用這個(gè)來抓
adb shell tcpdump -s 10000 -w /sdcard/capture.pcap
52、狀態(tài)信息,里面包含有dmesg,dumpstate和dumpsys
adb bugreport>bugreport.log
53、kernel的log凡是跟kernel相關(guān)的,比如driver出了問題(相機(jī),藍(lán)牙,usb,啟動(dòng),等等吧)
adb shell dmesg > ldmesg_kernel.log
54、dumpstate是系統(tǒng)狀態(tài)信息,里面比較全,包括手機(jī)當(dāng)前的內(nèi)存信息、cpu信息、logcat緩存,kernel緩存等等 。
adb shell dumpstate
55、關(guān)于系統(tǒng)service的內(nèi)容都在這個(gè)里面
adb shell dumpsys
56、顯示內(nèi)存信息
adb shell dumpsys meminfo system
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Android設(shè)備adb連接后顯示device unauthorized解決方案
- 基于adbkit的android設(shè)備管理(精簡版stf)
- android中的adb命令學(xué)習(xí)
- 超詳細(xì)的Android開發(fā)調(diào)試工具ADB命令及安裝介紹
- android中adb命令最全總結(jié)
- 詳解android adb常見用法
- adb通過wifi連接android設(shè)備流程解析
- Android adb命令中pm工具的作用及用法說明
- Android adb安裝apk時(shí)提示Invalid APK file的問題
- Android user版通過adb_enable開啟adb 調(diào)試 不提示對(duì)話框的流程分析
- Android PC端用ADB抓取指定應(yīng)用日志實(shí)現(xiàn)步驟
- Android 實(shí)現(xiàn)永久性開啟adb 的root權(quán)限
- 關(guān)于ADB的Android Debug Bridge(安卓調(diào)試橋)那些事
- Android客制化adb shell進(jìn)去后顯示shell@xxx的標(biāo)識(shí)
- android設(shè)置adb自帶screenrecord錄屏命令
- Android 修改adb端口的方法
- Android開啟ADB網(wǎng)絡(luò)調(diào)試方法
- Android ADB簡介、安裝及使用詳解
相關(guān)文章
Android簡單實(shí)現(xiàn)自定義流式布局的方法
這篇文章主要介紹了Android簡單實(shí)現(xiàn)自定義流式布局的方法,結(jié)合實(shí)例形式分析了Android流式布局的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07MaterialApp?Flutter?應(yīng)用全局配置與主題管理詳解
這篇文章主要為大家介紹了MaterialApp?Flutter?應(yīng)用全局配置與主題管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例
本篇文章主要介紹了Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02android byte[] 和short[]轉(zhuǎn)換的方法代碼
這篇文章主要介紹了android byte[] 和short[]轉(zhuǎn)換的方法代碼,有需要的朋友可以參考一下2014-01-01優(yōu)化SimpleAdapter適配器加載效率的方法
下面小編就為大家?guī)硪黄獌?yōu)化SimpleAdapter適配器加載效率的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04Android Studio 安裝配置方法完整教程【小白秒懂】
這篇文章主要介紹了Android Studio 安裝配置方法完整教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-03-03android下拉刷新ListView的介紹和實(shí)現(xiàn)代碼
在當(dāng)下,列表組件不帶下拉刷新的都不好意思叫列表。第一次完成列表的下拉刷新功能的時(shí)候,直接在Activity中實(shí)現(xiàn),雖然功能上是實(shí)現(xiàn)了,總體上感覺很亂。所以第二次用到的時(shí)候,就想著封裝成一個(gè)組件,實(shí)現(xiàn)和Activity的解耦。2013-04-04Android調(diào)試出現(xiàn)The selected device is incompatible問題解決
這篇文章主要介紹了Android調(diào)試出現(xiàn)The selected device is incompatible問題解決的相關(guān)資料,需要的朋友可以參考下2017-01-01Android中asset文件夾與raw文件夾的區(qū)別深入解析
本篇文章是對(duì)Android中的asset文件夾與raw文件夾區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06