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

安卓存储的文件

安卓存储文件含系统分区(OS核心 文件、驱动等)和数据分区(应用数据、数据库等),外部存储如SD卡存多媒体等,应用安装目录在/data/app,含APK及应用专属文件,各部分因版本和定制可能有

安卓存储文件的基本结构

安卓系统的存储分为多种类型,主要包括:

  • 内部存储(Internal Storage):设备内置的闪存空间,包含系统分区和应用私有数据。
  • 外部存储(External Storage):可移动存储介质(如SD卡)或集成的共享存储空间。

内部存储

路径 说明
/data/data/包名 应用私有目录,存储应用安装文件、数据库、缓存等。
/storage/emulated/0 虚拟的“内部存储”挂载点,实际指向外部存储的根目录。

外部存储

路径 说明
/storage/self_primary Android 10+ 的原生外部存储路径(不可移除存储)。
/mnt/media_rw/SD卡名称 SD卡的挂载路径(需物理插入SD卡)。

常见存储目录与用途

目录路径 用途
/sdcard/DCIM 相机拍摄的图片/视频默认存储位置。
/sdcard/Pictures 手动保存的图片或截图。
/sdcard/Download 浏览器、应用下载的安装包或文件。
/sdcard/Android/data/包名 应用在外部存储中的私有数据目录(需应用主动创建)。
/sdcard/Android/obb 应用扩展文件(如游戏资源包)。

存储权限与访问规则

权限组

  • READ_EXTERNAL_STORAGE:读取外部存储文件。
  • WRITE_EXTERNAL_STORAGE:写入或删除外部存储文件。
  • MANAGE_EXTERNAL_STORAGE(Android 11+):管理所有外部存储文件的权限。

运行时权限

  • Android 6.0+ 需动态申请权限。
  • Android 10+ 引入“分区存储”(Scoped Storage),应用默认只能访问自身创建的文件。

特殊目录限制

  • /Android/data/ 下的文件需对应应用安装后才能访问。
  • 系统目录(如 /system)需 root 权限才能修改。

存储文件的管理方式

通过文件管理器

  • 内置文件应用可访问公共目录(如 DCIM、Download)。
  • 第三方文件管理器(如 ES 文件浏览器)可访问应用私有目录(需授权)。

通过 ADB 命令

# 查看内部存储文件
adb shell ls /data/data/包名/files
# 查看外部存储文件
adb shell ls /sdcard/Download

通过代码访问

// 获取应用外部存储目录
File externalDir = getExternalFilesDir(null); // Android 4.4+

常见问题与解决方案

问题 原因 解决方案
应用安装后找不到文件 文件存储在应用私有目录或外部存储的特定路径。 使用文件管理器或 ADB 查找对应路径。
Android 10+ 无法直接访问外部文件 分区存储限制,应用默认只能访问自有文件。 使用 ACTION_OPEN_DOCUMENT 或请求 MANAGE_EXTERNAL_STORAGE 权限。
SD卡文件丢失 SD卡被卸载或格式化。 定期备份重要文件到内部存储或云存储。

相关问题与解答

问题1:如何访问其他应用在外部存储中的私有数据?

解答
Android 10+ 默认禁止应用直接访问其他应用的外部存储数据,若需共享文件,可通过以下方式:

  1. 使用 ACTION_OPEN_DOCUMENT 让用户手动选择文件。
  2. 请求 MANAGE_EXTERNAL_STORAGE 权限(需谨慎使用,可能被应用商店拒审)。

问题2:为什么 Android 11+ 的 SD卡插入后无法显示文件?

解答
Android 11+ 对外部存储(如 SD卡)加强了沙盒限制:

  • SD卡必须格式化为“内部存储”或“便携存储”。
  • 若设置为“便携存储”,需通过 Storage Access Framework 访问文件。
  • 若设置为“内部存储”,则与手机存储合并,但仍需遵守分区存储规则