对于选择与 Google 分享使用情况和诊断信息的用户,WebView 会向 Google 发送使用情况统计信息和崩溃报告。使用情况统计信息包含系统信息、活动的现场试验、功能使用情况、响应能力、性能和内存使用情况等信息。这些信息不包含任何个人身份识别细节。
使用情况统计信息
收集的使用情况统计信息用于提升 WebView 的性能、评估现有功能变更带来的影响,以及指导新功能的开发。
WebView 的稳定版渠道会从一小部分用户那里收集使用情况统计信息。非稳定版渠道可能会从更大比例的用户中进行采样。
从 WebView 71 版本开始,这些统计信息会与应用软件包名称相关联。这使得 Google 能够主动监控并解决可能导致特定应用性能下降(而不造成崩溃)的 WebView 问题。
在 WebView 104 版本之前,对于任何给定的应用,最多有 10% 的用户会上传包含软件包名称的报告。其他用户会上传空白的软件包名称,或者根本不上传记录。
从 WebView 104 版本开始,对于处于热门应用许可列表中的应用,始终会记录其软件包名称。其他应用则上传空白的软件包名称。
选择不参与使用情况统计
应用可以通过在清单文件的 <application> 部分中包含以下内容,选择不参与使用情况统计数据的收集:
<meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" />
这将禁止收集该应用所有用户的使用情况统计信息,无论用户是否开启了相应的设置。但这不会禁止崩溃报告。
选择不参与指标收集
当用户同意时,WebView 有能力向 Google 上传匿名诊断数据。数据是针对每个实例化 WebView 的应用按应用维度进行收集的。您可以通过在清单文件的 <application> 元素中创建以下标签来选择不参与此功能:
<manifest> <application> ... <meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" /> </application> </manifest>
仅当用户同意且应用未选择退出时,数据才会从应用中上传。有关退出诊断数据报告的更多信息,请参阅下面关于崩溃报告的部分。
崩溃报告
当 WebView 对象极有可能是导致崩溃的原因时,系统会收集崩溃报告。崩溃报告包含确定崩溃时 WebView 状态所需的信息。这包括系统信息、活动的现场试验,以及从应用中获取的、生成线程内调用序列所需的堆栈内存。
堆栈内存经过清理以移除字符串,旨在仅捕获生成堆栈跟踪所需的信息。使用情况统计信息或崩溃报告中不会收集任何 URL。
假名标识符与数据隐私
WebView 收集的崩溃报告和使用情况统计信息各包含一个随机生成的 128 位令牌,用于以假名方式对报告进行去重并保持统计信息的准确性。令牌值不会在应用间共享,且崩溃报告和使用情况统计信息拥有独立的令牌。当用户选择不再与 Google 分享使用情况和诊断信息时,所有应用的使用情况统计令牌都会被清除。当应用缓存被清除时,崩溃报告令牌会被清除。当应用被卸载或应用数据被清除时,这两个令牌都会被清除。
其他资源
要了解关于用户隐私的更多信息,请参阅构建保护隐私的应用。