Android 应用数据分布目录结构解析
在Android系统中,/data目录下的几个关键路径有不同的用途,主要涉及应用数据存储和用户媒体文件管理,具体如下:
1. /data/user/0/
-
路径别名:等同于
/data/data/
(旧路径,仍兼容)。 -
用途:存储应用私有数据,每个应用在自己的包名目录下拥有独立空间。
-
特点:
-
子目录如
shared_prefs/
、databases/
、cache/
等存放应用配置、数据库、临时文件等。 -
访问权限严格,仅应用自身(或root用户)可读写。
-
Android 7.0+ 支持多用户,
/data/user/0/
对应主用户(用户0),其他用户依次为1
,2
等。
-
2. /data/user_de/0/
-
用途:存储设备加密(DE, Device Encrypted)的应用数据。
-
特点:
-
数据在设备启动后立即可用(无需用户解锁),适用于关键系统服务(如电话、短信)。
-
与用户加密(CE, Credential Encrypted)的
/data/user/0/
不同,DE数据安全性较低。 -
主要用于企业场景或系统级应用。
-
3. /data/media/0/Android/data/
-
路径关系:实际指向内部存储的模拟SD卡路径
/storage/emulated/0/Android/data/
。 -
用途:存储应用的公共外部数据,按包名隔离。
-
特点:
-
应用卸载时,对应目录自动删除。
-
无需权限即可访问自身目录;Android 11+ 限制其他应用访问。
-
适合存放大型文件(如游戏资源、下载内容)。
-
4. 其他目录
以下目录不一定所有应用都有,上面的三个目录是基础目录
/data/media/0/Android/obb/
/data/media/0/Android/media/
了解目录结构有很多好处,例如,博主在做应用还原时,因为做的是全量还原更新,所以,出现了已登录的账号信息,执行还原后,账号信息丢失问题,这里采取的方案是,还原时,涉及账号信息的目录不进行还原覆盖,如下是涉及账号信息的目录:
/data/user/0/<package_name>/shared_prefs/
/data/user/0/<package_name>/databases/
/data/user/0/<package_name>/files/