7 个 Android 开发者必须知道的 ADB 命令
ADB(Android Debug Bridge)是 Android 开发中不可或缺的调试工具。本文将介绍 7 个实用且高效的 ADB 命令,它们虽不常被提及,却能显著提升开发效率,让安装应用、捕获日志、推送文件等操作变得轻松自如。
1. ADB 屏幕录制命令
ADB 的屏幕录制功能对开发者非常实用,尤其适用于创建视频演示、应用导览,或捕获难以用截图描述的错误。通过简单的终端命令,即可开始录制设备屏幕,并控制比特率、时长等录制参数。
基本命令如下:
adb shell screenrecord /sdcard/screenrecord.mp4
该命令会在设备 /sdcard/ 目录下生成 screenrecord.mp4 文件。录制完成后,可通过以下命令将视频拉取到电脑:
adb pull /sdcard/screenrecord.mp4
2. 使用 ADB 安装和卸载应用
ADB 支持直接从终端安装和卸载应用,无需手动操作设备界面,非常适合频繁测试不同版本或需要自动化构建流程的开发者。
安装 APK 的基本命令如下:
adb install /path/to/yourApp.apk
若 APK 为已安装应用的更新版本,可使用 -r 参数实现覆盖安装,无需先卸载:
adb install -r yourApp.apk
卸载应用的基本命令如下:
adb uninstall com.example.app
若希望在卸载时保留应用数据,可使用 -k 参数:
adb uninstall -k com.example.app
3. 使用 ADB 捕获和保存屏幕截图
ADB 支持直接从终端截取设备屏幕,在测试应用或排查问题时非常方便。截图会先保存在设备上,再通过 adb pull 传输到电脑。
基本命令如下:
adb shell screencap /sdcard/screenshot.png
将截图拉取到电脑:
adb pull /sdcard/screenshot.png
4. 使用 ADB 调试 Wi-Fi 连接
ADB 支持通过 Wi-Fi 无线连接设备,在无法使用数据线或需要更大活动空间时非常有用。
首先,需通过 USB 连接设备以完成初始配置。连接后,执行以下命令在端口 5555 上启用 Wi-Fi 调试:
adb tcpip 5555
然后获取设备 IP 地址,可通过设备 Wi-Fi 设置查看,或执行:
adb shell ip route
最后,使用 IP 地址通过 Wi-Fi 连接设备:
adb connect <device_ip>:5555
调试结束后,可通过以下命令断开连接:
adb disconnect <device_ip>:5555
5. 通过 ADB 授予或移除权限
ADB 可直接管理应用权限,无需通过系统设置或应用界面,适用于自动化测试、CI/CD 流水线及日常调试。
授予权限的基本命令如下:
adb shell pm grant <package_name> <permission>
例如,授予应用相机权限:
adb shell pm grant com.example.app android.permission.CAMERA
撤销权限的基本命令如下:
adb shell pm revoke <package_name> <permission>
6. 使用 ADB 进行网络配置和测试
网络条件会显著影响应用表现。在不同网络环境下测试应用(如弱网、断网)对评估其可靠性至关重要。ADB 提供了模拟不同网络环境、调试连接问题的能力。
禁用 Wi-Fi 的基本命令如下:
adb shell ifconfig wlan0 down
恢复 Wi-Fi 连接:
adb shell ifconfig wlan0 up
此外,可结合代理、模拟器等第三方工具,进一步模拟带宽限制或不稳定网络条件。
7. 使用 ADB 启动和停止服务
ADB 可直接控制 Android 应用中的服务。服务是 Android 中用于执行后台任务(如同步数据、播放音乐、处理网络请求)的核心组件,无需用户直接交互。
通过 ADB 从终端启动和停止服务,便于测试和调试,无需操作设备界面。
启动服务的基本命令如下:
adb shell am startservice <service_name>
例如,启动名为 SyncService 的数据同步服务:
adb shell am startservice com.example.app/.SyncService
停止服务的基本命令如下:
adb shell am stopservice com.example.app/.SyncService
结语
ADB 堪称 Android 开发者的「瑞士军刀」。无论是安装 APK、录制屏幕、管理权限,还是启动和停止服务,ADB 都能提供高效、灵活的控制能力。熟练掌握这些命令,可以显著提升开发与调试效率,让你更自如地管理、测试和优化应用。
将 ADB 融入日常工作流程,不仅能节省时间,还能更精细地调优应用性能与行为。建议多加练习这些命令,逐步掌握 ADB 的更多高级用法。