Android File System

安卓手机,平板电脑(android tablet)以及其他设备大多有 6 种分区
partitions:/boot,/system,/recovery,/data,/cache,/misc

此外,SD Card Fie System Partitions还有/sdcard和/sd-ext


安卓存储分区

  1. 内部存储
    /data/data/your.package/
    应用私有目录,只有自己能够访问,会随着应用卸载被删除

  2. 公共外部存储
    /storage/emulated/0 /sdcard
    所有应用都可以访问的公共空间,不会随着应用卸载被删除。

  3. 私有外部存储
    /storage/emulated/0/Android/data/your.package/
    应用私有目录,只有自己能够访问,会随着应用卸载被删除.

Android中主要的存储分区有/data /storage /sdcard


data

内部存储分区

Android应用会安装到该分区,执行恢复出厂设置时会清空该分区
/data 会包含两个目录/data和/app

  1. /app

存储所有应用包的apk文件,base.apk

  1. /data

每个应用的私有存储目录,根据包名区分
会有缓存的文件(表情包)和db文件


storage

外部存储分区

包含两个目录emulated/, self/

  1. emulated/
    用户外部存储

  2. self/
    当前用户标识符, 是Android 4.2+多用户中的用户
    **/storage/emulated/0/ 实际上是指向手机内部存储(区别手机SdCard)虚拟文件路径(Linux中一切皆文件)。**所以/storage/emulated/0/xxx直接在手机内部存储根目录下查找xxx即可。

个人理解,手机未root时,存储管理显示0目录以下的子目录,root后会显示/既是data分区所表示的内部存储分区


sdcard

存储卡

/sdcard/ 和 mnt/sdcard都是Android6.0+上的**/storage/self/primary的链接符号(虚拟的)** ./sdcard最终链接到/storage/emulated/0,/sdcard分区是从固定存储上分割的主外部存储,如果你还有另外一张真实的物理SdCard,那么它会作为第二外部存储被划分到/storage分区。

左边是符号链接,右半部分是实际物理目录

 /sdcard ---> /storage/self/primary
 /mnt/sdcard ---> /storage/self/primary
 /storage/self/primary ---> /mnt/user/0/primary
 /mnt/user/0/primary ---> /storage/emulated/0

也有一种说法,/sdcard/符号链接,/storage/emulated/0/实际路径,

实际文件位于中的文件系统中/data/media,然后将其挂载到/storage/emulated/0


参考链接:
https://www.jianshu.com/p/4fd23c4a1173

https://qastack.cn/android/205430/what-is-storage-emulated-0

https://android.stackexchange.com/questions/214288/how-to-stop-apps-writing-to-android-folder-on-the-sd-card/218469#218469

Logo

智屏生态联盟致力于大屏生态发展,利用大屏快应用技术降低开发者开发、发布大屏应用门槛

更多推荐