查看设备信息
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
代表当前电量。上面的输出表示还剩下 44% 的电量。
屏幕分辨率
adb shell wm size
输出示例:
Physical size: 1080x1920
该设备屏幕分辨率为 1080px * 1920px。
如果使用命令修改过,那输出可能是:
Physical size: 1080x1920 Override size: 480x1024
表明设备的屏幕分辨率原本是 1080px * 1920px,当前被修改为 480px * 1024px。
屏幕密度
adb shell wm density
输出示例:
Physical density: 420
该设备屏幕密度为 420dpi。
如果使用命令修改过,那输出可能是:
Physical density: 480 Override density: 160
表明设备的屏幕密度原来是 480dpi,当前被修改为 160dpi。
显示屏参数
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
为 显示屏编号,init
是初始分辨率和屏幕密度,app
的高度比 init
里的要小,表示屏幕底部有虚拟按键,高度为 1920 - 1794 = 126px 合 42dp。
android_id
adb shell settings get secure android_id
输出示例:
51b6be48bac8c569
IMEI
在 Android 4.4 及以下版本可通过如下命令获取 IMEI:
adb shell dumpsys iphonesubinfo
输出示例:
Phone Subscriber Info: Phone Type = GSM Device ID = 860955027785041
其中的 Device ID
就是 IMEI。
而在 Android 5.0 及以上版本里这个命令输出为空,得通过其它方式获取了(需要 root 权限):
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... ')
把里面的有效内容提取出来就是 IMEI 了,比如这里的是 860955027785041
。
Android 系统版本
adb shell getprop ro.build.version.release
输出示例:
5.0.2
IP 地址
每次想知道设备的 IP 地址的时候都得「设置」-「关于手机」-「状态信息」-「IP地址」很烦对不对?通过 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
就是设备 IP 地址。
在有的设备上这个命令没有输出,如果设备连着 WiFi,可以使用如下命令来查看局域网 IP:
adb shell ifconfig wlan0
输出示例:
wlan0: ip 10.129.160.99 mask 255.255.240.0 flags [up broadcast running multicast]
adb查看包名
adb shell pm list packages
adb shell 如何关闭和启动应用
打开
adb shell am start -n com.itep.mt.factorytests/com.itep.mt.factorytests.LaunchActivity
关闭
adb shell am force-stop com.itep.mt.factorytests
adb命令截屏幕
adb命令截图:adb shell screencap 一般的手机都有截图功能
grep:过滤
当然也可以使用 grep 来过滤:
adb shell pm list packages | grep mazhuang
adb 常用命令
File Manager
- adb pull
从 Android 设备下载文件到 PC。
adb pull [local]
其中 代表文件在设备中的地址,[local] 代表存放目录。
- adb push
把 PC 的文件存放到 Android 设备。
adb push
- adb shell ls
列出目录内容。
adb shell ls [options]
- adb shell cd
和一般的 PC 的cd
差不多,主要用于切换目录。
adb shell cd
- adb shell rm
删除文件或者目录
adb shell rm [options]
- adb shell mkdir
创建一个文件夹
adb shell mkdir [options]
- adb shell touch
创建一个新文件或者改变文件修改时间
adb shell touch [options]
- adb shell pwd
定位当前的操作位置
adb shell pwd
- adb shell cp
字面意思,很好理解,复制。
adb shell cp [options]
- adb shell mv
移动或者更名文件
adb shell mv [options]
Screenshot
- adb shell screencap
一般的手机都有截图功能(一般下拉菜单中有),但不代表所有 Android 设备都在可视化中开启了这个功能,所以这时候这个 adb 命令就显得特别重要。
adb shell screencap
结合前面的 pull 命令,就可以让我们轻松拿到屏幕截图。
adb shell screencap /sdcard/test.png
截图存放
adb pull /sdcard/test.png
取到 PC 当前文件夹
- adb shell screencord
有了屏幕截图,自然也得有屏幕录制,可惜这个必须在 Android 4.4 (API level 19) 以上才可使用。
adb shell screencord /sdcard/test.mp4
这个还可以对大小 size 和 时间做限制,感兴趣的可以自行了解。
System
- adb root
获取 root 权限。 - adb sideload
- adb shell ps
打印进程状态。 - adb shell top
展现上层 CPU 进程信息。 - adb shell getprop
获取 Android 系统服务属性 - adb shell setprop
设置服务属性。