原创:HuangBo-OEM 百度APP技术团队
前言
1.分区存储背景介绍
Google于 2019年9月3日发布了Android10 release版本,为了更好的保护用户数据并限制设备冗余文件增加,Android 10版本变更了设备外部存储访问方式,外部存储新特性称为分区存储(Scoped Storage), 分区存储遵循以下三个原则对外部存储文件访问方式重新设计,便于用户更好的管理外部存储文件。
1.1 文件更好的归属:
系统记录文件由哪个应用创建,应用不需要存储权限即可以访问应用自己创建文件
1.2 应用数据保护:
添加外部存储应用私有目录文件访问限制,应用即使申请了存储权限也不能访问其他应用外部存储私有目录文件
1.3 用户数据保护:
添加pdf、office、doc等文件的访问限制,用户即使申请了存储权限也不能访问其他应用创建的pdf、office、doc等文件
2.应用兼容模式
分区存储存在一定的适配成本,Google为Android10版本提供了过渡方案,设置应用以兼容模式运行(详见2.3), Android11将不再支持该行为, 各应用需要在Android11发版之前完成分区存储适配工作。
分区存储新特性介绍
1.分区存储概览
1.1 分区存储新特性对外部存储进行了重新设计,外部存储被分为应用私有目录以及共享目录两个部分
(1)应用私有目录:存储应用私有数据,外部存储应用私有目录对应Android/data/packagename,内部存储应用私有目录对应data/data/packagename;
(2) 共享目录:存储其他应用可访问文件, 包含媒体文件、文档文件以及其他文件,对应设备DCIM、Pictures、Alarms, Music, Notifications,Podcasts, Ringtones、Movies、Download等目录。
1.2 应用私有目录文件访问
应用私有目录文件访问方式与之前Android版本一致,可以通过file path获取资源。
1.3 共享目录文件访问
共享目录文件需要通过MediaStore API或者Storage Access Framework方式访问
(1)Med