原生android系统官网 source.android.com,存储  |  Android 开源项目  |  Android Open Source Project…「建议收藏」

原生android系统官网 source.android.com,存储  |  Android 开源项目  |  Android Open Source Project…「建议收藏」Android一直在不断发展,可支持各种存储设备类型和功能。所有Android版本均支持配有传统存储(包括便携式存储和模拟存储)的设备。便携式存储是指物理介质(如SD卡或USB设备),用于进行临时数据传输/文件存储。物理介质可以随设备一起保留更长时间,但并非固定在设备上,可以移除。自Android1.0开始,SD卡已可用作便携式存储;Android6.0增加了对USB…

大家好,又见面了,我是你们的朋友全栈君。

21ab96cc3cfbfa06eb9891be93fd22b2.png

Android 一直在不断发展,可支持各种存储设备类型和功能。所有 Android 版本均支持配有传统存储(包括便携式存储和模拟存储)的设备。便携式存储是指物理介质(如 SD 卡或 USB 设备),用于进行临时数据传输/文件存储。物理介质可以随设备一起保留更长时间,但并非固定在设备上,可以移除。自 Android 1.0 开始,SD 卡已可用作便携式存储;Android 6.0 增加了对 USB 的支持。模拟存储可通过将部分内部存储暴露于模拟层来实现存储,此功能从 Android 3.0 开始便已受到支持。

从 Android 6.0 开始,Android 支持可合并的存储设备,这种存储设备是指可以像内部存储设备那样进行加密和格式化的物理介质(例如 SD 卡或 USB 设备)。移动存储设备可存储各类应用数据。

权限

对外部存储设备的访问受各种 Android 权限的保护。从 Android 1.0 开始,写入访问采用 WRITE_EXTERNAL_STORAGE 权限保护。从 Android 4.1 开始,读取访问采用 READ_EXTERNAL_STORAGE 权限保护。

从 Android 4.4 开始,外部存储设备上的文件所有者、组和模式根据目录结构合成。这样,应用可在外部存储设备上管理其特定文件包的目录,而无需获得广泛的 WRITE_EXTERNAL_STORAGE 权限。例如,文件包名称为 com.example.foo 的应用现在可以自由访问外部存储设备上的 Android/data/com.example.foo/,没有权限限制。通过将原始存储设备封装在 FUSE 守护进程中,可实现此类合成权限。

从 Android 10 开始,以 Android 9 及更低版本为目标平台的应用默认使用旧版存储,并且可以选择使用隔离存储。以 Android 10 为目标平台并默认使用隔离存储的应用可以暂时选择停用隔离存储。使用控制存储模型的清单属性

由于 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限均受到软性限制,因此,如果安装程序未将应用列入白名单,则权限仅能控制对听觉和视觉集合的访问,而无权访问 SD 卡。这在应用旧版存储时也同样适用。如需详细了解硬性限制和软性限制,请参阅 Android 10 中的硬性限制和软性限制。

如果安装程序将该权限列入白名单,则以旧模式运行的应用将获得非隔离权限行为。该权限可控制 SD 卡访问权限,以及听觉和视觉集合。如果应用以 Android 9 或更低版本为目标平台且不选择使用隔离存储,或者以 Android 10 为目标平台且选择停用隔离存储,就会出现这种情况。

白名单状态只能在安装时指定,并且在应用安装完成后才能更改。

运行时权限

Android 6.0 引入了一种新的运行时权限模式,在该模式下,应用可在运行时根据需要请求功能。由于新模式包含 READ/WRITE_EXTERNAL_STORAGE 权限,因此平台需要动态授予存储访问权限,而不会终止或重启已运行的应用。通过维护所有安装存储设备的三个不同视图可实现该模式:

/mnt/runtime/default 向无特殊存储权限的应用以及 adbd 和其他系统组件所在的根命名空间显示

