博客> 无标题文章
无标题文章
2017-07-22 14:31 评论:0 阅读:162 vistatinchao
ios staticlibrary 静态库
  1. 为什么要做静态库

1> 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用 例如:百度地图,友盟,JPush等

2> 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,也会提供静态库给程序员使用

  1. 静态库的特点

    .a + .h

  2. 静态库简单演练

1> 新建Tools项目 2> 创建一个类方法,实现一个简单的加法 3> 编译

注意,在编译静态库时,需要编译两个版本 -> 真机(arm) | 模拟器(i386)

4> 新建项目将编译生成的.a + .h拖到项目中使用

  1. 静态库中的资源包的使用

问题:有些第三方库会使用到一些图片素材,例如公司的logo等。

但是由于Xcode默认在编译时会把所有的素材文件导入到mainBundle中,为了避免与使用静态库的程序冲突。 在静态库中如果要使用图片素材,会利用bundle的手段

1> 建立bundle,并且向其中添加图片 2> 创建一个类方法,返回图片 3> 编译 4> 调用方如果需要使用,需要导入 .h + .a + XXX.bundle

  1. 静态库中的自定义视图

    问题:程序需要测试 静态库如何测试呢?

创建复合项目

1> 复习块代码传值

  1. 静态库的使用

新建项目将编译生成的.a + .h拖到项目中使用

  1. 静态库的种类

静态库文件的版本(4种) 1.真机-Debug版本 2.真机-Release版本 3.模拟器-Debug版本 4.模拟器-Release版本

调试版本 VS 发布版本

  • 调试版本会包含完整的符号信息,以方便调试
  • 调试版本不会对代码进行优化

  • 发布版本不会包含完整的符号信息
  • 发布版本的执行代码是进行过优化的
  • 发布版本的大小会比调试版本的略小
  • 在执行速度方面,发布版本会更快些,但不意味着会有显著的提升
  1. 静态库的合并

检测.a的类型

$ lipo -info libCZTools.a

合并.a

lipo -create Debug-iphoneos/libTools.a Debug-iphonesimulator/libTools.a -output libTools.a

合并.a的好处,开发过程中既可以在真机上调试,也可以在模拟器上调试

合并.a的坏处,如果静态库太大,合并打包后,会非常大,因此很多第三方的静态库的.a是区分版本的

今后在使用.a时一定注意版本

收藏
0
sina weixin mail 回到顶部