ADB 使用手册 速览

ADB 使用手册 速览

一、工具基础介绍

1.1 核心功能定位

ADB(Android Debug Bridge)是 Android 官方调试工具,提供以下核心能力:

  • 设备通信:通过 USB/Wi-Fi 与 Android 设备交互
  • 应用调试:安装/卸载 APK、调试应用崩溃
  • 系统控制:重启设备、进入 Recovery 模式
  • 日志捕获:实时获取 Logcat 日志
  • 文件操作:推送/拉取设备文件(支持 adbfs 挂载)
  • 自动化测试:执行 Monkey 测试、录制/回放操作

1.2 工作原理架构

PC端
ADB守护进程
设备端adbd
服务列表
Logcat服务
Shell服务
文件传输服务
ADB客户端

二、核心命令详解

2.1 设备连接管理

基础连接

# USB 连接
adb devices

# Wi-Fi 连接(需同一局域网)
adb tcpip 5555
adb connect 192.168.1.100:5555

# 多设备操作
adb -s emulator-5554 shell

高级调试

# 无线 ADB 持久化
echo "persist.adb.tcp.port=5555" >> /system/build.prop
adb reboot

# 端口转发
adb forward tcp:8081 tcp:8081  # 本地转发
adb reverse tcp:8081 tcp:8081  # 反向转发

2.2 文件操作命令

基础传输

# 推送文件
adb push local.txt /sdcard/Download/

# 拉取文件
adb pull /sdcard/DCIM/photo.jpg ./

# 同步目录
adb sync /system/app  # 仅同步变更

高级操作

# 挂载为文件系统
adb shell
su
mount --bind /data /mnt/data  # 需 root 权限

# 批量操作示例
adb shell "ls /sdcard/* | xargs -I{} cp {} /data/local/tmp"

2.3 应用调试命令

基础管理

# 安装 APK
adb install -r app-release.apk  # -r 覆盖安装

# 卸载应用
adb uninstall com.example.app

# 强制停止应用
adb shell am force-stop com.example.app

高级调试

# 启动 Activity
adb shell am start -n com.example.app/.MainActivity

# 发送广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

# 截图保存
adb exec-out screencap -p > screen.png

# 录制屏幕
adb shell screenrecord /sdcard/demo.mp4

2.4 日志捕获命令

基础日志

# 实时日志
adb logcat -v time

# 按标签过滤
adb logcat -s "ActivityManager:D MyApp:V"

# 保存日志
adb logcat -d > log.txt

高级分析

# 崩溃日志分析
adb logcat -b crash

# 内核日志
adb shell dmesg > kernel.log

# 跟踪系统调用
adb shell strace -p 1234

三、高级应用场景

3.1 自动化测试

Monkey 测试

# 基础压力测试
adb shell monkey -p com.example.app -v 500

# 高级参数
--throttle 500       # 操作间隔 500ms
--pct-touch 30       # 30% 触摸事件
--ignore-crashes     # 忽略崩溃继续执行

UI Automator 测试

// 示例:点击坐标 (500, 1000)
UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
device.click(500, 1000);

3.2 性能调优

内存分析

# 实时内存监控
adb shell dumpsys meminfo com.example.app

# 堆转储
adb shell am dumpheap com.example.app /data/local/tmp/heap.hprof
adb pull /data/local/tmp/heap.hprof ./

CPU 分析

# 跟踪方法调用
adb shell am tracepath com.example.app

# 火焰图生成
adb shell perfetto --txt -o trace.txt

3.3 安全分析

权限审计

# 检查危险权限
adb shell dumpsys package com.example.app | grep -A 20 "requested permissions"

# 动态权限授予
adb shell pm grant com.example.app android.permission.CAMERA

漏洞扫描

# 检测已知漏洞
adb shell dumpsys package com.example.app | grep "versionCode"
# 对比 CVE 数据库

3.4 系统定制

Magisk 模块

# 安装模块
adb push module.zip /sdcard/Download/
adb shell su -c "magisk --install-module /sdcard/Download/module.zip"

# 模块管理
adb shell magisk --list-modules

自定义 Recovery

# 刷入 TWRP
adb reboot bootloader
fastboot flash recovery twrp.img

四、常见问题解决

4.1 连接问题

现象device unauthorized

解决方案

  1. 撤销授权:adb kill-server
  2. 重新插拔设备
  3. 允许 USB 调试

现象offline 状态

解决方案

adb kill-server
adb start-server
adb devices

4.2 权限问题

现象Operation not permitted

解决方案

# 重新挂载系统分区
adb shell
su
mount -o remount,rw /system

现象SELinux denied

解决方案

# 临时禁用 SELinux
adb shell setenforce 0

4.3 性能瓶颈

现象adb slow

优化方案

  1. 启用 ADB 无线调试
  2. 关闭无关服务:adb shell settings put global adb_enabled 0
  3. 使用 adb connect 替代 USB

五、最佳实践指南

5.1 设备管理策略

  1. 使用 adb backup 定期备份设备
  2. 配置 adb_usb.ini 加速设备识别
  3. 建立设备池管理脚本:
#!/bin/bash
for SERIAL in $(adb devices | grep -v List | awk '{print $1}'); do
    echo "Processing $SERIAL..."
    adb -s $SERIAL shell input keyevent 26  # 唤醒设备
done

5.2 调试流程优化

  1. 使用 adb logcat -c 清除旧日志
  2. 配置 ~/.android/adb_usb.ini 加速连接
  3. 开发阶段启用 adb wait-for-device

5.3 安全规范

  1. 禁用开发模式:adb shell settings put global development_settings_enabled 0
  2. 加密 ADB 传输:adb --enable-aes-256-encryption
  3. 定期审计 adb shell pm list packages
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值