将应用程序内容添加到错误报告

问题描述 投票:0回答:1

我正在开发自定义 AOSP 项目 (AOSP 13)。

我已在 AOSP 中添加自定义 Android 应用程序作为特权应用程序。这个应用程序在它的私人空间中生成日志文件

/data/data/com.myapp/files/

由于它是用户构建用户无法访问此日志文件。

有什么方法可以添加此日志文件

adb 错误报告

?,如果需要,我可以对 AOSP 代码进行必要的更改。

android frameworks android-source
1个回答
0
投票

将来自 Android 应用程序的数据包含在 Android 错误报告中的一种简单方法是公开实现

dump
方法的公共 ContentProvider,例如:

public class MyBugReportDataProvider extends ContentProvider {
    @Override
    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
        if (!DumpUtils.checkDumpPermission(getContext(), TAG, writer)) {
            return;
        }

        writer.println("Stuff to include in bug reports");
    }
}

确保提供程序已导出,例如:

<provider
    android:name=".MyBugReportDataProvider"
    android:authorities="com.myapp.mybugreportdataprovider"
    android:multiprocess="false"
    android:singleUser="true"
    android:exported="true"/>

您现在将在错误报告中看到以下内容:

PROVIDER ContentProviderRecord{x u0 com.myapp/.MyBugReportDataProvider} pid=99
    Client:
      Stuff to include in bug reports

请注意,显然它可能仅在进程当时正在运行时调用转储,因此如果您想保证始终调用

dump
,则您的应用程序需要持久化。

© www.soinside.com 2019 - 2024. All rights reserved.