静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

时间:2022-09-01 10:35:39

1、静态库和动态库都是闭源库,不公开源代码。

静态库:.a和.framework

动态库:.dylib和.framework(iOS9取消了.dylib,使用.tbd替代)

2、静态库和动态库在使用上的区别:

静态库:链接时,静态库中使用的文件会被完整的复制到可执行文件中,被多次使用就有多次冗余拷贝

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

注意:项目中如果使用了自制的动态库,不能被上传到AppStore。

因为:动态库存在于系统中,可以更新,不用上传AppStore就可以(Apple不赚钱了),存在较大风险(注入攻击,冒充系统类库,APP之间传值,因为用的都是相同的东西)。

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

3、静态库创建:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

4、静态库目录介绍:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

5、新建项目并导入静态库:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

6、使用导入的静态库的方法:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

7、添加自定义源文件的时候,还需要手动添加其头文件,同样,添加的资源文件,也需要手动导入:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

手动导入:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

我们再来看看生成的文件,可以看到已经有了自定义源文件的头文件了:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

8、使用静态库的创建图片方法和资源文件创建图片并显示:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

9、注意了啊,如果项目中的资源文件和静态库中的资源文件同名的时候,将会使用项目中的资源文件:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

10、那怎么让显示静态库中的资源呢:

很简单:把资源放到一个Bundle包中,然后把Bundle包添加到静态库中,并使用“步骤7”,手动导入Bundle包,然后使用资源时:“Bundle包/资源名”即可。

资源放入Bundle包并把Bundle包拖入项目中:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

手动导入Bundle包:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

生成静态库:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

11、使用“Bundle包路径/资源名”引用静态库的资源文件:

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

12、重新生成静态库文件,并导入项目中,调用静态库代码,可以看到,这时候创建的图片,就是静态库中的图片

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)

静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)的更多相关文章

  1. 机器学习 python库 介绍

    开源机器学习库介绍 MLlib in Apache Spark:Spark下的分布式机器学习库.官网 scikit-learn:基于SciPy的机器学习模块.官网 LibRec:一个专注于推荐算法的j ...

  2. linux学习 建立静态库,动态库,写简单的makefile

    建立静态库 建立四个文件 bin(可运行文件),lib(库),include(头文件),src(放源文件) 这里的起的库明为add 在src文件里运行 1)gcc -c add.c //编译add.c ...

  3. 简单易用的图像解码库介绍 —— stb_image

    原文链接:简单易用的图像解码库介绍 -- stb_image 说到图像解码库,最容易想起的就是 libpng 和 libjpeg 这两个老牌图像解码库了. libpng 和 libjpeg 分别各自对 ...

  4. C++著名类库和C++标准库介绍

    C++著名类库 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5.C++各 ...

  5. state Threads 开源库介绍

    译文在后面. State Threads for Internet Applications Introduction State Threads is an application library ...

  6. PHP中GD库是做什么用的? PHP GD库介绍11111111

    什么是gd库?    gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据 ...

  7. 【转帖】Windows与Linux系统下的库介绍

    Windows与Linux系统下的库介绍 http://embeddedlinux.org.cn/emb-linux/entry-level/200903/12-553.html 库的定义 库文件是一 ...

  8. DBoW2库介绍

    DBoW2库是University of Zaragoza里的Lopez等人开发的开源软件库. 由于在SLAM回环检测上的优异表现(特别是ORB-SLAM2),DBoW2库受到了广大SLAM爱好者的关 ...

  9. iOS 蓝牙开发(四)BabyBluetooth蓝牙库介绍(转)

    转载自:http://www.cocoachina.com/ios/20151106/14072.html 原文作者:刘彦玮 BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBlue ...

随机推荐

  1. Xcode升级 Alcatraz 无法使用

    Alcatraz 主要是可以管理xcode 插件 随着 Xcode 的更新 Alcatraz 有可能无法使用 以下是解决办法: 1,关闭Xcode 2,如果已经安装过 Alcatraz,先卸载掉,然后 ...

  2. halcon中variation_model_single实例注释.

    * This example shows how to employ the new extensions of HALCON's variation model operators* to perf ...

  3. PHP:strpos()-返回字符串在另一个字符串中第一次出现的位置

    strpos()函数返回字符串在另一个字符串中第一次出现的位置.如果没有找到该字符串,则返回false. 语法:strpos(sting, find [, start]) string ,必须,要搜索 ...

  4. linear-gradient 的“高能”用法

    首先,让我们来了解一下“linear-gradient”的基本用法: 说明:用线性渐变创建图像 语法: <linear-gradient> = linear-gradient([ [ &l ...

  5. Object-C内存管理

    Object-C的内存管理是基于引用计数的.你要做的事情只是关注你的引用,而释放内存的工作实际上由运行环境完成. 在最简单的情形中,你分配(alloc)的对象,或只是保留(retain)在一些地方的对 ...

  6. 黑马程序员&lowbar;&lt&semi;&lt&semi;GUI&lpar;图形用户管理&rpar;-----2&gt&semi;&gt&semi;

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 8.对话框 对列出目录内容增加了对话框提示, ...

  7. EF Linq中的左连接Left Join查询

    linq中的join是inner join内连接,就是当两个表中有一个表对应的数据没有的时候那个关联就不成立. 比如表A B的数据如下 from a in A join b in B on a.BId ...

  8. Ubuntu18&period;04或者Deepin15&period;8 部署Django项目

    一.首先先安装nginx静态服务 1.安装gcc g++的依赖库sudo apt-get install build-essential && sudo apt-get install ...

  9. C&num;编写COM组件

    1.新建一个类库项目 2.将Class1.cs改为我们想要的名字 问是否同时给类改名,确定 3.修改Properties目录下面的AssemblyInfo.cs ComVisible属性设置为True ...

  10. 内层DIV超出后,出现滚动条问题

    使用:overflowy:'unset'属性,可以解决