file-type

Android 10适配:分区存储与文件权限变化详解

PDF文件

218KB | 更新于2024-09-04 | 80 浏览量 | 0 下载量 举报 收藏
download 立即下载
本文档是一篇关于Android 10适配的详细攻略总结,相比于Android 9,Android 10带来了显著的变化,特别是关于Scoped Storage(分区存储)的新功能。作者花费两天时间撰写,强调了适配过程的重要性和复杂性。 首先,适配工作开始于将项目中的`targetSdkVersion`设置为29,这是Android 10的API级别。Scoped Storage是核心改动,旨在解决之前版本中文件权限滥用导致的手机存储问题。开发者之前可以在任意时间请求外部存储的读写权限,这导致了存储空间的混乱,卸载应用后文件也未被清理。在Android 10中,外部存储访问变得更加严格: - 外部存储与内部存储:外部存储通常指的是`/storage`或`/mnt`,而内部存储则在`/data`下,如应用的`getFilesDir()`和`getCacheDir()`路径。内部存储对应用自身拥有更灵活的控制,卸载应用后文件会被自动删除。 - Scoped Storage规则:外部存储被划分为三个区域: - 特定目录(App-specific):使用`getExternalFilesDir()`或`getExternalCacheDir()`,无需额外权限,卸载应用时会被清理。 - 媒体文件(如照片、视频):通过MediaStore访问,可能需要`READ_EXTERNAL_STORAGE`权限,尤其是访问其他应用的媒体。 - 其他目录:使用Storage Access Framework (SAF)进行访问,对权限有更复杂的管理。 - 适配挑战:尽管旧有的读写权限依然可用,但作者不建议依赖这个临时解决方案,因为Google计划在后续版本中移除`android:requestLegacyExternalStorage="true"`选项,强制所有应用适应新的外部存储规则。 Android 10的适配不仅仅是技术层面的调整,还涉及到用户隐私和文件管理的最佳实践,开发者需要理解新规则并相应地更新代码,以确保应用在新系统上的稳定运行。在这个过程中,持续学习和跟进官方文档是非常关键的。

相关推荐