库的概念:
在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
文件
网友评论