一、什么是库?
库是共享程序代码的方式,一般分为静态库和动态库。
二、静态库与动态库的区别?
静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
三、iOS里静态库形式?.a和.framework
四、iOS里动态库形式?.dylib和.framework
五、framework为什么既是静态库又是动态库?
系统的.framework是动态库,我们自己建立的.framework是静态库。
六、a与.framework有什么区别?
a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。
建议用.framework.
七、为什么要使用静态库?
方便共享代码,便于合理使用。实现iOS程序的模块化。可以把固定的业务模块化成静态库。和别人分享你的代码库,但不想让别人看到你代码的实现。开发第三方sdk的需要。
八、制作静态库时的几点注意:
1注意理解:无论是.a静态库还.framework静态库,我们需要的都是二进制文件+.h+其它资源文件的形式,不同的是,.a本身就是二进制文件,需要我们自己配上.h和其它文件才能使用,而.framework本身已经包含了.h和其它文件,可以直接使用。
2图片资源的处理:两种静态库,一般都是把图片文件单独的放在一个.bundle文件中,一般.bundle的名字和.a或.framework的名字相同。.bundle文件很好弄,新建一个文件夹,把它改名为.bundle就可以了,右键,显示包内容可以向其中添加图片资源。
3category是我们实际开发项目中经常用到的,把category打成静态库是没有问题的,但是在用这个静态库的工程中,调用category中的方法时会有找不到该方法的运行时错误(selector not recognized),解决办法是:在使用静态库的工程中配置other linker flags的值为-ObjC。
4如果一个静态库很复杂,需要暴露的.h比较多的话,就可以在静态库的内部创建一个.h文件(一般这个.h文件的名字和静态库的名字相同),然后把所有需要暴露出来的.h文件都集中放在这个.h文件中,而那些原本需要暴露的.h都不需要再暴露了,只需要把.h暴露出来就可以了。
九、判断一个Framework支持哪些架构
lipo -info ./MyFramework.framework/MyFramework
分享到:
相关推荐
主要介绍了IOS 静态库和Framework区别的相关资料,这里对动态库与静态库做比较,选择什么时候使用库文件,需要的朋友可以参考下
关于静态库和动态库区别,可以看我的另外一篇文章: iOS静态库和Framework区别 项目配置 新建一个名为TestSDK的静态库工程 然后点击Target下边的加号按钮,添加新的Target 选择Cross-platform,新建一个Aggregate...
iOS界面app只可加载静态库,但server程序可以加载动态库。例子中含一简单实例,含Makefile。
zstd ios静态库mac动态库
(一)iOS静态库、动态库与Framework静态库与动态库的区别 (1)什么是库? 库(Library)直白一点说就是一段编译好的二进制代码,加上头文件就可以供别人使用;(例如: iOS中Objective-C编译下的.h和.m文件,打包静态库后会...
IOS创建静态Framework模板,执行后会在xcode生成静态framework模板 因为动态framework的生成需要IOS8.0以上的系统才能支持,否则不能上架...9.在IOS选择框架和库的地方,你会发现多了一个选择“Static iOS Framework”
Xcode 4和iOS的静态库 创建静态库是在项目中重用代码的好方法,但是使用Xcode 4,如果您不知道要设置它的以下步骤,则可能很难设置。 而且,如果您的静态库定义了动态的类别,则需要采取额外的步骤来确保您的实现...
最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许...下面就简单写一个静态库和一个调用静态库的例子。静态库的编写:1.静态库工程的建立: Xcode New一个新的project,选择IOS下面的Framework&Libr
最近在做ios的静态库(据说framework动态库不能上传到app store).a 和framework都做过了,这里就先说framework的制作流程: 1.首先在xcode下新建cocoa touch framework工程: 2.新建好工程后,往里面添加要封装的...
ios平台使用cmake交叉编译的工具链,可用来编译静态库和动态库。
h264静态库文件,H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准...
可以方便的将c/c++代码,或者Android native的库编译成ios上用的动态库或者静态库,方便移植。CMakeLists.txt基本都可以不需要变,只要将工具链替换就行
前言 ...库实际上是一种代码共享的方式,主要用于代码重用和源码隐藏,通常分为动态库和静态库。 2. 区别 静态库:链接时完整的拷贝至可执行文件中,被多次使用就有多份冗余拷贝。 动态库:链接时不
120强化班第三节课:动态库与静态库(上) 122强化班第四节课:动态库 125强化班第五节课:动态库与静态库(中) 127强化班第六节课:Swift库与总结 201强化班第七节课:Shell脚本(上) 203强化班第八节课:Shell...
iOS-Debug-Hacks:iOS项目开发过程中使用的高级调试技巧,涉及动态调试,静态分析和第三方库的反编译。 iOS项目开发过程中用到的高级调试技巧,涉及三方库动态调试,静态分析和反编译等领域
介绍先静态库和动态库都是以进制提供代码复的代码库静态库 常见的是 .aframework(in Apple): Framework 是Cocoa/Cocoa T
静态表一个用于快速创建程序化表格视图以显示首选项甚至更多动态内容的库。... iOS7之前的iOS不支持动态框架,而Swift不支持静态库。 在“构建阶段”选项卡中时,在“目标依赖项”下添加libStaticTabl
适用于iOS,macOS(以及和 )的Lottie 在查看文档,常见问题解答,帮助,示例等 Lottie是适用于Android和iOS的移动库,它以最少的代码实时本地渲染...您可以拉出存储库,并包含Lottie.xcodeproj来构建动态或静态库。
动态库 课时19.第二章文档总结 课时20.应用砸壳 课时21.class-dump 课时22.Reveal 课时23.Cycript 课时24.网络抓包 课时25.静态分析 课时26.动态调试 课时27.theos(上) 课时28.theos(下) 课时29.第三章...