Android Q 持久化logcat日志

时光毁灭记忆、已成空白 提交于 2019-12-11 07:02:28

一.背景:

Android开发经常遇到一个问题,测试提供的日志没有抓到问题发生点的日志,也就是问题发生时的日志被设备最新的日志冲刷掉了

二.解决思路:

在和谷歌的沟通过程中,谷歌在日志系统中明确要求合作伙伴的开发人员提供bugreport.zip。在这个压缩包中,解压后的bugreport-你的设备名称-2019-11-26-11-19-49.zip\FS\data\misc\logd中会持久化的保存logcat日志(最多255个)

那么顺着谷歌的思路,很容易联想到adb shell进入设备命令行,查看data\misc\logd目录下的文件

接下来在opengrok中搜索“data/misc/logd”很容易就能搜索到logd相关的文件。

介绍logd配置的文件是:system/core/logcat/logpersist和system/core/logd/README.property,两个文件很容易看懂意思,简单来说就是通过build.prop配置属性,然后开启logd服务,保存logcat日志

三.解决方案

在device/设备厂商/xxx.mk下,配置如下内容即可使上述功能生效:

ifeq ($(TARGET_BUILD_VARIANT),userdebug)
        PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \
            persist.logd.logpersistd.enable=true \
            persist.logd.logpersistd=logcatd \
            persist.logd.logpersistd.size=40 \
            persist.logd.logpersistd.buffer=main,system,crash
endif

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!