之前业务也涉及对沙盒的处理,现在有空花时间总结巩固下,当然也发现沙盒有新增的文件也探究了下
首先关于沙盒的理解,在iOS中应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,这个区域就被称作沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。
打个比方吧,用户前往快递办事处取货要有规章制度,另外快递办事处也要安全的保障机制,不会让用户随便的乱进入,想拿就拿。当用户需要上门办理事务的时候,快递办事处会给你指定一个特定的区域让用户去寄存他的东西,而用户也必须要遵守它的规章制度。
在iOS中的沙盒模型也有对应的规则,分别是三个办公室(沙盒模型文件夹有三个大文件夹):分别是 Documents,Library,tmp。
Documents 目录:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。所以应该将所有重要的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息
Library 目录:这个目录下有两个子目录:分别是Caches 和 Preferences
Preferences 目录:包含应用程序的偏好设置文件。ios的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes会自动备份该目录.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息(如音频,视频,图片等)但iTunes不会备份该目录,当缓存不足时会被清理。
tmp 目录:这个目录用于存放临时文件,当iOS设备重启时,文件会被自动清除
重点来了!
最近研究发现以前的.app包文件被移除了(可能是apple转移它的存储位置,不开放了)
但是多了一个文件夹SystemData,查阅了各大网站,居然都没有找到相关的解释
最后在官方文档中进行遍历,仅仅发现一个名为NXEventSystemData的介绍,具体也没有任何解释。
最后查找NXEventSystemData的属于类名是kernel
所以初步估计是apple为后面更新处理kernel提前预留的系统文件。
另外还发现有一个隐藏名为.com.apple.mobile_container_manager.metadata.plist
作用应该是对当前移动设备管理元数据,大白话讲就是有了它就有了app的唯一标示。
所以现在沙盒储存中实际上有五个文件,SystemData估计以后会展现出它的作用。
网友评论