一些比较实用的 Android adb 命令分享

下面是一些我找到Android的ADB有用的命令。可以手动或使用自动构建和测试过程。

查看设备


adb devices


如果多个设备连接则使用 use adb -s DEVICE_ID连接到目标设备

安装应用

使用install命令安装一个apk包,如果应用已安装到了该设备,则使用-r重新安装和保持原来的应用数据


adb install -r APK_FILE

#example adb install -r com.feiliu.wjbd

卸载一个应用


adb uninstall APK_FILE

#example adb uninstall com.feiliu.wjbd

启动一个页面


adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE

adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY

# example adb shell am start -n com.feiliu.wjbd/.MainActivity adb shell am start -n com.feiliu.wjbd/com.feiliu.wjbd.MainActivity

进入设备的shell界面


adb shell

截屏

Sergei Shvetsov想出了一个很好方法,获得一个屏幕截图且使用shell screencap通过perl输出到本地目录。具体查看他的博客给出的解释


adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

解屏

这个命令会发送一个解屏事件到锁屏的设备上


adb shell input keyevent 82

日志

命令行显示Log


adb logcat


根据tagname过滤

adb logcat -s TAG_NAME

adb logcat -s TAG_NAME_1 TAG_NAME_2

#example adb logcat -s TEST adb logcat -s TEST MYAPP

优先过滤

显示一个特定的优先级警告及以上的日志。


adb logcat "*:PRIORITY"

# example adb logcat "*:W"

优先级:

V — 细则 (最低优先级)
D — 调试
I — 信息
W — 警告
E — 错误
F — 致命
S — 静默 (最高优先级,不会打印任何信息)

使用grep过滤

这个很像在Linux上使用管道命令一样,需系统支持


adb logcat | grep "SEARCH_TERM"

adb logcat | grep "SEARCH_TERM_1\|SEARCH_TERM_2"

#example adb logcat | grep "Exception" adb logcat | grep "Exception\|Error"


清除日志块

使用来清除旧的日志


adb logcat -c