此篇文章介绍在Android NDK开发中静态库和动态库的知识,主要是编译C/C++库和调用C/C++库的方法和场景。
本文第三部分是为了接下来的几篇文章做铺垫,也是本系列中最重要的几篇。
本文目录:
1.静态库介绍
2.动态库介绍
3.总结静态库和动态库的几种编译和调用场景
1.静态库介绍
静态库:
1.全名是静态链接库(Static Library),后缀是
.a
,例如libcjson.a
2.调用静态库的程序在编译时会将静态库全部编译到目标代码中,所以程序运行环境中不再需要静态库,并且静态库文件体积较大
3.调用静态库时,如果对静态库中的函数内容进行改变,不仅需要重新编译静态库,还需要对调用静态库的程序重新编译,将静态库编译到目标代码中。
2.动态库介绍
动态库:
1.全名是动态链接库(Shared Library),后缀是
.so
,例如libcjson.so
2.调用动态库的程序在编译时不能将动态库编译到目标代码中,程序执行到相关函数时才会链接该动态库对应的函数,所以程序运行环境中必须提供动态库,并且动态库文件体积较小
3.调用动态库时,如果对动态库中的函数内容进行改变&