ADB蝗肪,即 Android Debug Bridge,它是 Android 開(kāi)發(fā)/測(cè)試人員不可替代的強(qiáng)大工具湿酸,也是 Android 設(shè)備玩家的好玩具羞芍。
注: 有部分命令的支持情況可能與 Android 系統(tǒng)版本及定制 ROM 的實(shí)現(xiàn)有關(guān)氨淌。
- [查看設(shè)備信息]
- [型號(hào)]
- [電池狀況]
- [屏幕分辨率]
- [屏幕密度]
- [顯示屏參數(shù)]
- [android_id]
- [IMEI]
- [Android 系統(tǒng)版本]
- [IP 地址]
- [Mac 地址]
- [CPU 信息]
- [內(nèi)存信息]
- [更多硬件與系統(tǒng)屬性]
查看設(shè)備信息
型號(hào)
命令:
adb shell getprop ro.product.model
輸出示例:
Nexus 5
電池狀況
命令:
adb shell dumpsys battery
輸入示例:
Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
status: 2
health: 2
present: true
level: 44
scale: 100
voltage: 3872
temperature: 280
technology: Li-poly
其中 scale
代表最大電量,level
代表當(dāng)前電量亲桦。上面的輸出表示還剩下 44% 的電量殉摔。
屏幕分辨率
命令:
adb shell wm size
輸出示例:
Physical size: 1080x1920
該設(shè)備屏幕分辨率為 1080px * 1920px。
如果使用命令修改過(guò)舵变,那輸出可能是:
Physical size: 1080x1920
Override size: 480x1024
表明設(shè)備的屏幕分辨率原本是 1080px * 1920px酣溃,當(dāng)前被修改為 480px * 1024px。
屏幕密度
命令:
adb shell wm density
輸出示例:
Physical density: 420
該設(shè)備屏幕密度為 420dpi纪隙。
如果使用命令修改過(guò)赊豌,那輸出可能是:
Physical density: 480
Override density: 160
表明設(shè)備的屏幕密度原來(lái)是 480dpi,當(dāng)前被修改為 160dpi绵咱。
顯示屏參數(shù)
命令:
adb shell dumpsys window displays
輸出示例:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731
deferred=false layoutNeeded=false
其中 mDisplayId
為 顯示屏編號(hào)碘饼,init
是初始分辨率和屏幕密度,app
的高度比 init
里的要小悲伶,表示屏幕底部有虛擬按鍵艾恼,高度為 1920 - 1794 = 126px 合 42dp。
android_id
命令:
adb shell settings get secure android_id
輸出示例:
51b6be48bac8c569
IMEI
在 Android 4.4 及以下版本可通過(guò)如下命令獲取 IMEI:
adb shell dumpsys iphonesubinfo
輸出示例:
Phone Subscriber Info:
Phone Type = GSM
Device ID = 860955027785041
其中的 Device ID
就是 IMEI拢切。
而在 Android 5.0 及以上版本里這個(gè)命令輸出為空蒂萎,得通過(guò)其它方式獲取了(需要 root 權(quán)限):
adb shell
su
service call iphonesubinfo 1
輸出示例:
Result: Parcel(
0x00000000: 00000000 0000000f 00360038 00390030 '........8.6.0.9.'
0x00000010: 00350035 00320030 00370037 00350038 '5.5.0.2.7.7.8.5.'
0x00000020: 00340030 00000031 '0.4.1... ')
把里面的有效內(nèi)容提取出來(lái)就是 IMEI 了,比如這里的是 860955027785041
淮椰。
參考:adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop
Android 系統(tǒng)版本
命令:
adb shell getprop ro.build.version.release
輸出示例:
5.0.2
IP 地址
每次想知道設(shè)備的 IP 地址的時(shí)候都得「設(shè)置」-「關(guān)于手機(jī)」-「狀態(tài)信息」-「IP地址」很煩對(duì)不對(duì)五慈?通過(guò) adb 可以方便地查看。
命令:
adb shell ifconfig | grep Mask
輸出示例:
inet addr:10.130.245.230 Mask:255.255.255.252
inet addr:127.0.0.1 Mask:255.0.0.0
那么 10.130.245.230
就是設(shè)備 IP 地址主穗。
在有的設(shè)備上這個(gè)命令沒(méi)有輸出泻拦,如果設(shè)備連著 WiFi,可以使用如下命令來(lái)查看局域網(wǎng) IP:
adb shell ifconfig wlan0
輸出示例:
wlan0: ip 10.129.160.99 mask 255.255.240.0 flags [up broadcast running multicast]
或
wlan0 Link encap:UNSPEC
inet addr:10.129.168.57 Bcast:10.129.175.255 Mask:255.255.240.0
inet6 addr: fe80::66cc:2eff:fe68:b6b6/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:496520 errors:0 dropped:0 overruns:0 frame:0
TX packets:68215 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3000
RX bytes:116266821 TX bytes:8311736
如果以上命令仍然不能得到期望的信息忽媒,那可以試試以下命令(部分系統(tǒng)版本里可用):
adb shell netcfg
輸出示例:
wlan0 UP 10.129.160.99/20 0x00001043 f8:a9:d0:17:42:4d
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
p2p0 UP 0.0.0.0/0 0x00001003 fa:a9:d0:17:42:4d
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
rmnet0 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet1 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet3 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet2 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet4 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet6 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet5 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet7 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rev_rmnet3 DOWN 0.0.0.0/0 0x00001002 4e:b7:e4:2e:17:58
rev_rmnet2 DOWN 0.0.0.0/0 0x00001002 4e:f0:c8:bf:7a:cf
rev_rmnet4 DOWN 0.0.0.0/0 0x00001002 a6:c0:3b:6b:c4:1f
rev_rmnet6 DOWN 0.0.0.0/0 0x00001002 66:bb:5d:64:2e:e9
rev_rmnet5 DOWN 0.0.0.0/0 0x00001002 0e:1b:eb:b9:23:a0
rev_rmnet7 DOWN 0.0.0.0/0 0x00001002 7a:d9:f6:81:40:5a
rev_rmnet8 DOWN 0.0.0.0/0 0x00001002 4e:e2:a9:bb:d0:1b
rev_rmnet0 DOWN 0.0.0.0/0 0x00001002 fe:65:d0:ca:82:a9
rev_rmnet1 DOWN 0.0.0.0/0 0x00001002 da:d8:e8:4f:2e:fe
可以看到網(wǎng)絡(luò)連接名稱争拐、啟用狀態(tài)、IP 地址和 Mac 地址等信息晦雨。
Mac 地址
命令:
adb shell cat /sys/class/net/wlan0/address
輸出示例:
f8:a9:d0:17:42:4d
這查看的是局域網(wǎng) Mac 地址架曹,移動(dòng)網(wǎng)絡(luò)或其它連接的信息可以通過(guò)前面的小節(jié)「IP 地址」里提到的 adb shell netcfg
命令來(lái)查看隘冲。
CPU 信息
命令:
adb shell cat /proc/cpuinfo
輸出示例:
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 38.40
processor : 1
BogoMIPS : 38.40
processor : 2
BogoMIPS : 38.40
processor : 3
BogoMIPS : 38.40
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x51
CPU architecture: 7
CPU variant : 0x2
CPU part : 0x06f
CPU revision : 0
Hardware : Qualcomm MSM 8974 HAMMERHEAD (Flattened Device Tree)
Revision : 000b
Serial : 0000000000000000
這是 Nexus 5 的 CPU 信息,我們從輸出里可以看到使用的硬件是 Qualcomm MSM 8974
绑雄,processor 的編號(hào)是 0 到 3展辞,所以它是四核的,采用的架構(gòu)是 ARMv7 Processor rev 0 (v71)
万牺。
內(nèi)存信息
命令:
adb shell cat /proc/meminfo
輸出示例:
MemTotal: 1027424 kB
MemFree: 486564 kB
Buffers: 15224 kB
Cached: 72464 kB
SwapCached: 24152 kB
Active: 110572 kB
Inactive: 259060 kB
Active(anon): 79176 kB
Inactive(anon): 207736 kB
Active(file): 31396 kB
Inactive(file): 51324 kB
Unevictable: 3948 kB
Mlocked: 0 kB
HighTotal: 409600 kB
HighFree: 132612 kB
LowTotal: 617824 kB
LowFree: 353952 kB
SwapTotal: 262140 kB
SwapFree: 207572 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 265324 kB
Mapped: 47072 kB
Shmem: 1020 kB
Slab: 57372 kB
SReclaimable: 7692 kB
SUnreclaim: 49680 kB
KernelStack: 4512 kB
PageTables: 5912 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 775852 kB
Committed_AS: 13520632 kB
VmallocTotal: 385024 kB
VmallocUsed: 61004 kB
VmallocChunk: 209668 kB
其中罗珍,MemTotal
就是設(shè)備的總內(nèi)存,MemFree
是當(dāng)前空閑內(nèi)存脚粟。
更多硬件與系統(tǒng)屬性
設(shè)備的更多硬件與系統(tǒng)屬性可以通過(guò)如下命令查看:
adb shell cat /system/build.prop
這會(huì)輸出很多信息覆旱,包括前面幾個(gè)小節(jié)提到的「型號(hào)」和「Android 系統(tǒng)版本」等。
輸出里還包括一些其它有用的信息核无,它們也可通過(guò) adb shell getprop <屬性名>
命令單獨(dú)查看扣唱,列舉一部分屬性如下:
屬性名 | 含義 |
---|---|
ro.build.version.sdk | SDK 版本 |
ro.build.version.release | Android 系統(tǒng)版本 |
ro.build.version.security_patch | Android 安全補(bǔ)丁程序級(jí)別 |
ro.product.model | 型號(hào) |
ro.product.brand | 品牌 |
ro.product.name | 設(shè)備名 |
ro.product.board | 處理器型號(hào) |
ro.product.cpu.abilist | CPU 支持的 abi 列表[節(jié)注一] |
persist.sys.isUsbOtgEnabled | 是否支持 OTG |
dalvik.vm.heapsize | 每個(gè)應(yīng)用程序的內(nèi)存上限 |
ro.sf.lcd_density | 屏幕密度 |
節(jié)注一:
一些小廠定制的 ROM 可能修改過(guò) CPU 支持的 abi 列表的屬性名,如果用 ro.product.cpu.abilist
屬性名查找不到厕宗,可以這樣試試:
adb shell cat /system/build.prop | grep ro.product.cpu.abi
示例輸出:
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi