Android 致力于帮助用户利用最新的创新技术,同时将用户的安全和隐私放在首位。请使用本页面上的检查清单作为常见隐私指南和最佳实践的参考。
本页面描述的一些最佳实践也出现在速查表中。
检查清单:尽量减少权限请求
通过保持透明并让用户掌控其应用体验,与用户建立信任。
请求功能所需的最低权限:在对应用进行重大更改时,请查看已请求的权限,以确认您的应用功能是否仍然需要它们。
较新版本的 Android 通常会引入无需权限即可以注重隐私的方式访问数据的方法。有关更多信息,请参阅评估应用是否需要声明权限。
如果您的应用在 Google Play 上分发,您可以使用 Android vitals 来获取应用中拒绝权限的用户百分比。利用这些数据重新评估那些所必需权限最常被拒绝的功能的设计。
说明应用中的功能为何需要某项权限:请遵循推荐的流程来执行此操作。在需要时(而非应用启动时)请求权限,以便用户清楚地了解权限需求。
请注意,用户或系统可能会多次拒绝权限:Android 会通过忽略来自同一应用的权限请求来尊重用户的此项选择。
在无权限时优雅降级:当用户拒绝或撤销权限时,您的应用应能够优雅地降级——例如,如果用户未授予麦克风权限,则禁用语音输入。
移除不必要权限的访问权:更新应用时,请移除其对不再需要的运行时权限的访问权。
了解 SDK 或库所需的权限:如果您使用的 SDK 或库访问了受危险权限保护的数据,用户通常会将此归因于您的应用。请确保您了解您的 SDK 需要哪些权限及其原因。
检查清单:尽量减少位置信息的使用
关于用户位置的数据非常敏感;如果可能,请避免使用位置数据。如果您必须使用位置服务,请采取措施尽量减少位置数据的收集。使用以下检查清单来尽量减少应用对位置信息的使用。
在无位置数据时优雅降级:在 Android 10(API 级别 29)及更高版本中,用户可以将您的应用的位置访问权限限制为“仅在使用应用时”。请设计您的应用,使其在没有不间断位置访问权限时能够优雅降级。
使用附近的蓝牙或 Wi-Fi 设备:如果您的应用需要通过蓝牙或 Wi-Fi 将用户的设备与附近设备配对,请使用配套设备管理器 (companion device manager),它不需要位置权限。了解更多关于 蓝牙 和 Wi-Fi 权限的信息。
尽可能使用粗略位置精度:查看您的应用所需的位置粒度级别。粗略位置访问足以满足大多数与位置相关的用例。
仅在必要时在后台访问位置:如果您的应用需要后台位置(例如地理围栏),请确保用户能够清楚察觉。了解更多关于使用后台位置时的注意事项。
在应用对用户可见时访问位置数据:这让用户能够更好地理解您的应用为何请求位置信息。
不要从后台启动前台服务:考虑从通知启动应用,然后在应用 UI 可见时执行位置代码。如果您的应用必须在用户导航离开界面后保留位置访问权限以支持用户发起的一项持续任务,请在进入后台之前启动前台服务。
检查清单:安全处理数据
注意: 您可以在 Google Play 开发者政策中心的用户数据文章页面阅读更多关于哪些数据被视为敏感数据的信息。
在处理敏感数据时保持透明、安全和全面。使用以下检查清单作为指导,以在应用中更安全地处理用户数据。
审计数据访问:在 Android 11(API 级别 30)及更高版本中,执行数据访问审计以深入了解您的应用及其依赖项如何访问用户的隐私数据,从而更轻松地识别意外的数据访问。
声明软件包可见性需求:如果您的应用以 Android 11 或更高版本为目标平台,系统默认会使某些应用对您的应用不可见。了解如何使其他应用对您的应用可见。
支持分区存储:为了给用户更多控制权并限制文件混乱,以 Android 10(API 级别 29)或更高版本为目标的应用会自动获得对外部存储的分区访问权限,即分区存储 (scoped storage)。此类应用仅有权访问其自己的目录以及它们创建的媒体文件。了解如何迁移到分区存储。
使用用户可重置的标识符:为了保护用户隐私,请使用满足您用例的最严格标识符——请参阅本文档中的可重置标识符检查清单。
提供显著披露和征得同意:遵循 Google Play 用户数据政策最佳实践,向用户提供显著披露和征求同意请求。
声明应用的数据使用情况:正确填写 Google Play 管理中心的数据安全表单,向用户说明您的应用收集和共享哪些类型的用户数据。
安全地将敏感数据传递给其他应用:使用显式 Intent 将敏感数据传递给另一个应用。授予一次性数据访问权限以进一步限制其他应用的访问。
不要在 Logcat 消息或日志文件中包含敏感数据:了解更多信息。
注意: Jetpack 提供了多个库来保持应用数据的安全性。请在有关使用 Jetpack 安全库 (Jetpack Security library) 和 Jetpack 首选项库 (Jetpack Preferences library) 的指南中了解更多信息。
检查清单:使用可重置标识符
尊重用户隐私并使用可重置标识符。有关更多信息,请参阅唯一标识符的最佳实践。
不要访问 IMEI 或设备序列号:这些标识符是持久性的。如果以 Android 10(API 级别 29)或更高版本为目标的应用尝试访问这些标识符,将会引发 SecurityException。
仅将广告 ID 用于用户画像或广告用例:始终尊重用户在广告跟踪方面的偏好设置以实现个性化。重要提示:这是 Google Play 的要求。
使用私有存储的 GUID:对于绝大多数非广告用例,请使用私有存储的全球唯一 ID (GUID),该 ID 的作用域为应用级别。
在您拥有的应用中使用 SSAID:若要在您拥有的多个应用之间共享状态且无需用户登录账户,请使用 Android 安全设置 ID (SSAID)。了解更多关于如何在不同应用之间保存已注销用户的偏好设置的信息。
检查清单:支持面向用户的隐私功能
在处理敏感数据时保持透明、安全和全面。使用以下检查清单作为指导,以确保您的应用安全地处理用户数据。
提供访问敏感信息的理由:在 Android 12(API 级别 31)及更高版本中,用户可以访问系统设置中的“隐私信息中心”来了解有关应用何时访问位置、麦克风和相机信息的详细信息。了解更多关于向用户提供此说明的信息。
提示用户停用应用休眠:如果用户在几个月内未与以 Android 11(API 级别 30)或更高版本为目标的应用进行交互,系统会将该应用置于休眠状态。了解有关应用休眠以及如何要求用户将其停用的信息。
安全地将敏感数据传递给其他应用:如果您需要将敏感数据传递给另一个应用,请使用显式 Intent。授予一次性数据访问权限以进一步限制其他应用的访问。
直观地指示您的应用正在捕获音频或图像:即使当您的应用处于前台时,也要显示一个实时指示器,表明您正在从麦克风或相机进行捕获。注意:Android 9(API 级别 28)及更高版本不允许在您的应用处于后台时访问麦克风或相机。
隐私速查表
隐私速查表是 Android 中一些最有用的隐私 API 的快速参考,也是您在设计应用时应时刻牢记的最佳实践。
速查表也可以以 PDF 格式下载
浅色模式 PDF
深色模式 PDF