Android 是一种流行的操作系统,允许用户在其设备上存储和访问各种类型的文件。但是,并非所有应用程序都需要或应该有权访问外部存储上的所有文件。为了保护用户隐私和设备安全,Android 引入了一种称为范围存储的新存储模型。
分区存储限制应用程序对外部存储上特定目录和媒体类型的访问。应用程序只能在其应用程序特定的目录中读取和写入自己的文件,并且需要权限才能访问其他应用程序的媒体文件。应用程序还可以使用MediaStore API访问常见的媒体类型,例如照片、视频和音频。
范围存储是在 Android 10 中引入的,但应用可以通过在其清单文件中设置requestLegacyExternalStorage标志来选择退出。但是,从 Android 11 开始,所有以 API 级别 30 或更高级别为目标的应用都强制执行分区存储。面向较低 API 级别的应用程序仍然可以通过启用一些应用程序兼容性标志来使用分区存储。
范围存储还支持用户空间中的文件系统 (FUSE),它允许应用程序使用直接文件路径而不是使用MediaProvider API来访问文件。FUSE 拦截用户空间中的文件操作,并根据允许、拒绝或编辑访问的策略应用范围内的存储规则。
分区存储为用户和开发人员提供了许多好处。它通过防止应用程序在未经明确同意的情况下访问敏感文件或个人文件来改善用户控制和隐私。它还通过在卸载应用程序时删除特定于应用程序的文件来减少文件混乱并释放设备空间。对于开发人员而言,分区存储简化了文件管理并减少了跨不同设备和平台的兼容性问题。
要了解有关分区存储以及如何迁移您的应用程序以使用它的更多信息,您可以参考Android 开发人员的官方文档和指南。如果您有任何问题或反馈,请发表评论。