Android静态库和动态库的区别
在Android中通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态链接库和动态链接库两种,是在链接的时候才会用到的库,只有C/C++、OC语言才会有链接过程,Java没有。
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,并且静态库文件体积较大。静态链接库的后缀是.a,例如libcjson.a。在调用静态库时,如果对静态库中的函数内容进行改变,不仅需要重新编译静态库,还需要对调用静态库的程序重新编译,将静态库编译到目标代码中。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,并且动态库的文件体积较小。后缀是.so,例如libcjson.so。在调用动态库时,如果对动态库中的函数内容进行改变,只需要重新编译动态库,不需要对调用动态库的程序重新编译,即不需要干预目标代码,直接用新的动态库替换掉旧的动态库即可。
静态库和动态库的编译和调用场景
1、将C/C++的源码直接编译成静态库,只能提供给底层调用。
注:比较适用于将第三方开源库编译成静态库,也可以将自己写的源码编译成静态库,给自己或其他人的底层调用。
2、将C/C++的源码直接编译成动态库,不需要封装JNI层,提供给底层调用。
注:比较适用于将自己写的源码编译成动态库,也可以将第三方开源库编译成动态库,给自己或其他人的底层调用。
3、将C/C++的源码进行JNI层封装后,编译成动态库,提供给上层调用。
注:比较适用于将自己写的源码进行JNI封装后,连同jar包一起,给自己或其他人的上层调用。
Android静态库和动态库的区别相关推荐
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- C/C++ 静态库和动态库的区别
可执行目标文件 可重定位目标文件 共享目标文件 静态库和动态库的区别: 生效阶段不同,静态库是在编译阶段就会把其链接到可执行目标文件中:动态库是在程序运行过程中指定路径或者系统动态库路径下寻找. -l ...
- android jni通过cmake使用第三方静态库和动态库
google 官方现在推荐使用cmake来构建jni. 本人正好工作需要使用第三方的静态库和动态库,写此文 权当做个记录. 首先修改app的build.gradle文件 ndk {abiFilter ...
- 关于静态库、动态库的区别汇总
real framework中不可以使用类别 或 不可以不包含类文件 real framework 中直接调用NSClassFromString函数会返回null 需要强制加载指定类 或 直接通过类 ...
- Android NDK生成及连接静态库与动态库
对于Android应用开发,大部分情况下我们使用Java就能完整地实现一个应用.但是在某些情况下,我们需要借助C/C++来写JNI本地代码.比如,在使用跨平台的第三方库的时候:为了提升密集计算性能的时 ...
- C++静态库与动态库的区别?
C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...
- 静态库与动态库的区别
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- 静态库与动态库(共享库)的联系与区别
提要: 1.静态库 静态库,也称作归档库(archive),按惯例它们的文件名都以.a结尾.比如,标准C语言函数库/usr/lib/libc.a和X11函数库/usr/ ...
- Linux中静态库和动态库(共享库)的区别
1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...
- 静态库与动态库的区别(转)
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
最新文章
- python画熊猫代码_用Python Turtle 画可爱的熊猫
- JavaScript精要
- shell命令获取按键值_linux shell获取键盘输入
- NYOJ 767 因子和
- 实例5:python
- hdu 4864 task 贪心
- Windows下的hiberfil.sys文件及其作用
- html网页如何限制ip访问量,Nginx 限制IP访问频率
- Apache httpd 几个报错的解决记录
- 解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现
- python内置函数表示2的10次幂_Python常见内置函数用法(二)
- 关于计算机合成图像的应用中,数字图像合成技术综述
- 多級commentable處理
- 学计算机基础专业必备的书,大学计算机基础教程
- 五分频电路(50%占空比)
- flex弹性盒子(伸缩盒模型)的使用
- 概率论 | 联合熵、条件熵、互信息之间的表示、关系及大小
- python编程midi键盘按键错乱_键盘按键错乱超简单解决教程
- Linux视窗系统:QT使用GPU渲染
- USES_CONVERSION的使用和注意