iOS之沙盒机制

今天有讲到数据持久化的问题,就有涉及到数据存储位置的问题。iOS对于数据安全问题做的很严谨,使用的沙盒机制(Sandbox),相对于安卓系统而言,一下子真的是难以消化。

在iOS8之前的沙盒文件夹中存在四个文件夹 

    Document  存储用户数据,需要备份的信息(数据持久化操作的文件夹)

    Library

        Library/Caches  存储缓存文件,程序专用的支持文件

        Library/Preferences  存储应用程序的偏好设置文件  

    .app   程序包(iOS8时,app不存储在沙盒中,有单独的文件夹存储所有的程序包)

    tmp    存储临时文件。比如:下载的zip包,解压后的再删除     -------    当内存满了,手机会发出警告,警告的同时会优先清除tmp中的文件,所以数据的持久化不适合在TMP文件中,优先放在document(是需要手动操作的)中

沙盒机制总结就是:

   1.每个应用程序位于文件系统的严格限制部分,iOS会为应用程序在硬盘对应目录下创建文件夹----沙盒文件夹

   2.每个应用程序只能在为该程序创建的文件系统中读取文件,程序运行时产生的数据都保存在自己的沙盒文件夹中,程序与程序之间的数据是不能互通的   --------  可以通过越狱后安装插件iFile(文件管理器),不仅可以看到手机的整个目录结构,还可以可以修改文件夹访问权限

   3.每个应用程序在iOS系统内都放在了统一的文件夹目录下

   4.沙盒的本质就是一个文件夹,其路径是固定的,但是文件夹名字是使用UUID(全球唯一标识符)随机分配的

沙盒路径是看不到,当电脑编程时,是在Finder资源库中的(默认是隐藏的,点击左上角前往标签,点击alt键就可以显示),在手机中可以是用iTools(无需越狱)链接电脑使用就可以看到文件

 

*iFile是一款十分强大的iPhone端文件管理软件,可以管理文件、修改文件(夹)权限、通过wifi与电脑传输资料等等
修改文件(夹)权限
用户、组和全局分别代表三个数字,每一项点进去会有三个分项:读取、写入和执行(请忽略“最高”),它们分别占的权重为4/2/1
就是说,读取、写入和执行都选的时候,权限就是4+2+1=7 只选读取和写入的时候就是4+2=6,依此类推,很容易理解。
例如:一个文件的权限就是755。


 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。