/mnt/runtime/read 向具有 READ_EXTERNAL_STORAGE(针对 Android 10 设置 LEGACY_STORAGE)的应用显示

/mnt/runtime/write 向具有 WRITE_EXTERNAL_STORAGE 的应用显示

在 Zygote 进行 fork 操作时,我们会为各运行应用创建装载命名空间,并将相应的初始视图挂载到位。稍后,在授予运行时权限后,vold 将跳转到已运行应用的装载命名空间,并将升级后的视图挂载到位。请注意,权限降级定会导致应用被终止。

用于实现此特性的 setns() 功能至少需要运行 Linux 3.8,但补丁程序已反向移植至 Linux 3.4。PermissionsHostTest 测试可用于验证内核行为是否正确。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • seo绩效考核指标_kpi考核三大指标内容

    seo绩效考核指标_kpi考核三大指标内容想要知道SEO优化有没有效果,都是需要以网站数据为前提的,包括网站收录情况、关键词排名情况、网站流量的多少及网站访客转化情况等,来算出最终的投入产出比是多少。一、内容页面关键词排名考核指标利用原创内容矩阵可以实现对某一类长尾关键词的覆盖,也是达成目标的一个基础手段,为此你可以在数据监测软件中对这部分关键词进行定期跟踪,确保达到预期效果。二、外链的数量与质量高质量的原创内容是获取高质量外链的…

    2022年9月18日
    0
  • DB2错误代码_db2错误码57016

    DB2错误代码_db2错误码570161前言作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写SQL语句的时候,难免遇到各种问题。例如,当咱们看着数据库报出的一大堆错误代码时,是否有种两眼发蒙的感觉呢?咳咳,莫要否认,你有、我有,全都有啊!不过,值得庆幸的是,已经有人帮咱们整理出一份关于DB2的错误代码大全啦,以后再遇到数据库报错,直接拎出看看,岂不爽哉?当然,在此对原作者送上万分的感谢。2错误

    2022年9月17日
    0
  • js 生成二维码并点击下载软件_js生成二维码并保存

    js 生成二维码并点击下载软件_js生成二维码并保存html部分<h1>文字生成二维码及生成可下载的图片</h1><div><inputid=”input”value=”http://www.baidu.com”type=”text”><buttontype=”button”onclick=”refresh()”>生出来</button></div><divid=”output”><!–这里放canvas格式的二维

    2022年10月18日
    0
  • 外汇百科

    外汇百科
    外汇百科名片  外汇
    外汇是以外币表示的用于国际结算的支付凭证。国际货币基金组织对外汇的解释为:外汇是货币行政当局(中央银行、货币机构、外汇平准基金和财政部)以银行存款、财政部库券、长短期政府证券等形式所保有的在国际收支逆差时可以使用的债权。包括:外国货币、外币存款、外币有价证券(政府公债、国库券、公司债券、股票等)、外币支付凭证(票据、银行存款凭证、邮政储蓄凭证等)。
    目录简介外汇市场TransMarket集团FXSolutionsIFX与IFX(俗称FXSOL)?FX

    2022年9月10日
    0
  • 自顶向下 | 带你遨游运输层

    自顶向下 | 带你遨游运输层

    2022年2月13日
    41
  • 无人驾驶汽车系统入门(二)——高级运动模型和扩展卡尔曼滤波

    无人驾驶汽车系统入门(二)——高级运动模型和扩展卡尔曼滤波前言:上一篇文章的最后我们提到卡尔曼滤波存在着一个非常大的局限性——它仅能对线性的处理模型和测量模型进行精确的估计,在非线性的场景中并不能达到最优的估计效果。所以之前为了保证我们的处理模型是线性的,我们上一节中使用了恒定速度模型,然后将估计目标的加减速用处理噪声来表示,这一模型用来估算行人的状态其实已经足够了,但是在现实的驾驶环境中,我们不仅要估计行人,我们除了估计行人状态以外,我们还需要估计其他

    2022年6月29日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号