adb进阶实用分享(必收藏)

小酋已经在《adb与monkey,轻松入门实践》中讲解了adb环境的安装配置及基本使用,今天来分享下adb的一些高级实用操作。让大家测试、分析Android应用更轻松。

获取管理员权限
adb root

查看系统盘符
adb shell df

查看Android系统版本
adb shell getprop ro.build.version.release

查看当前设备IP
adb shell netcfg

退出adb shell命令窗口(ctrl+c无法退出)
> exit    //在命令窗口中键入“exit”回车即可

重启到 Recovery 模式

adb reboot recovery  

重启到 Fastboot 模式
adb reboot bootloader 

查看连接过的 WiFi 密码(需要 root权限)
adb shell
su
cat /data/misc/wifi/*.conf
华为su报错/system/bin/sh: su: not found 
解决办法:华为手机在出厂时官方加了锁,需要到官网上申请解锁,解锁后才能使用软件进行root

模拟按键
adb shell input keyevent [value]
部分常见按键相应值:

表1 adb模拟按键
图2 adb模拟按键

获取执行内存/CPU信息
> adb shell  
> cat /proc/meminfo    //获取执行内存信息
> cat /proc/cpuinfo    //获取执行CPU信息

查看实时资源占用情况
adb shell top

图5 资源实时情况

获取电池状况

adb shell dumpsys battery
输入示例:

图6 获取电池状况

其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 39% 的电量。

按级别过滤日志
adb logcat TAG_NAME_1:PRIORITY_1
Android 的日志分为如下几个优先级(PRIORITY):

  • V -- Verbose  //最低,输出得最多
  • D -- Debug  //调试
  • I -- Info  //信息
  • W -- Warning  //警告
  • E -- Error  //错误
  • F -- Fatal  //致命级
  • S -- Silent  //最高,啥也不输出

按某级别过滤日志则会将该级别及以上的日志输出。
如,命令:
adb logcat *:W  //会将 Warning、Error、Fatal 和 Silent 日志输出。
注: 在 macOS 下需要给 *:W 这样以 * 作为 tag 的参数加双引号,如 adb logcat "*:W",不然会报错 no matches found: *:W
按 tag 和级别过滤日志
可以由多个 [:priority] 组成。
如,命令:
adb logcat ActivityManager:I MyApp:D
//表示输出 tag为 ActivityManager 的 Info 以上级别日志,输出 tag为 MyApp 的 Debug以上级别日志。

adb截图(非常实用的功能)
windows系统:
步骤① 
adb shell screencap -p /sdcard/screen.png

//截图保存到sd卡

步骤②  
adb pull /sdcard/screen.png  
[本地计算机路径] 

//是将screen.png保存到电脑上;保存的路径默认为你使用adb命令的当前目录,也可以自定义存放的路径名。

图1 adb截图

注意:windows下,不能直接将截图保存在电脑中,大家不妨尝试下,直接保存在电脑中会怎么样?
linux系统直接保存到电脑中
> adb shell screencap -p | sed 's/\r$//' > screen.png   
//仅限于在linux下使用;运行adb shell 将\n转换\r\n, 因此须要用sed删除多余的\r

使用adb进行屏幕录像

adb shell screenrecord /sdcard/record.mp4
//通过ctrl+c停止录制,用法与adb截图相同;默认录制时间和最长录制时间都是 180 秒
注意:华为机型可能基于安全考虑,无此命令,提示错误:/system/bin/sh: screenrecord: not found

无线连接(需借助 USB线)
除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接;虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后手机就可以在一定范围内摆脱 USB 连接线的限制。
使用步骤: 
①将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一WiFi下。 
②将设备与电脑通过 USB 线连接。(确保连接成功) 
③让设备在 5555 端口监听 TCP/IP 连接:
> adb tcpip 5555
查看当前设备IP
> adb shell netcfg

图3 查看当前设备IP

上一页12下一页


留言