当前位置:首页>行业动态> 正文

安卓存储结构图

安卓存储结构图解析

内部存储(Internal Storage)

路径说明访问权限
/data/data/<package_name>应用私有目录,存储应用数据库、SharedPreferences、文件等仅限本应用访问
/data/data/<package_name>/cache应用缓存目录,系统可自动清理仅限本应用访问
/data/data/<package_name>/files应用内部文件存储目录(通过openFileOutput写入)仅限本应用访问
/data/data/<package_name>/databases应用数据库文件存储目录仅限本应用访问
/data/data/<package_name>/shared_prefs应用SharedPreferences文件存储目录仅限本应用访问

外部存储(External Storage)

路径说明访问权限
/storage/emulated/0虚拟外部存储根目录(兼容旧设备/mnt/sdcardREAD_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE权限(Android Q+需特殊处理)
/storage/emulated/0/Android系统保留目录,包含data(应用专属目录)和obb(扩展资源包)仅限系统和应用自身访问
/storage/emulated/0/Pictures公共图片目录需存储权限
/storage/emulated/0/Downloads下载文件目录需存储权限
/storage/emulated/0/DCIM相机拍摄图片/视频目录需存储权限

系统目录

路径说明访问权限
/system系统核心文件(ROM)仅Root或系统进程可写
/vendor厂商定制文件(SoC驱动等)仅Root或系统进程可写
/proc进程信息虚拟文件系统只读
/sys内核参数配置接口只读
/dev设备文件目录仅限系统进程访问

特殊用途目录

路径说明访问权限
/cache系统级缓存目录(如APK安装包临时存储)仅限系统进程写入
/etc系统配置文件只读
/sbin系统工具(如恢复模式相关)仅限Root执行

相关问题与解答

Q1:Android Q(API 29)后如何访问外部存储的共享目录?
A1:Android Q引入Scoped Storage,应用默认只能访问自己的外部存储空间(/storage/emulated/0/Android/data/<package_name>),若需访问公共目录(如Downloads),需:

安卓存储结构图  第1张

  1. AndroidManifest.xml中声明MANAGE_EXTERNAL_STORAGE权限(需用户手动授权);
  2. 或使用Storage Access Framework(如Intent.ACTION_OPEN_DOCUMENT_TREE)获取文件URI。

Q2:应用如何存储临时文件以避免被系统清理?
A2:

  • 内部存储缓存:使用getCacheDir()获取路径(/data/data/<package>/cache),系统卸载应用时会自动删除;
  • 外部存储缓存:写入/storage/emulated/0/Android/data/<package>/cache,需声明WRITE_EXTERNAL_STORAGE权限;
  • 注意事项
    • 不要将重要文件存入缓存目录;
    • Android系统可能会在存储空间不足时清理