看了很多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卸载来达成。
相关推荐
获取外置SDcard路径,进行创建,写入,读取,删除操作。
android手机外置SDcard(TF卡)获取方法,非内置sdcard!
Android获取内置sdcard跟外置sdcard路径 Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有...
用deleteFile方法则可以删除sd卡上的文件
Android数据存储(内置sdcard)案例1
今天小编就为大家分享一篇Android 8.0 读取内部和外部存储以及外置SDcard的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
今天小编就为大家分享一篇Android之内置和外置sdcard路径显示并且写入数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
统计SDCard的存储大小,总的与可用的,包含内置SDCard与外置SDCard,已经USB存储
android 未提供获取外置SD储存卡的相应函数或方法。当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,我拿三星s3试试,全是都只找到内置SD卡,后来...
读取sdcard里面的图片,有观看模式设置,分别以listview,gridview,gallery来显示。
安卓手机系统备软件 第一次使用钛备份的朋友,可以试着...接着按返回键(手机底部四大金刚中的那个返回键)按钮逐层回退,然后选择sdcard-ext/TitaniumBackup即可(没有 TitaniumBackup文件夹的请自行创建一个):
Unity程序获取外置SD卡路径方法,包内包含PicoVR SDK,场景安装打包在手机上,可以看到分屏反畸变效果。
我们可以通过StorageManager来获取多个外置sdcard,代码如下: StorageManager storageManager = (StorageManager) cxt.getSystemService(Context.STORAGE_SERVICE); try { Method method = StorageM
* 6.0获取外置sdcard和U盘路径,并区分 * @param mContext * @param keyword SD = 内部存储; EXT = SD卡; USB = U盘 * @return */ public static String getStoragePath(Context mContext,String keyword) { ...
Android 获取SD卡路径: 外置sd卡路径,也许很多同学在平时的工作中并不会用到,因为现在很多机型都不支持外置sd卡(这也是Google目标),所以并不用考虑外置sd卡的路径问题。除了开发文件管理类的应用之外,其他应用...
该资源功能亮点是可以对4.0以上的外置sd卡进行读写操作,同时附上获取外置sd卡路径的代码。
这是一个android音乐播放器的实例,下载即可运行,MediaPlayer类的使用,所有的音乐从sdcard中读取,综合了android的四大组件,掌握了这个项目,相信你的android会得到很大的提升。