美文网首页
JNI基础 -- C++基础知识(动态库)

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

作者: 刘小厨 | 来源:发表于2020-04-18 14:42 被阅读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文件

    动态库的编译过程 :
    动态库编译过程

    相关文章

      网友评论

          本文标题:JNI基础 -- C++基础知识(动态库)

          本文链接:https://www.haomeiwen.com/subject/ncsuvhtx.html