1. 为什么Android开发者需要掌握Shell命令
刚入行那会儿,我总纳闷为什么资深Android开发同事能在终端里噼里啪啦敲几行命令就解决了我要折腾半天的调试问题。直到有次遇到系统级ANR(Application Not Responding)分析,才发现不会adb shell命令就像医生没有听诊器——只能靠猜。
Shell命令是Android开发的"瑞士军刀",特别是在以下场景:
- 当Android Studio的Logcat抽风不显示关键日志时
- 需要批量操作多台测试设备时
- 分析系统级性能问题(如CPU/内存占用)时
- 自动化构建和测试流程中
我整理的这个手册不是简单的命令罗列,而是结合了五年踩坑经验总结出的"生存必备"命令集。每个命令都经过真机实测,标注了适用场景和常见坑点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 开发调试核心命令
2.1 设备连接与基础操作
bash复制# 查看已连接设备(含模拟器)
adb devices -l
# -l参数会显示设备型号,多设备时特别有用
# 无线调试(需先用USB线配对)
adb pair 192.168.1.100:34567
adb connect 192.168.1.100:5555
# 实测发现Android 11+需要先执行pair再connect
# 多设备操作指定目标设备
adb -s emulator-5554 shell
# 当连接多台设备时,-s指定序列号避免操作错设备
注意:无线调试时如果频繁断开,可以尝试
adb tcpip 5555重置端口,我遇到过的连接稳定性问题90%靠这个解决
2.2 日志抓取高阶技巧
bash复制# 按标签和优先级过滤日志
adb logcat -s MyAppTag:V *:S
# V=Verbose, D=Debug, I=Info, W=Warn, E=Error
# *:S表示静默其他标签日志
# 带时间戳和进程ID的日志
adb logcat -v threadtime
# 分析ANR时必备格式,能看出线程阻塞情况
# 持久化日志到文件(自动分段)
adb logcat -f /sdcard/log.txt -r 1000 -n 10
# -r 每个文件1000KB, -n 保留10个文件
日
