客户端dmesg_想反馈 bug 但不知道怎么说?带上「日志」让开发者更懂你

应用打开就闪退了,这个问题能不能修一修?

手机里的应用多了,遇到 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 以及本机信息打包分享出去。

获取 dmesg

除了通过 Matlog 获取打包的 dmesg,使用终端(Terminal)也是获取内核 log 的一种好办法。首先,还是要获取一个终端模拟器应用,比如说我们之前介绍过的 Termux。

使用命令 su 获取 root 权限,键入命令 dmesg > /sdcard/test.log。

完成之后 dmesg 就会保存在内部存储根目录下,名为 test.log 的文件中。

获取 ramoops首先要先获取一个可以访问系统目录的文件浏览器,比如 Mixplorer 等。

在文件管理器中定位到 /sys/fs/pstore 并找到 console-ramoops 或者 console-ramoops1 等类似文件。

将这个文件复制到内部存储,并提交给开发者。

通过 ADB 来获取 log 文件

1、首先在电脑上配备 ADB 环境,配置的文章可以参考我们之前的文章:Windows 、macOS。

关于拷贝路径,Windows 可以点击上方路径栏并进行复制粘贴;macOS 则需要先选择「显示」 - 「显示路径栏」之后在路径栏上右键,并复制地址。

2、开启「开发者选项」中的「USB 调试」。

3、将你的设备通过 USB 连接到电脑。

4、在终端中键入 cd  以进入该文件夹,这里要将替换为解压出来的文件夹的路径。

在终端中可以使用 adb devices 或者 ./adb devices 来检查设备的连接情况,如果返回了如图所示的提示,那么说明设备已经成功连接。

5、使用此命令 adb logcat -c 或者 ./adb logcat -c 来清理 logcat 缓存

6、获取 log 文件:

获取 logcat 请输入:adb logcat -d > test.log 或者 ./adb logcat -d > test.log

获取 dmesg 请输入:adb shell dmesg > test.log 或者 ./adb shell dmesg > test.log

生成的 log 文件会存放在 ADB 工具文件夹(默认即 platform-tools)下。

最后,即便无法获取 log 文件,也可以在向开发者汇报 bug 时附上可以稳定重现的步骤或是对于此 bug 的详细描述,至少可以帮助开发者做出初步的筛选。

结语

遇到问题的时候,优先寻求搜索引擎或者社群里的其它成员是比较合适的方式,而且很大概率能够解决问题,这是因为这些问题往往不只是在自己身上发生。但是当你付出了一些尝试,仍然没有解决问题的时候,向开发者求助就成为你的首选了。

一般应用都会内建反馈渠道自动发送应用运行的 log,或者是会附上加入社群的联系方式、应用的官方社交帐号、电子邮件等,通过这些渠道都可以直接联系到开发团队,而如果当你使用的是第三方内核、ROM 时,也可以去论坛发帖处留言,或者加入开发者创建的社群里直接联系,提供 log。

要相信,优秀的开发团队一定会欢迎、重视并感谢这些有价值的反馈。

关联阅读:

参考资料:

> 下载少数派 客户端、关注 少数派公众号 ,了解更多实用的玩机知识 🚀

> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺 🛒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值