iOS文件系统目录结构
原创 2020-09-17
iOS是属于类UNIX的操作系统,基本遵守了UNIX文件系统层级标准(Filesystem Hierarchy Standard)。但由于iOS的封闭性,它还是有一些特有的目录。下面以iOS 12.4.8系统为例说明,方便后续查阅。
Applications目录
存放iOS系统预装的APP二进制文件,比如AppStore、短信、电话等,示例:
/Applications/AppStore.app
/Applications/Camera.app
Developer目录
iPhone设备连接上Xcode开发后,新增Developer目录,包含Applications、Library、System、usr子目录。是部署到iOS系统上用于支持开发的文件。
Library目录
存放了系统需要的数据文件、帮助文档等。示例:
//铃声文件
/Library/Ringtones
//壁纸文件
/Library/Wallpaper
System目录
只包含一个名为Library的目录,存放了系统的绝大部分组件,如各种公开/私有Framework、内核模块、字体文件等。示例:
//字体
/System/Library/Fonts
//桌面
/System/Library/CoreServices/SpringBoard.app/SpringBoard
//系统库
/System/Library/Frameworks/
/System/Library/PrivateFrameworks/
Frameworks和PrivateFrameworks目录存放了iOS公开和私有的Framework动态库。细心就会发现,这些库文件中很多找不到对应的二进制文件。这是由于dyld为了优化启动速度,启用了shared cache技术,将常用的动态库打包到一个cache文件中预加载。这个cache文件存放在路径是:
/System/Library/Caches/com.apple.dyld/dyld_shared_cache_<架构名称>
关于dyld的内容,可以参考EASEAPI的另一篇博文:iOS 13中dyld 3的改进和优化
User目录
链接至/var/mobile。
bin目录
存放传统UNIX用户级命令,如ls、ps、rm、mv等。
boot目录
空
cores目录
空
dev目录
存放设备文件,比如ttyp0、null。
etc目录
链接至/private/etc/。
lib目录
空
mnt目录
空
private目录
有/etc、/var两个重要的目录,存放用户的配置,数据文件。
//共享数据目录
/private/var/containers/Shared
//相册
/private/var/mobile/Media/DCIM
//录音
/private/var/mobile/Media/Recordings
//APP数据目录
/private/var/mobile/Containers/Data/Application
//APP二进制目录
/private/var/containers/Bundle/Application
sbin目录
存放系统级管理命令,如mount,launchd等。
tmp目录
链接至/private/var/tmp/。
usr目录
存储各种工具和程序。
var目录
链接至/private/var/。
相关文章:
URL Decode中对于+号的处理
iOS Universal Links
iOS Crash log符号化
iOS:IDFV(identifierForVendor)使用陷阱
xcodebuild build failed:Use the $(inherited) flag
发表留言
您的电子邮箱地址不会被公开,必填项已用*标注。
留言板