Android 10分区存储介绍及百度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)MediaStore API在共享目录指定目录下创建文件或者访问应用自己创建文件,不需要申请存储权限

(2)MediaStore API访问其他应用在共享目录创建的媒体文件(图片、音频、视频), 需要申请存储权限,未申请存储权限,通过ContentResolver查询不到文件Uri,即使通过其他方式获取到文件Uri,读取或创建文件会抛出异常;

(3)MediaStore API不能够访问其他应用创建的非媒体文件(pdf、office、doc、txt等), 只能够通过Storage Access Framework方式访问;

1.4 其他受影响变更

(1) 图片位置信息 一些图片会包含位置信息,因为

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值