时间:2019-08-26 16:39:02 作者:Bill 浏览量:12
怎样用好Log文件、快速精确的反馈 bug?
在日常智能手机的使用过程中,偶尔大家会下载到一款新应而兴致勃勃,跃跃欲试的准备打开。结果发现“OMG 闪退?黑屏?”
用应用打开就闪退了,这个问题能不能修一修?这样的问题一定发自己于你内心的呐喊
手机里的应用多了,遇到 bug 也是在所难免的事。但遇到问题后如果你像开头这样向开发者反馈问题,那你多半也难以得到直接的解决方案——无论是「闪退」「报错」还是其他常见问题,我们能够看见的其实都只是最终的呈现结果,并非导致问题的核心原因。
想让开发者帮你更好地定位并解决遇到的问题,正确地抓取 log 文件是一项必不可少的技能。
Log 文件是什么?
Log 是用来记录设备运行活动的日志,应用有应用的运行日志,系统有系统的运行日志……所以出现问题的时候,就需要我们找对应的日志。
一般来说,常见的系统 log 文件分为三种:Logcat,dmesg 以及 ramoops。它们的区别大致如下:
logcat 是名副其实的 Android 系统日志,记录系统的异常行为,比较常用;
dmesg 是内核日志,详细记录了每一个子系统(subsystem)的活动;
ramoops 是内存相关的日志,往往用于调查设备的意外重启。
一般的开发者需要前两种 log 比较多,如果不确定自己应该提交什么类型的 log,不妨先用合适的语言询问开发者。
获取 Log 文件其实很简单
一般来说有两种获取 log 的方式:1、通过应用获取(需要 root 权限,包含所有类型);以及通过 Android 调试桥(即 ADB,仅适用于 logcat 和 dmesg,获取 dmesg 仍然需要 root 权限)。
通过应用来获取 Log
获取 logcat
获取一个 logcat 应用,比如说 Matlog 或是 SysLog,这里以 Matlog 为例。
下载打开并授予其 root 权限,这时在应用的主页面就会显示出此时的日志。
点击右上角的「三个点」菜单按钮,点选 File,再点选 Record。
这时 Matlog 会弹出 log 命名对话框,默认的命名是「日期+时间」,此日志会保存在内部存储 /matlog/savedlogs/ 下。
点击确定之后就可以将 Matlog 放在后台,去复现错误了。
成功复现错误之后回到 Matlog,点击右下角的「停止」按钮,这时 Matlog 会将刚才录制的 logcat 显示在屏幕上。点击右上角菜单按钮选择 Share 即可将应用日志 logcat,内核日志 dmesg 以及本机信息打包分享出去。
怎样用好Log文件、快速精确的反馈 bug?图一
怎样用好Log文件、快速精确的反馈 bug?图二
获取 dmesg