静态库
来源:互联网 发布:56网络视频下载器 编辑:程序博客网 时间:2024/06/06 05:42
01.为什么要做静态库
================================================================================
1> 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用
例如:百度地图,友盟,JPush等
2> 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,也会提供静态库给程序员使用
02.静态库的特点
================================================================================
.a + .h
03.静态库简单演练
================================================================================
1> 新建CZTools项目
2> 创建一个类方法,实现一个简单的加法
3> 编译
# 注意,在编译静态库时,需要编译两个版本 ->真机(arm) | 模拟器(i386)
4> 新建项目将编译生成的.a + .h拖到项目中使用
04.静态库中的资源包的使用
================================================================================
问题:有些第三方库会使用到一些图片素材,例如公司的logo等。
但是由于Xcode默认在编译时会把所有的素材文件导入到mainBundle中,为了避免与使用静态库的程序冲突。
在静态库中如果要使用图片素材,会利用bundle的手段
1> 建立bundle,并且向其中添加图片
2> 创建一个类方法,返回图片
3> 编译
4> 调用方如果需要使用,需要导入 .h + .a + XXX.bundle
05.静态库中的自定义视图
================================================================================
问题:程序需要测试
静态库如何测试呢?
创建复合项目
1> 复习块代码传值
06.静态库的使用
================================================================================
新建项目将编译生成的.a + .h拖到项目中使用
07.静态库的种类
================================================================================
静态库文件的版本(4种)
1.真机-Debug版本
2.真机-Release版本
3.模拟器-Debug版本
4.模拟器-Release版本
调试版本 VS发布版本
--------------------------------------------------------------------------------
- 调试版本会包含完整的符号信息,以方便调试
- 调试版本不会对代码进行优化
- 发布版本不会包含完整的符号信息
- 发布版本的执行代码是进行过优化的
- 发布版本的大小会比调试版本的略小
- 在执行速度方面,调试版本会更快些,但不意味着会有显著的提升
08.静态库的合并
================================================================================
# 检测.a的类型
$ lipo -info libCZTools.a
# 合并.a
lipo -create Debug-iphoneos/libCZTools.a Debug-iphonesimulator/libCZTools.a -output libCZTools.a
# 合并.a的好处,开发过程中既可以在真机上调试,也可以在模拟器上调试
# 合并.a的坏处,如果静态库太大,合并打包后,会非常大,因此很多第三方的静态库的.a是区分版本的
# 今后在使用.a时一定注意版本
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- 静态库
- Java基础——流
- JAVA Socket超时浅析
- POJ 1019 Number Sequence(枚举)
- 织梦dedecms如何去除版权中的Power by DedeCms
- Android系统的系列书籍
- 静态库
- B-Human各组件解释
- ACM-最长公共子序列
- BigDecimal类
- <简约至上>感触
- 开发一个软件平台的一些心得体会
- ART运行时Compacting GC堆创建过程分析
- 千山万水之Hibernate(二)——Hibernate的三态
- 访问控制模型(Access Control Model)