使用场景:
测试android app发生carsh和anr时,需要把崩溃日志导出来作为附件传到bug管理工具中(开发能看懂,保存日志给开发即可)
安装:
mac配置搞了好久,忘记笔记了
参考资料:https://www.jianshu.com/p/7e8eff459c58
命令:
adb是运行在pc端的程序:可以通过它对android应用进行安装、卸载以及调试。adb常用的命令有:
1.adb devices : 获取计算机连接的设备列表和设备状态
2.adb install **.apk : 安装包
3.adb shell pm list package -3 : 获取第三方应用apk名
adb shell pm list package -s : 获取系统应用
adb shell pm list package -f : 获取应用包名及对应的apk名和存放位置
4.adb uninstall 应用包名 :卸载
5.adb logcat 查看log (control + C 快捷键,退出当前命令)
adb logcat -c 清除之前的日志信息,一般在看日志前都会执行这个命令,目的是好看日志,不然前面的日志应该会超级多,不好看问题
adb logcat -v time *:E 显示所有优先级大于等于错误(Error)的日志
e g: 抓liaoyu包的错误日志
adb logcat -v time *:E | grep com.health.liaoyu
adb logcat -v time *:e |grep com.health.liaoyu
adb logcat -v time > D:\log.txt 把日志输出到电脑的上查看,在窗口打印的同时,文件也会同时打印的
遇到的错误
报错:zsh: no matches found: *:E
echo $0 # 查看当前shell,如果是-zsh,表示zsh没有把*:E 当作adb 命令的参数,而是把它当作了命令行的参数。
解决方式1:
在命令前加noglob前缀:noglob abd logcat -v time *:E
解决方式2:(永久)
打开 .zshrc 文件(位于 ~ 目录下),添加一行:setopt no_nomatch
vim ~/.zshrc 打开文件-->输入i进入insert模式-->编辑内容-->esc退出编辑模式-->shift+q进入:命令模式(一般电脑能直接进入可忽略,我的mac电脑比较特殊) -->wq! 保存并强制退出
日志的优先级
一般有如下几档,由低到高:
1、VERBOSE,一般信息,输出为颜色为黑色且日志级别大于等于VERBOSE的信息
2、DEBUG,调试信息,蓝色
3、INFO,标识信息,绿色
4、WARN,警告信息,橙色且
5、ERROR,错误信息,红色
6、F —— Fatal 致命
7、S —— Silent(最高,啥也不输出)