原生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)
上一篇 2022年6月19日 上午11:00
下一篇 2022年6月19日 上午11:16


相关推荐

  • Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)

    Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)目前支持更换yolov5的backbone主干网络为Ghostnet,以及采用eagleeye的剪枝方法支持对yolov5系列的剪枝。后续,将会添加更多更轻量,更优秀的主干网络,比如swintrans,…

    2022年8月16日
    11
  • totalcmd工具的主要功能_windows cmd 命令大全

    totalcmd工具的主要功能_windows cmd 命令大全一、Totalcmd配合7-Zip进行压缩、解压缩下载7z文件。可去官网下载安装版文件,再解压,只提取其中的7z.dll文件和7zG.exe文件再将其放在totalcmd\Utilities\7-Zip目录下。(注Utilities是我自己建的一个文件夹,用来存放一些可直接调用的小工具。)说明:虽说7-Zip有个叫7za.exe的命令行工具,但显示效果不佳…

    2025年8月3日
    14
  • 基于java的贪吃蛇游戏的设计与实现(贪吃蛇安卓游戏源码)

    一.前言某日,看见隔壁家的小朋友在玩一款网络爆款贪吃蛇游戏,感觉很好玩。自己刚好正在学习JAVA编程,也想实现一个类似功能的游戏Demo练手,在网上查看了不少源码案例,全都是很古老的方块式贪吃蛇游戏案例,没有想要的实现,因此自己动手实现一个JAVA版的贪吃蛇游戏。我在这个Dome完成之后重写了这个游戏的Android版,并重新更名为《蛇王传说》。也欢迎大家下载试玩。游戏下载地址:https…

    2022年4月18日
    81
  • grid web_DataGrid

    grid web_DataGrid首先安装Infragistics.NetAdvantage.for.ASP.NET.2007.Vol.2,然后在选择项中添加UltraWebGrid,使用方法如下:1、添加“总计”值绑定完数据后,添加如下代码UltraWebGrid1.Rows.Add();UltraWebGrid1.Rows.Add();…

    2022年10月6日
    7
  • RGB888与RGB565

    RGB888与RGB565真彩色是指图像中的每个像素值都分成 R 红 G 绿 B 蓝 三个基色分量 每个基色分量直接决定其基色的强度 这样产生的色彩称为彩色 彩色图像是一种用三个或更多字节描述像素的计算机图像存储方式 普遍认为人眼对色彩的分辨能力大致是一千万色 因此由 RGB888 形成的图像称作真彩色 RGB888 真彩色 每一色光以 8 位表示 每个通道各有 256 级阶调 三色光交互增减 RGB 三色光能在一个像素上最高显示 24

    2026年3月16日
    2
  • 机器学习模型评估的方法总结(回归、分类模型的评估)

    机器学习模型评估的方法总结(回归、分类模型的评估)建模的评估一般可以分为回归、分类和聚类的评估,本文主要介绍回归和分类的模型评估:一、回归模型的评估主要有以下方法:指标 描述 metrics方法 MeanAbsoluteError(MAE) 平均绝对误差 fromsklearn.metricsimportmean_absolute_error MeanSquareError(MSE) …

    2022年10月6日
    7

发表回复

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

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