- 查看設(shè)備屏幕分辨率芳杏、density
adb shell dumpsys displays
adb shell wm size
adb shell wm density
- 查看CPU 信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
- 查看棧頂?shù)腶ctivity
# 查看appInfo
adb shell dumpsys package packageName
# 打印頂層Activity信息
adb shell dumpsys activity top
adb shell dumpsys activity top | findstr ACTIVITY
# 查看當(dāng)前界面的Activity
adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
# 根據(jù)上一行查詢出的package,查找該App的launcher Activity
adb shell "dumpsys package com.gitvdemo.video | grep -A 4 'MAIN'"
# 查看當(dāng)前界面的Fragment
adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"
- 查看所有在運(yùn)行的任務(wù)棧
adb shell dumpsys activity activities
# 查看Activity任務(wù)棧(僅適用android11以及以上)
adb shell "dumpsys activity activities | grep '* ActivityRecord{'"
- 查看正在運(yùn)行的 Services
adb shell dumpsys activity -p com.xx.xxx
#指定 package 的所有state
adb shell dumpsys activity package com.xx.xxx
adb shell dumpsys activity -p com.xx.xxx s[ervices]
adb shell dumpsys activity b[roadcasts] com.xx.xxx
#service state
adb shell dumpsys activity s[ervices] [COMP_SPEC ...]
#service client-side state
adb shell dumpsys activity service [COMP_SPEC]
- 查看所有的系統(tǒng)service
adb shell service list
- 獲取通知信息
adb shell dumpsys notification
- 獲得手機(jī)里面某個(gè)apk的應(yīng)用信息蚜锨、版本信息
adb shell dumpsys package <packagename>
adb shell dumpsys deviceidle whitelist
- 查看wifi密碼,root權(quán)限
adb shell cat /data/misc/wifi/*.conf
- 讀取系統(tǒng)的各種文件配置信息亚再,比如/data/anr/traces.txt
adb shell cat /system/build.prop
adb shell getprop
比如:
-
adb shell getprop ro.product.model
//獲取設(shè)備型號(hào) -
adb shell getprop ro.build.version.release
//系統(tǒng)版本 -
adb shell getprop ro.product.board
//CPU型號(hào) -
adb shell getprop ro.serialno
//序列號(hào)
- 列出所有安裝的APP
adb shell pm list packages
adb shell pm list packages -s //系統(tǒng)應(yīng)用
adb shell pm list packages -3 //第三方應(yīng)用
adb shell pm list packages | grep qq //過(guò)濾查找qq應(yīng)用
- 查看設(shè)備連接IP地址
adb shell ifconfig wlan0
adb shell netcfg
- 關(guān)閉USB debug模式
adb shell settings put global adb_enabled 0
打開(kāi)的話,[設(shè)置」-「開(kāi)發(fā)者選項(xiàng)」-「Android 調(diào)試」
- ANDROID_ID
adb shell settings get secure android_id
- IMEI
Android 4.4 :adb shell dumpsys iphonesubinfo
Android 5.0+:adb shell service call iphonesubinfo 1
windows執(zhí)行
adb shell "service call iphonesubinfo 1 | grep -o '[0-9a-f]\{8\} ' | tail -n+3 | while read a; do echo -n \\u${a:4:4}\\u${a:0:4}; done"
linux執(zhí)行
adb shell 'service call iphonesubinfo 1 | grep -o "[0-9a-f]\{8\} " | tail -n+3 | while read a; do echo -n "\u${a:4:4}\u${a:0:4}"; done'
- 模擬按鍵和輸入
adb shell input --help
- 電源鍵:
adb shell input keyevent 26
- HOME 鍵:
adb shell input keyevent 3
- 返回鍵:
adb shell input keyevent 4
- 點(diǎn)亮屏幕:
adb shell input keyevent 224
- 熄滅屏幕:
adb shell input keyevent 223
- 輸入文本:
adb shell input text xxxxx
keycode | 含義 |
---|---|
3 | HOME 鍵 |
4 | 返回鍵 |
5 | 打開(kāi)撥號(hào)應(yīng)用 |
6 | 掛斷電話 |
24 | 增加音量 |
25 | 降低音量 |
26 | 電源鍵 |
27 | 拍照(需要在相機(jī)應(yīng)用里) |
64 | 打開(kāi)瀏覽器 |
82 | 菜單鍵 |
85 | 播放/暫停 |
86 | 停止播放 |
87 | 播放下一首 |
88 | 播放上一首 |
122 | 移動(dòng)光標(biāo)到行首或列表頂部 |
123 | 移動(dòng)光標(biāo)到行末或列表底部 |
126 | 恢復(fù)播放 |
127 | 暫停播放 |
164 | 靜音 |
176 | 打開(kāi)系統(tǒng)設(shè)置 |
187 | 切換應(yīng)用 |
207 | 打開(kāi)聯(lián)系人 |
208 | 打開(kāi)日歷 |
209 | 打開(kāi)音樂(lè) |
210 | 打開(kāi)計(jì)算器 |
220 | 降低屏幕亮度 |
221 | 提高屏幕亮度 |
223 | 系統(tǒng)休眠 |
224 | 點(diǎn)亮屏幕 |
231 | 打開(kāi)語(yǔ)音助手 |
276 | 如果沒(méi)有 wakelock 則讓系統(tǒng)休眠 |
- 截屏
adb exec-out screencap -p > C:\Users\Administrator\Desktop\face\aaa.png
- adb shell am start
#啟動(dòng)activity component
adb shell am start -n com.xx.xxx/com.xx.xxx.xxActivity
# 啟動(dòng) 系統(tǒng) <設(shè)置>
adb shell am start -a android.settings.SETTINGS
# 1:打開(kāi) 開(kāi)發(fā)者選項(xiàng) 0: 關(guān)閉開(kāi)發(fā)者選項(xiàng)
adb shell settings put global development_settings_enabled 1
# -a action_str -d uri
# 開(kāi)發(fā)者模式 設(shè)置
adb shell am start -a android.settings.APPLICATION_DEVELOPMENT_SETTINGS
# package為com.xx.xxx的詳細(xì)設(shè)置
adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:com.xx.xxx
#example:權(quán)限管理設(shè)置
adb shell am start -a android.settings.action.MANAGE_OVERLAY_PERMISSION -d package:com.xx.xxx
# 電池優(yōu)化 白名單
adb shell am start -a android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS
# 查看電池優(yōu)化白名單
adb shell dumpsys deviceidle whitelist
#存儲(chǔ)空間管理
adb shell am start -a android.os.storage.action.MANAGE_STORAGE
# 啟動(dòng)service
adb shell am startservice -n com.some.package/.someService
- adb shell am broadcast 模擬廣播
adb shell am broadcast
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]
adb shell am broadcast -a android.intent.action.EDIT --es test_string "this is test string" --ei test_int 100 --ez test_boolean true
//刷新 媒體庫(kù),注意:有時(shí)必須指定 {file_name}棍现,否則有時(shí)無(wú)效
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/Camera/{file_name}
// 遞歸 刷新 媒體庫(kù)
adb shell "find /sdcard/Video/ | while read f; do \
am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE \
-d \"file://${f}\"; done"
- adb shell am kill
/* 關(guān)閉package指定的應(yīng)用程序 */
adb shell am force-stop com.some.package
/* kill與package相關(guān)聯(lián)的所有process */
adb shell am kill com.some.package
/* 殺死所有后臺(tái)進(jìn)程process */
adb shell am kill-all
- 查看APP內(nèi)存限制
/* 單個(gè)APP heap size限制 */
adb shell getprop | findstr dalvik.vm.heapgrowthlimit
adb shell cat /system/build.prop | findstr dalvik.vm
-
Packages.xml
應(yīng)用信息
adb root
# /data/system/
adb pull /data/system/packages.xml C:\Users\Administrator\Desktop
- backup備份
# -apk 應(yīng)用和數(shù)據(jù) -noapk 只有數(shù)據(jù)
adb backup -f "F:\*.ab" -apk com.xx.xx
#還原
adb restore f:\*.ab
- 查看網(wǎng)絡(luò)
ping[1]
adb shell
# 查看網(wǎng)絡(luò)接口 wlan0:無(wú)線網(wǎng)絡(luò)接口 rmnet_data:移動(dòng)網(wǎng)絡(luò)接口
ls /sys/class/net/
#查看指定網(wǎng)絡(luò)接口的配置
ifconfig rmnet_data0
#關(guān)閉指定網(wǎng)口
ifconfig rmnet_data0 down
#打開(kāi)指定網(wǎng)口
ifconfig rmnet_data0 up
#查看所有網(wǎng)口的IP地址
ip -f inet addr
#查看指定網(wǎng)口的IP地址
ip -f inet addr show wlan0
#ping[^note1] 一個(gè)地址 4此次
ping -c 4 baidu.com
#查看DNS
getprop | grep dns
#修改DNS,使用上面getprop獲得的DNS名稱,設(shè)置方式飛行模式镜遣、開(kāi)關(guān)機(jī)失效
setprop net.dns1 223.
- 控制臺(tái)文件描述符stdout和stderr
adb shell stop
adb setprop log.redirect-stdio true
adb shell start
- 普通操作
#撥打電話
adb shell am start -a android.intent.action.CALL tel:10010
#打開(kāi)網(wǎng)頁(yè)
adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com
- Settings
adb shell settings help
#是否自動(dòng)獲取時(shí)間
adb shell settings get global auto_time
- 電源、網(wǎng)絡(luò)谎僻、USB控制
adb shell svc
#關(guān)機(jī)
adb shell svc power shutdown
#關(guān)閉 移動(dòng)數(shù)據(jù)
adb shell svc data disable
- 獲取網(wǎng)口MAC地址
adb shell
cd sys/class/net
#根據(jù)networkInterface進(jìn)入相應(yīng)的網(wǎng)絡(luò)接口
cat eth0/address
cat wlan0/address
-
查看進(jìn)程線程所在的CPU核心
ps
的命令參數(shù):-t -x,-P,-p,-c [pid|name]
-
-t
顯示進(jìn)程下的線程列表 -
-x
顯示進(jìn)程耗費(fèi)的用戶時(shí)間和系統(tǒng)時(shí)間,單位s -
-P
顯示調(diào)度策略艘绍,通過(guò)是bg or fg ,當(dāng)獲取失敗將會(huì)un和er比之前打印的內(nèi)容多出了一列PCY挎挖,表示進(jìn)程的調(diào)度等級(jí)
+-p
顯示進(jìn)程的優(yōu)先級(jí)和nice等級(jí) -
-c
顯示進(jìn)程耗費(fèi)的CPU時(shí)間 -
[PID]
過(guò)濾指定進(jìn)程PID,[name]過(guò)濾指定進(jìn)程N(yùn)AME
adb shell ps -P -t -c -x PID
MTK:
# 找出自己APP進(jìn)程的PID, 關(guān)鍵字模糊匹配app的packageName adb shell ps | findstr "PID player" #查看help,有哪些fields可以被打印 adb shell ps --help # -T 顯示線程名, -o 執(zhí)行顯示哪些fields, 我們要顯示CPU adb shell ps -T -o UID,PID,CPU,%CPU,%MEM,NI,PSR,TIME,CMD -p 2912
-
CPU
: 線程航夺、進(jìn)程在哪個(gè)cpu processor
上執(zhí)行 -
%CPU
: 使用CPU時(shí)間的百分比 -
%MEM
: 占用物理內(nèi)存的百分比 -
NI
: 線程的nice值,對(duì)應(yīng)線程的優(yōu)先級(jí)設(shè)置(static 19 to -20) -
CMD
: 線程名稱
ps-cpu
-
-
修改系統(tǒng)時(shí)間
Windows (PowerShell)#Windows (PowerShell) $currentDate = Get-Date -Format "MMddHHmmyyyy.ss" adb shell "date $currentDate;am broadcast -a android.intent.action.TIME_SET"
查看Android系統(tǒng)時(shí)間
date +"%Y-%m-%d %H:%M:%S"
批處理
set dateYYYY=%date:~0,4% set dateMM=%date:~5,2% set dateDD=%date:~8,2% set timeHH=%time:~0,2% set timeMM=%time:~3,2% set timeSS=%time:~6,2% adb shell date %dateMM%%dateDD%%timeHH%%timeMM%%dateYYYY%.%timeSS% adb shell am broadcast -a android.intent.action.TIME_SET
-
taskset
CPU綁定#查看pid 4069 taskset -p 4069 #把 我們的pid 加入到進(jìn)程組 echo 347 > /dev/cpuset/foreground/task #修改進(jìn)程組的background的CPU調(diào)度策略 echo 0-3 > /dev/cpuset/background/cpus
taskset -
查看指定進(jìn)程的內(nèi)存使用
adb shell dumpsys meminfo $package_name or $pid
-
查看系統(tǒng)內(nèi)核
uname -a
-
獲取IP地址
adb shell ip route | awk '{print $9}'
-
adb授予權(quán)限
adb shell pm grant com.ts.player android.permission.READ_EXTERNAL_STORAGE adb shell pm grant com.ts.player android.permission.WRITE_EXTERNAL_STORAGE
-
查看媒體提取器
adb shell dumpsys media.extractor
-
禁止彈出 沉浸式提示窗口
Viewing full screen. To exit, swipe down from the top
# 查看 secure namespace 下所有的值 adb shell settings list secure # 是否已確認(rèn)過(guò) adb shell settings list secure | findstr immersive # 刪除此值 adb shell settings delete secure immersive_mode_confirmations # 查看此值 adb shell settings secure get immersive_mode_confirmations # 修改此值 disable 彈窗 adb shell settings put secure immersive_mode_confirmations confirmed
-
修改文件訪問(wèn)權(quán)限 chmod
# 修改文件權(quán)限 # chmod [option] filename # 給文件 加 運(yùn)行 權(quán)限 chmod ugo+x # 可以用二進(jìn)制位表示:3個(gè)字節(jié)敷存,每個(gè)字節(jié)代表一個(gè)用戶組墓造,每個(gè)字節(jié)的后3位由高到低代表 r锚烦、w、x涮俄,讀寫(xiě)權(quán)限 rw= 100 | 010 = 110 = 6 chmod 777
??
[option]
表示各種權(quán)限選項(xiàng):- r(或4
100
):讀取權(quán)限 - w(或2
010
):寫(xiě)入權(quán)限 - x(或1
001
):執(zhí)行權(quán)限
??還可以指定權(quán)限的獲取者,三個(gè)部分的左中右:
- u:文件所有者
- g:文件所有者所在的組的用戶
- o:其他組的用戶
權(quán)限的授予可采用操作符“
+
”彻亲,而“-
”表示收回權(quán)限:# 給其他組用戶賦予read權(quán)限 chmod o+r
- r(或4
-
此用戶無(wú)法使用開(kāi)發(fā)者選項(xiàng)
adb shell settings put secure user_setup_complete 1 adb shell settings put global device_provisioned 1
參考1
參考2
https://www.cnblogs.com/JianXu/p/5161179.html
https://github.com/onlyloveyd/awesome-adb