文章目录
- logcat工具介绍
- 安卓日志级别
- 测试环境
- 遇到的问题
- 获取该app的进程号
- 使用logcat抓取该app的日志
- 根据日志分析原因
- 参考资料
logcat工具介绍
logcat是android中的一个命令行工具,可以用于得到程序的log信息。
安卓日志级别
V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品中输出,不是很常见,包含诸如方法名,变量值之类的信息)
D—Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见,开发中经常选择输出此种级别的日志,有时在beta版应用中出现)
I—Info(信息,该等级日志显示运行状态信息,可在产品出现问题时提供帮助,从该级别开始的日志通常包含完整意义的英语语句和调试信息,是最常见的日志级别)
W—Warning(警告,运行出现异常即将发生错误或表明已发生非致命性错误,该级别日志通常显示出执行过程中的意外情况,例如将try-catch语句块中的异常打印堆栈轨迹之后可输出此种级别日志)
E—Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
F—Fatal(严重错误,比error级别更高,目前我只在android系统内核发出的日志中看到此种级别。在Android6.0以前表明开发者认为绝对不应该出现的错误,在此以后一般开发场景下绝不应该输出此种级别的日志)
S—Silent(寂静,最高级别,没有一条日志会属于这个级别,仅仅作为关闭logcat输出的过滤器参数)
测试环境
遇到的问题
点击获取验证码,提示验证码错误
获取该app的进程号
使用命令查看该app对手机内存的占用情况,执行结果里面会出现该app的进程编号(pid)
adb shell dumpsys meminfo com.lqm.home
该app的进程号为3546
使用logcat抓取该app的日志
命令如下:
adb logcat -v time | find "3546"
发现日志存在中文乱码问题,乱码原因是:Android中使用的是UTF-8字符,而CMD默认字符集是ANSI,中文环境下即为GBK
乱码问题解决办法如下:
chcp 65001
将活动代码页修改为65001
使用locatcat重新抓取日志
根据日志分析原因
从告警日志中可以分析出剩余短信条数已经不足。需要充值,才能正常调用厂商的短信接口。
参考资料
[01] android logcat抓取app日志的方法
[02] Android logcat解析与问题分析
[03] 浅谈Android的日志机制:Log和logcat
[04] CMD命令进行adb logcat时显示一堆的乱码的解决办法