ADB命令在Linux中的调试技巧
在Linux下使用ADB前,需确保设备已开启开发者模式(连续点击“关于手机”→“版本号”7次)和USB调试(开发者选项中开启)。连接设备后,通过adb devices命令查看设备状态(显示“device”则表示连接成功);若连接失败,可尝试更换USB线、端口,或检查Linux是否安装了对应设备的USB驱动(如sudo modprobe usbserial vendor=0xXXXX product=0xXXXX)。
对于多设备场景,使用adb devices -l列出所有设备及其序列号,通过-s <serial_number>指定目标设备(如adb -s emulator-5556 install app.apk)。
adb logcat是调试应用的关键工具,可通过过滤器缩小日志范围:
adb logcat *:E(仅显示错误日志)、adb logcat *:W(显示警告及以上日志);adb logcat -s "ActivityManager"(仅显示ActivityManager标签的日志);adb logcat -d -s "your.package.name"(仅显示指定应用的日志);adb logcat -v time > log.txt(带时间戳保存,便于后续分析)。通过adb shell进入设备的Linux shell环境,可执行常用命令:
adb shell ps(列出所有进程)、adb shell top(实时查看CPU、内存占用);adb shell dumpsys meminfo <package_name>(分析应用内存使用,定位内存泄漏);adb shell ls /sdcard/(查看设备目录)、adb shell cat /sdcard/log.txt(查看文件内容);adb shell pm grant <package_name> android.permission.CAMERA(授予权限)、adb shell pm revoke <package_name> android.permission.CAMERA(撤销权限)。adb install path/to/app.apk(安装APK,-r表示覆盖安装)、adb uninstall <package_name>(卸载应用,-k表示保留数据);adb shell am start -n <package_name>/<activity_name>(启动指定Activity,如adb shell am start -n com.example.app/.MainActivity);adb shell am set-debug-app -w <package_name>(设置应用为调试模式,启动时等待调试器连接)、adb shell am clear-debug-app(清除调试模式)。adb shell screencap -p /sdcard/screenshot.png(保存截图到设备),再用adb pull /sdcard/screenshot.png ~/Desktop/复制到电脑;adb shell screenrecord /sdcard/video.mp4(开始录制,按Ctrl+C停止),录制文件保存在设备/sdcard/目录;adb shell tap x y(点击坐标点,如adb shell tap 500 1000)、adb shell swipe x1 y1 x2 y2(滑动,如adb shell swipe 500 1000 500 500模拟下滑)。adb shell top(实时查看CPU占用,按q退出)、adb shell dumpsys cpuinfo(查看CPU使用详情);adb shell dumpsys meminfo <package_name>(查看应用内存分配,重点关注“PSS”值)、adb shell procrank(查看进程内存占用排名);adb shell tap x y(点击坐标点,如adb shell tap 500 1000)、adb shell profile start <process> <file>(开始性能分析,adb shell profile stop <process>停止,结果保存到<file>)。通过Shell脚本批量执行ADB命令,实现自动化测试或批量操作:
#!/bin/bash
devices=$(adb devices | grep -w "device" | awk '{print $1}')
for device in $devices; do
adb -s $device install /path/to/app1.apk
adb -s $device install /path/to/app2.apk
done
#!/bin/bash
devices=$(adb devices | grep -w "device" | awk '{print $1}')
for device in $devices; do
adb -s $device shell screencap -p /sdcard/screenshot.png
adb -s $device pull /sdcard/screenshot.png ~/Desktop/${device}_screenshot.png
done
if判断命令执行结果(如if adb install app.apk; then echo "安装成功"; else echo "安装失败"; exit 1; fi),提升脚本可靠性。adb kill-server && adb start-server重启服务;adb logcat *:E)或重定向到文件(adb logcat > log.txt);免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。