JNI基础 -- C++基础知识(动态库)

2020-04-18  本文已影响0人  刘小厨

库的概念:

在windows平台和linux平台下都大量存在着库。Android中也存在库,
库顾名思义,指的是一个容器文件,里面装的是函数,由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同) ,因此二者库的二进制是不兼容的。

库分为动态库和静态库

不同的操作系统库文件的格式不同:
比如:Android JNI开发常用的一般就是动态库,也就是常说的.so文件,静态库一般是.a文件
windows操作系统的C盘下有很多.dll文件,就是动态库文件,静态库文件就是.lib

两者的区别:
区别

我们可以将动态库(Android中的.so文件)类比为常用的jar包文件,jar文件可以包含.class文件,.class文件的加载是发生在运行时
将静态库(Android中的.a文件)类比为.arr包文件,.arr包文件不仅可以包含.class文件,还可以包含资源文件,R资源,文件格式资源等
实现相同的功能.arr文件的大小是大于.jar文件的,同理,一般.a文件的大小会大于.so文件

动态库的编译过程 :
动态库编译过程
上一篇下一篇

猜你喜欢

热点阅读