看了很多sdcard的文章,为方便自己查看,特把自己看的有些英文翻译记录一下。翻到最后,翻不下去了。
有翻译不对的地方,请指出。
原文:https://source.android.com/devices/storage/#multiple-external-storage-devices
开篇文 Android supports devices with external storage, which is defined to be a case-insensitive filesystem with immutable POSIX permission classes and modes. External storage can be provided by physical media (such as an SD card), or by exposing a portion of internal storage through an emulation layer. Devices may contain multiple instances of external storage.
翻译:
安卓支持设备携带外置存储,这些外部存储被定义为区分大小写的文件系统,
并且这些文件系统有不可变的系统权限级别和模式。物理媒体(例如一个sd card)可以作为
外部存储,或者通过模拟平台暴露一个内部存储作为一个外部存储。设备能包含多种
外部存储实例。
访问外部由多种安卓权限保护。有android1.0 开始,写权限保护是WRITE_EXTERNAL_STORAGE权限,
从android4.1开始,读权限保护是READ_EXTERNAL_STORAGE权限。
从android4.4开始,外部存储设备文件的所有者,组和模式现在是基于目录结构合成的。这
能是应用他们在外置卡上管理自己特定的包的目录不再需要保持WRITE_EXTERNAL_STORAGE
权限。例如,应用的包名为com.example.foo可以自由的访问外置存储设备上的
Android/data/com.example.foo/ 目录,而不再需要权限。合并权限是通过在虚拟FUSE中
包装raw存储设备完成的。
因为外部存储提供最低限度的存储数据保护,所以系统编码不应该在外部存储上存储敏感数据。
特别说明,配置文件和日志文件应该只存储在内部存储能获得有效的保护。
多样的外部存储设备。
从android4.4以后,多样的外部存储设备通过Context.getExternalFilesDirs(),
Context.getExternalCacheDirs(), 和 Context.getObbDirs()提供给开发者。
外部存储设备通过使用这些apis必须是设备的半永久式的部分(例如一个在电池部位
的一个sd card 卡槽)。开发者期待数据存储在这些位置的数据是在很长一段时间内
是可获得的。基于这个原因,临时的存储设备(例如usb 大容量存储设备)不应该
是使用这些apis。
WRITE_EXTERNAL_STORAGE 权限必须只有授权写访问到设备的的主外部存储。应用不能被
允许写入第二个外部存储设备。除非在他们的由合并权限的允许的特定的包目录下。通过
这种方式闲着写能确保系统能够在应用卸载的时候彻底清除文件。
多用户外部存储
从android4.2开始,设备支持多用户,外部存储必须满足下面的约束
1.每个用户必须有他们自己独立的主外部存储,决定没有权限访问其他用户的主外部存储。
2./sdcard 路径必须制定到正确的特定用户的主外部存储,基于一个正在运行的用户进程。
3.一个优化,在Android/obb文件见下存储大的OBB文件可以被不同的用户分享。
4.二级外部存储不能被应用写操作,除非在是由合并权限允许的特定包的路径。
实现这种特征的默认平台利用linux核心命名空间来为每一个Zygote-forked process创建
独立的挂载表,然后使用绑定挂载,提供正确的特定用户的主外部存储到私人命名空间。
启动的时候,系统挂载一个单独的虚拟外部存储FUSE守护进程EMULATED_STORAGE_SOURCE
这是隐藏的应用。在Zygote-forked之后,他绑定挂载到适当的特定用户子目录从FUSE守护进程
下面到EMULATED_STORAGE_TARGET,因此能为应用正确获得外部存储路径。因为一个应用缺少
其他用户存储的可访问的挂载点,他们只能访问开启它的用户的存储。
为了传播挂载事件从默认的root命名空间到应用命名空间,实现也使用共享子树kernel特征。
他能确保像ASEC容器和OBB能够持续正确工作的特性。
在每次Zygote命名空间创建后,它通过共享挂载rootfs,然后作为slave卸载来达成。
相关推荐
在Android系统中,外置SDCard(也称为外部存储)是设备上用于扩展存储空间的区域,用户可以在这个空间上存储各种数据,如媒体文件、应用程序数据等。本篇文章将详细探讨如何在Android应用中实现对外置SDCard的读取、...
在Android系统中,外置SDcard,也常被称为TF卡,是用户扩展手机存储空间的主要方式之一。TF卡可以通过适配器转化为标准的SD卡,适用于各种设备,包括Android智能手机和平板电脑。本文将详细讲解如何在Android设备上...
Android获取内置sdcard跟外置sdcard路径 Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有...
Android 8.0 读取内部和外部存储以及外置SDcard的方法 Android 8.0 的存储空间主要有三种:app 自己的私有目录、/sdcard(internal storage)和外置SDcard(removable storage)。在 Android 8.0 中,读取内部和...
Android之内置和外置sdcard路径显示并且写入数据的方法 Android系统中,sdcard是用户存储数据的重要组件。在Android开发中,sdcard的路径显示和写入数据是常见的需求。今天,我们将讨论Android之内置和外置sdcard...
在Android系统中,管理外部存储...总的来说,删除Android外置SD卡上的文件涉及文件操作、权限管理和异常处理等多个方面。正确地使用`deleteFile`方法和其他相关工具,能够帮助开发者有效地管理Android应用的文件存储。
本话题主要关注如何统计SDCard的存储大小,包括内置SDCard和外置SDCard,以及USB存储设备的容量。统计这些信息对于了解设备的存储状况,管理应用程序和数据,以及优化存储空间的使用至关重要。 首先,我们要理解...
在提供的文件名列表中,有一个名为`Day02_store_1(外置sdcard)`的文件,这可能是一个关于如何在外部存储上存储数据的案例。虽然题目主要关注内部存储,但了解外部存储也是重要的。在外部存储上存储文件需要以下步骤...
根据提供的文件夹名"Day02_store_2(外置sdcard)",这可能是一个关于在Android设备外部存储(外置SDcard)的存储案例。尽管如此,由于Android系统对内置SDcard2的访问与外置SDcard不同,通常情况下,应用会使用相同的...
Android 存储设备挂载流程详解 Android 存储设备挂载流程是一个复杂的过程,其中涉及到多个组件和模块的协作。在 Android 系统中,存储设备挂载流程可以分为手动挂载和自动挂载两个部分。本文将着重分析自动挂载...
标题所提到的“Fix安卓4.4 扩展sdcard 不能写补丁”正是为了解决这个问题而设计的。 该补丁的目的是恢复SD卡的写入功能,使用户在4.4版本的安卓系统上能够像以前那样正常使用tf卡进行数据存储和编辑。描述中指出,...
在Android 6.0(API级别23)及更高版本中,系统对存储访问进行了权限管理,因此获取外置SD卡路径前,需要确保在`AndroidManifest.xml`中添加了相应的权限: ```xml <uses-permission android:name="android....
在Android 5.1版本中,系统对外置SD卡(二级外部存储设备)的写入权限进行了严格的限制,主要是为了提高系统的安全性和用户隐私保护。默认情况下,只有主要的外部存储(通常是内置存储)才被授予`WRITE_EXTERNAL_...
在Android系统中,读取SDCard(外部存储)上的照片是一项常见的操作,特别是在开发一个相册应用时。这里,我们主要关注如何通过ListView、GridView和Gallery组件来展示这些照片。 首先,我们需要理解Android的文件...
总之,要实现4.0以上版本对Android外置SD卡的读写操作,需要获取适当的权限,了解如何获取SD卡路径,并使用正确的API进行文件操作。随着Android系统的更新,需要注意适配新的存储策略,如Android Q的Scoped Storage...
android 未提供获取外置SD储存卡的相应函数或方法。当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,我拿三星s3试试,全是都只找到内置SD卡,后来...
安卓手机系统备软件 第一次使用钛备份的朋友,可以试着...接着按返回键(手机底部四大金刚中的那个返回键)按钮逐层回退,然后选择sdcard-ext/TitaniumBackup即可(没有 TitaniumBackup文件夹的请自行创建一个):