gpt4 book ai didi

iphone - 文件系统中的 iOS 框架二进制文件在哪里?

转载 作者:技术小花猫 更新时间:2023-10-29 10:59:33 39 4
gpt4 key购买 nike

我对 iOS 上的框架有点困惑。我认为它们基本上是一个包含动态库、 header 和资源的目录。

但在我的设备中,System/Library/Frameworks 中的框架目录不包含动态库。这怎么可能?当需要它的应用程序启动时,它不应该存在并加载到内存中吗?

最佳答案

二进制文件不再存在于设备上(自 iOS 3.1 以来也不存在):Apple 已将它们全部合并到一个大型 mmap() 缓存文件中,以使应用程序启动时间更长一些高效的。由于页面通常永远不会改变,内核可以在每个运行的图像之间有效地共享它们。您仍然可以对缓存中保存的文件使用 dlopen(),因为当给定的库存在于缓存中时,dyld 会短路文件查找。

缓存文件位于/System/Library/Caches/com.apple.dyld,并以架构命名(armv6 or armv7)。可以使用 dsc_extractor 提取其中的库或 KennyTM 的 dyld_decache,可用 in this repository , 但一旦提取出来,它们实际上就不能正确地加载到内存中(因为它们都有效地将它们的符号表合并到缓存中。)

这里有一些更好的(虽然较旧且信息较少,但更深入)的文章:http://blog.howett.net/2009/09/cache-or-check/ .

关于iphone - 文件系统中的 iOS 框架二进制文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830488/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com