ADB篇

1,204 阅读4分钟

ADB

工作原理

  • 启动adb客户端时,该客户端会检查是否有adb服务器进程在运行。若没有则会启动服务器进程。
  • 服务器启动后会与本地TCP端口5037绑定,并监听adb客户端发出命令

Android中常用的ADB命令

Android日常开发过程中不可避免的要与设备打交道,手机还可以通过USB进行连接调试,但电视、会议多媒体设备,往往会通过网络+ADB命令连接调试。所以掌握一些常用的ADB命令是至关重要的

与设备相关的ADB指令

  • adb connect 10.100.94.165:连接指定ip的设备
    • adb disconnect 10.100.94.165:断开与指定设备链接
    • adb kill-server:断开所有连接设备
  • adb devices:查看连接设备列表
    • adb devices -l:查看连接设备详细信息列表
      • 10.100.94.165:5555 device product:Tiramisu model:Xxx device:rk3588_t transport_id:1
    • adb -s 10.100.94.165 command:当连接多个设备时,使用-s指定ip操作指定设备
  • adb shell getprop ro.product.cpu.abi:查看设备的cpu架构arm64-v8a
    • adb reboot:重启
      • bootloader:系统加载器
      • recovery:恢复出厂设置
      • sideload:线刷模式
      • sideload-auto-reboot
    • adb root:获取root权限
    • adb remount:重新挂载设备,需root权限

与应用相关的ADB指令

  • adb install d:\X.apk:安装X应用
    • adb install -r d:\X.apk:覆盖安装X应用
    • adb install -d d:\X.apk:删除安装X应用
    • adb install -t d:\X.apk:安装X应用,当AndroidManifest的application标签添加android:testOnly=true属性时使用
    • adb install -g d:\X.apk:授予应用所有运行时权限,当应用为系统应用时使用
    • adb uninstall com.xxx.xxx:卸载应用
    • adb uninstall -k com.xxx.xxx:卸载应用,但保留应用数据data/data和缓存sdcard/Android/com.xxx.xxx
    • adb shell pm uninstall -- user 0 com.xxx.xxx:强制卸载用户0下应用
  • adb shell "pm list packages -f | grep "com.xxx.xxx"":查看应用安装路径
    • adb shell "dumpsys packages com.xxx.xxx | grep path":查看应用安装路径
    • adb shell dumpsys activity services com.xxx.xxx:查看正在运行的Service
    • adb shell "dumpsys packages com.xxx.xxx | grep version":查看应用版本信息
  • adb shell ps:查看所有进程信息
    • adb shell "ps | grep com.xxx.xxx":查看指定包名的进程信息
    • top | grep com.xxx.xxx:adb shell下查看指定包名进程号
  • adb shell settings put system pointer_location 1:触摸屏幕时显示轨迹
    • adb shell setprop debug.hwui.overdraw show:显示过度绘制检查
    • adb shell setprop debug.hwui.overdraw false:关闭过度绘制检查
    • adb shell pm dump com.xxx.xxx | grep "version":查看应用版本信息
    • adb shell pm dump com.xxx.xxx | findstr version:查看应用版本信息
  • adb shell "dumpsys window | grep mFocusedApp":当前页面Activity名称
  • adb shell pm clear com.xxx.xxx:清除应用数据
  • adb shell input text "test":电脑输入文本至手机
  • adb shell input keyevent BACK:返回指令
  • adb shell setprop xxx.xxx.xxx true:写入变量至系统中
  • adb shell getprop xxx.xxx.xxx:读取系统变量

与应用启动相关ADB命令

  • adb shell am start -n com.xxx.xxx/.MainActivity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER:启动应用
    • adb shell am start -a xxx.xxx.xxx.action:使用action匹配启动Activity
      • --es key stringValue:带string参数
      • --ez key booleanValue:带boolean参数
      • --ei key intValue:带int参数
      • --el key longValue:带long参数
      • --ef key floatValue:带float参数
    • adb shell am startservice -n com.xxx.xxx/.XxxService:启动服务
    • adb shell am force-stop com.xxx.xxx:强制停止应用

与应用日志相关的ADB命令

  • adb bugreport D:/test/x.zip:导出bugreport日志信息,失败按提示adb pull日志
    • adb logcat | findstr key > D://logcat.txt
    • adb shell "logcat -t 100 | grep key":查看最近100条日志
    • adb shell "logcat -t 100 *:E | grep key":查看最近100条error日志
    • adb shell "logcat -v threadtime -d | grep key":查看缓冲区日志
    • adb logcat -c:清除日志缓存
    • adb shell -v process;查看所有进程日志
    • adb shell "logcat -v process | grep pid":查看指定进程的日志
    • adb logcat -v time > d:/logcat:导出日志至logcat.txt文件
  • adb shell "getevent -l -t | grep "BTN"":查看触控按下抬起事件

文件操作相关ADB命令

  • adb shell pull /sdcard/xxx D:/file:将文件从设备拷至电脑
    • adb pull /mnt/sdcard/test.txt .:将文件从设备拷至电脑当前目录
    • adb push D:/test /sdcard/test/:将文件夹拷至设备
    • adb push D:/test/. /sdcard/test/:将文件夹下所有文件拷至设备,不包括文件夹
    • adb push D:/test.txt /sdcard/test/:将文件拷至设备
  • adb shell rename oldFile newFile:文件重命名
    • adb shell rm -rf 目录:删除目录
    • adb shell mv oldPath newPath:移动文件至新目录
    • adb shell cp -r oldPath newPath:复制文件至新目录
    • adb shell mkdir dir:创建dir目录
    • adb shell chmod 777 dir:设置dir文件权限
    • adb shell chmod -R 777 dir:设置dir文件夹下所有文件权限