
Android 10适配:分区存储与文件权限变化详解
218KB |
更新于2024-09-04
| 80 浏览量 | 举报
收藏
本文档是一篇关于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的适配不仅仅是技术层面的调整,还涉及到用户隐私和文件管理的最佳实践,开发者需要理解新规则并相应地更新代码,以确保应用在新系统上的稳定运行。在这个过程中,持续学习和跟进官方文档是非常关键的。
相关推荐









weixin_38629391
- 粉丝: 4
最新资源
- 免费获取7款无需解压码的JAVA小游戏源代码
- MSN邮箱邀请功能深度解析
- C#图书管理系统全面文档:设计、分析到测试
- 利用Struts打造简易图书管理系统
- 一键封装工具标准版5.0.0707:傻瓜式系统封装解决方案
- ASP无组件上传实现:限制大小、路径及格式
- 掌握.NET Remoting技术:远程对象通信原理
- 不依赖IIS的最小ASP服务器运行方案
- Mini日历卡:Java源码实现万年历与日志管理
- JDBC常用依赖JAR包详细介绍
- Struts2必备包下载指南
- 深入探索Oracle数据库管理技术
- C++实现基于LR1方法的条件语句编译与四元式生成
- ArcEngine开发入门:掌握基础与最新资料
- FireBird数据库视图界面的第三方工具介绍
- EXT 2.2源码解析及中文手册指南
- C/C++开发的手机话费管理系统教程
- Foxit Reader Pro 3.0与PDF Editor 2.0简体中文增强版发布
- Struts框架打造简易新闻发布平台
- 搜狗皮肤独家系列:仙剑&花渡深度赏析
- 仓储管理系统的优化与客户关系集成
- 探索Delphi Indy 10.2.3版本的核心功能与支持
- ant3中文用户手册发布
- C语言编写的歌曲信息管理系统修订版发布