美文网首页
对iOS沙盒知识的巩固及探究

对iOS沙盒知识的巩固及探究

作者: 流年划过颜夕 | 来源:发表于2018-10-25 09:38 被阅读12次

    之前业务也涉及对沙盒的处理,现在有空花时间总结巩固下,当然也发现沙盒有新增的文件也探究了下

    首先关于沙盒的理解,在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估计以后会展现出它的作用。

    相关文章

      网友评论

          本文标题:对iOS沙盒知识的巩固及探究

          本文链接:https://www.haomeiwen.com/subject/ochqtqtx.html