iOS File System
iOS 文件系统
iOS File System
iOS 文件系统
49年入国军,千元买个二手果。遂发觉这系统的存储需求,比起安卓那增长的不是一点半点。
可为什么体感上256的果比安卓的更禁用呢?
而且感觉每个app都有一个独立空间
同一个文件多个app需要访问时
就需要往自己的碗里复制一份
这存储占用岂不是超级加倍
沙盒机制
先看看iOS的沙盒机制吧。
iOS给每个app都分配独立容器,即沙盒。
这会让每个app各占一块地 但相应的也会更安全、更隐私、更稳定、更容易管理。
资源结构
每个app的基本文件资源组成
- 安卓包本体
- 用户文档
- 缓存文件
- 离线资源
- 数据库、日志、临时文件
- 媒体缓存,比如图片、视频、音频
而沙盒内部则把这些分为以下几类目录进行分类
| 目录 | 用途 | 是否容易被系统清理 |
|---|---|---|
| Documents | 用户重要文件 | 不自动清,会备份 |
| Library/Caches | 缓存 | 空间不足时可能被清 |
| tmp | 临时文件 | 重启或空闲时可能被清 |
| App 本体 | 可执行文件和资源 | 卸载/卸载 App 时移除 |
iOS并不会让你想Windows文件系统那样让你的程序自由浏览整个文件系统,而是采用“安全隔离+抽象入口+自动管理”来换体验。
看到这里 我又想到Windows系统下有个硬链接的机制
APFS克隆和硬链接
| 维度 | Windows/Linux 硬链接 | iOS/macOS 的 APFS 克隆 |
|---|---|---|
| 底层机制 | 多个目录项指向同一个 inode | 两个文件共享相同数据块,但 inode 独立 |
| 修改行为 | 修改任意一端,另一端也会变 | 修改时才分离被改部分,未改部分仍共享 |
| 元数据 | 通常共享同一文件记录 | 每个克隆体有独立元数据 |
| 用户感知 | 像“同一个文件多个名字” | 像“两个独立文件,但初始不占额外空间” |
| 适用场景 | 节省空间、强耦合引用 | 副本、快照、备份、App 资源复用 |
本文由作者按照
CC BY 4.0
进行授权