1、iOS目录结构
iOS是又OSX演化而来,OSX是基于UNIX操作系统。
FHS(Filesystem Hierarchy Standard)
为类UNIX操作系统的文件目录结构指定了一套标准。
类UNIX操作系统目录结构
-
/
:根目录,所有文件和目录在根目录下展开 -
/bin
: “binary”简写,存放提供用户级基础功能的二进制文件,如ls、ps -
/boot
: 存放能使系统成功启动的所有文件。 -
/dev
: “device”简写,存放BSD设备文件。 -
/sbin
: “system binaries”简写,存放提供系统级基础功能的二进制文件,如netstat、reboot等 -
/etc
: “Et Cetera”简写,放系统脚本及配置文件。 -
/lib
: 存放系统库文件、内核模块及设备驱动 -
/mnt
:”mount” 简写,存放临时的文件系统挂载点。 -
/private
:存放/private/etc和/private/var -
/tmp
:临时目录。 -
/usr:
包含大多数用户工具和程序。
iOS目录
-
/Applications
: 存放所有系统App和来自Cydia的App -
/Developer
: 如果一台设备连接Xcode后被指定为调试机,Xcode就会在iOS中生成这个 -
/Library
: 存放一些提供系统支持的数据 -
/System/Library
: 存放大量系统组件。 -
/System/Library/PrivateFrameworks
: 存放iOS的各种framework. -
/User
: 用户目录,实际指向/var/mobile。 -
/var/mobile/Containers
: 存放StoreApp.- App 可执行文件在bundle于App中的数据目录被分别存放在/var/mobile/Containers/Bundle 和 /var/mobile/Containers/Data这两个不同目录下面
二进制文件类型
bundle
: 按某种标准结构来组织的目录,包含了二进制文件及运行所需的资源
framework
: 也是bundle,但是framework的bundle中存放的是一个 dylib
,而不是可执行文件。
App目录结构
-
Info.plist
: 记录了App的基本信息,如bundle identifier、可执行文件名、图标文件名等。 -
可执行文件
: 一般都是项目名字 -
lproj
: 存放各种本地化的字符串
沙盒
一种访问限制机制、权限的一种表现形式。授权文件( entitlements
)是沙盒的一部分。
Daemon(守护进程、后台程序)
问题: iOS中没有真正的后台任务?
- 正在使用app,电话来了会中断当前的所有操作,将电话界面呈现在面前
- 垃圾短信的拦截,如果没有守护进程,怎么实时处理过滤每一条短信
其实按下home键,进程进入后台了,大多数功能会被暂停。