- 浏览: 626008 次
文章分类
最新评论
-
q781253433:
qin ~.求demo看看~
Android之Widget -
zhongyuanceshi:
博主,没看到你的例子的Demo,共享下
Android之Widget
程序编译一般需经预处理、编译、汇编和链接几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。
静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的复本,因此节省了很多内存。
原文:
http://blog.163.com/dang_wenyun/blog/static/42206525201161801232247/
概要
AppStore中的 iphone 程序不允许使用动态链接库。
如果需要在隐藏代码的前提下提供某些功能,可以使用静态链接库。
XCode项目中添加静态库的方法
右击target,选择add -> new target
在弹出的 NewTarget 界面中选择Cocoa Touch -> Static Library ,为新 library 取个名字。
将源文件添加到这个库。可以直接拖动现存源文件,也可以右击 -> add 。注意选择新建的库为添加的 target 。
设置原项目,令其使用新建的库。
右击原项目的 target ,选择 getInfo 。
选择 General 选项卡
向 linked libraries 中添加新创建的库 (即添加 .a 文件)。
编译新建的静态库以产生 .a 文件。(右击静态库的 target ,选择build)
编译原项目,若可以调用静态库中的方法则添加成功。
怎样隐藏静态库的代码
可以直接删除静态库中的源代码,只提交链接库文件(.a),这样原项目仍然可以编译执行。
备注:
Mac OS 下的静态链接库文件与linux 同样使用 .a 扩展名。
参考资料
Building static libraries with the iPhone SDK
发表评论
-
tableview FPS 优化
2016-06-28 11:26 1现状: 在滚动tableview ... -
iOS 开发者中的公司账号与个人账号之间有什么区别?
2016-06-23 14:54 504原文:http://www.zhihu.com/questio ... -
strong weak copy
2016-04-24 21:01 632copy的使用 如果是mutable,则co ... -
App性能优化思考
2015-10-13 15:24 915一个app的数据 启动时间 crash率 每个 ... -
iOS之手势操作
2015-01-19 10:24 784手势学习: https://developer. ... -
iOS之网络学习
2015-01-19 10:23 646网络学习: http://nshipster.c ... -
nib文件的加载过程
2014-10-24 13:39 807参考:http://blog.csdn.net/nokiax ... -
NSCoder&&NSCoding使用
2014-10-24 11:38 761NScoder和NScoding的作用是将自定义的类的对象持 ... -
Autolayout学习
2014-10-20 16:32 747参考: http://my.oschina. ... -
IOS开发屏幕适配总结
2014-10-20 16:28 470面对4个分辨率的iPhone,建议使用Auto Layou ... -
Size Classes学习
2014-10-20 16:27 770Size Classes介绍:http://blog.su ... -
iPhone6分辨率以及适配
2014-10-20 11:36 1311对iPhone6适配的两种方式:1、兼容模式 这种模式 ... -
Core Animation简介
2014-10-19 15:33 781在iOS中,整个view都是直接构建在Core Animat ... -
Charles使用——HTTP代理服务器
2014-10-19 15:32 2057* HTTP代理服务器,监听8888端口 * HTTP监视 ... -
《精选》开发中遇到的问题总结
2014-10-19 15:31 10101、新浪微博的使用 使用的事umeng的SDK来调用微信、 ... -
使用JavaScript给UIWebView中的内容注入CSS
2014-10-06 21:26 1162NSString *filePath = [[NSB ... -
UIViewde的属性edgesForExtendedLayout
2014-09-26 17:56 696edgesForExtendedLayout 指定边缘 ... -
UIView的属性autoresizingMask
2014-09-26 17:36 768在 UIView 中有一个autoresizingMask ... -
UIWebView获取内容的高度
2014-09-24 13:13 749// 第一种方法 ... -
storyboard的总结
2014-09-02 11:30 739两个基本概念 scene 就是一个视图控制器 se ...
相关推荐
3. **降低耦合度**:静态库中的代码与主应用程序相对独立,降低了不同部分之间的耦合度。 #### 三、创建静态库 1. **新建项目**: - 打开Xcode,选择“File” -> “New” -> “Project”。 - 选择“Framework & ...
4. 解决依赖问题:如果静态库中还依赖其他库,需要确保这些依赖也被正确地添加到目标项目中。检查"Build Phases" -> "Link Binary With Libraries"中是否包含了所有依赖的动态库或者静态库。 三、源码分析 在提供...
本实例主要探讨如何制作包含Category的iOS静态库,解决静态库中对Category的使用问题。 首先,让我们了解Category在Objective-C中的作用。Category是Objective-C的一个强大特性,允许我们扩展已有类的功能,而无需...
静态库是编译时链接到目标程序中的代码库,它会把库中的所有函数和数据都复制到最终的应用程序中,因此生成的app体积较大,但运行时无需依赖外部库,避免了动态库可能导致的兼容性问题。 创建静态库的步骤如下: 1...
在示例代码中,`AstroDiskAppDelegate`类导入了`Print.h`,并在`application:didFinishLaunchingWithOptions:`方法中调用了静态库中的`printA`和`printB`方法。这样,我们就成功地在一个iOS应用中使用了自己创建的...
这样,你就成功地在iOS项目中集成了protobuf 2.6.1的静态库。 总之,protobuf是一种强大的数据序列化工具,适用于iOS开发。通过编译成静态库,可以方便地在项目中集成并利用其优势。在实际应用中,可以根据需求选择...
- 添加静态库到Xcode项目中:需要将`lib`目录下的所有库文件添加到项目的Link Binary With Libraries阶段。 - 头文件路径设置:确保Xcode知道在哪里找到FFmpeg的头文件,可以通过设置Header Search Paths实现。 - ...
5. **创建头文件(Header Files)**:为了使用静态库,开发者需要知道库中暴露的接口。所以,你需要创建对应的头文件(`.h`),声明公开的类、协议、枚举等。 6. **创建示例项目**:为了演示静态库的使用,可以创建...
在Xcode项目中,导入ZBar库(可以是静态库形式),并创建一个新的ViewController,负责调用ZBar的扫描接口。确保在扫描回调中,对返回的乱码结果进行修复。例如,如果原始结果是乱码,可以尝试使用`...
银联支付64位静态库是为iOS和Android平台提供的一种支付解决方案,它允许开发者将银联支付功能集成到自己的应用程序中。这个静态库,libUPPayPlugin.a,是银联专门为64位架构设计的,确保在最新的移动设备上能够高效...
- 确保所有`.h`文件的`Target Membership`设置为`Public`,这样其他项目才能通过`.h`文件来访问静态库中的功能。 3. **构建设置**: - 在`Build Settings`中,找到`User Header Search Paths`,将其值设为`$(BUILT...
**静态库**在编译阶段就被链接到目标代码中,这意味着当程序运行时,该库的代码已经完全融入到程序中,不再需要外部库的支持。这种方式的优点是简单易用,但缺点是可能会导致程序体积增大,因为每个使用该库的应用都...
- 将对应的静态库文件添加到Xcode项目中。 - 设置项目的架构设置,确保包含了所有的目标架构。 - 使用C语言或者Objective-C的接口调用FFmpeg的功能。 7. **注意事项**: - 使用FFmpeg可能涉及版权问题,因为...
在iOS项目中集成libjpeg .a静态库的步骤通常包括: 1. 下载libjpeg源代码,针对iOS平台进行编译,生成armv7、arm64、i386、x86_64等不同架构的.a静态库文件。 2. 使用`lipo`工具合并不同架构的静态库,创建一个fat ...
本压缩包中的静态库是专门为 iOS 设备编译的,包含了多个架构的支持,包括 arm64(适用于64位的iPhone和iPad)、armv7s(针对某些特定的32位设备)、armv7(广泛支持的32位架构)、x86_64(用于iOS模拟器)以及 i386...
本文将详细解析"ios libx264 静态库 .a文件"的相关知识点,包括libx264库的介绍、静态库的概念、支持的架构以及如何在iOS项目中集成和使用libx264。 首先,libx264是一个开源的、高效的H.264视频编码器,广泛应用于...
4. 集成到Xcode项目:将生成的静态库文件添加到Xcode项目中,设置“Link Binary With Libraries”构建阶段,确保应用链接了这些库。 5. 调用API:在Objective-C或Swift代码中,通过导入头文件并调用库提供的函数来...
在iOS平台上,为了在应用中使用FFmpeg的功能,我们需要将其编译为适用于iOS设备的静态库。这里我们将详细探讨如何在iOS平台上实现FFmpeg的编译,特别是针对armv7和armv7s架构的静态库整合。 1. **环境准备**: - ...