android的android.mk,和application.mk文件编写
1.简介
android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等
application.mk:描述你的程序所需要的模块,即静态库或者共享库
2.静态库和共享库的区别
静态库:在程序编译时连接到代码,一般体积比较大
共享库:在程序运行时动态加载,一般直接引用,体积比较小
3.动手编写简单的android.mk文件
[代码]java代码:
LOCAL_PATH:必须位于android.mk文件的开始,用来定位源文件的位置,$(call my-dir)返回当前路径,即android.mk所在的目录
include $(CLEAR_VARS):清除变量的值,不包括LOCAL_PATH
LOCAL_MODULE:描述的模块,名字唯一,不能有空格,编译系统会生成合适的前缀和后缀
LOCAL_SRC_FILES:参与编译的所有源代码文件
include $(BUILD_SHARED_LIBRARY):把当前模块编译为共享库,前缀为lib,后缀为.so
include$(BUILD_STATIC_LIBRARY):把当前模块编译为静态库,前缀为lib,后缀为.a
4.定义多个android.mk文件
有时候,编译的模块比较多,可以在每一个模块目录下定义一个andorid.mk文件,然后在模块的根目录下放置一个android.mk文件,内容如下:
[代码]java代码:
5.动手编写简单的application.mk
[代码]java代码:
APP_ABI:支持的ABI平台,上所示为armeabi-v7a,其他的如x86,多个用空格隔开,如armeabi-v7a x86
APP_MODULES:如果指定,那么ndk只会编译列出的模块列表,模块名用空格隔开,如果没有指定,那么ndk会编译所有的android.mk文件声明的所有LOCAL_MODULE模块