上一篇
安卓存储格式是什么
- 行业动态
- 2025-04-23
- 4749
安卓存储格式包括SQLite数据库(.db)、文件系统(标准文件)、SharedPreferences(XML)
安卓存储格式详解
文件系统格式
安卓系统基于Linux内核,默认使用EXT4文件系统格式,支持以下特性:
- 日志式文件系统:提高数据写入性能,支持延迟分配。
- 兼容Linux权限:支持用户、组、其他用户的读写执行权限。
- 扩展属性:支持文件元数据(如SELinux安全标签)。
部分厂商可能采用F2FS(Flash-Friendly File System)优化闪存读写,尤其在嵌入式存储设备中。
应用数据存储格式
安卓应用的数据存储分为多种类型,具体格式如下:
存储类型 | 存储位置 | 数据格式 |
---|---|---|
内部存储 | /data/data/<包名> | 文件(如SQLite数据库、配置文件)、目录结构 |
外部存储 | /storage/emulated/0 (SD卡) | 文件(图片、视频、文档)、遵循Scoped Storage规则(Android 10+) |
SharedPreferences | /data/data/<包名>/shared_prefs | XML文件(键值对存储) |
SQLite数据库 | /data/data/<包名>/databases | SQLite数据库文件(.db) |
缓存文件 | /data/data/<包名>/cache | 临时文件(可被系统清理) |
常见数据存储格式详解
SQLite数据库
- 格式:轻量级关系型数据库,文件后缀为
.db
。 - 用途:存储结构化数据(如用户信息、配置表)。
- 示例:
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);
- 格式:轻量级关系型数据库,文件后缀为
SharedPreferences
- 格式:XML文件,存储键值对(如
boolean
、int
、String
)。 - 用途:轻量级配置(如用户设置、登录状态)。
- 示例文件内容:
<map> <string name="username">admin</string> <bool name="isLoggedIn" value="true"/> </map>
- 格式:XML文件,存储键值对(如
文件存储
- 格式:直接读写文件(如文本、二进制文件)。
- 用途:存储媒体文件(图片、视频)、日志、缓存数据。
- API:
FileOutputStream
、FileInputStream
。
网络存储与云存储
- 格式:依赖第三方服务(如JSON、Protobuf)。
- 用途:同步数据到服务器、下载资源文件。
存储权限与兼容性
- Android 10+ Scoped Storage:
强制应用使用MediaStore
或Storage Access Framework
访问外部存储,禁止直接操作/sdcard
路径。 - 沙箱机制:
应用只能访问自身目录(如/data/data/<包名>
),需声明权限才能访问外部存储。
相关问题与解答
问题1:SQLite数据库与SharedPreferences有何区别?
解答:
- SQLite:适合存储复杂结构化数据(如多表关联),支持SQL查询,但性能较低。
- SharedPreferences:仅适合存储简单键值对(如配置项),性能高,但无法处理多条记录或关联数据。
问题2:Android 11如何限制应用访问外部存储?
解答:
- 私有目录:应用只能访问自己创建的文件(如
getExternalFilesDir()
返回的路径)。 - MediaStore:通过
ContentResolver
操作媒体文件(图片、视频)。 - Storage Access Framework:通过用户选择特定文件(如Intent.ACTION_OPEN_DOCUMENT)。
- 例外:MANAGE_EXTERNAL_STORAGE权限(仅限系统应用或特殊场景