1.有用的文章
2.科普几个概念
静态链接库:.a文件的形式,就是将所有源代码编译成库文件,体积较大。使用场景主要是区分不同版本的依赖库,或将底层库A以静态链接库的形式,编译进上层库B,再对外提供。如果其他库调用A,只需要直接引用B中的模块即可。
动态链接库:.so文件的形式,就是运行时链接,体积较小。
3.举例(以编译librtmp为例)
4.填坑
一开始对Android.mk和Application.mk文件编写规则很不熟悉,一通瞎折腾。
- 注意库文件、头文件地址一定要正确
- 每一个依赖模块编译开始时,都要用include $(CLEAR_VARS)重置环境,否则会沿用之前的模块配置。
- 链接第三方静态库来编译时,若第三方静态库之间也有依赖关系(如A依赖B),则需要在配置静态库时将A写在B之前,LOCAL_STATIC_LIBRARIES += A B