Android mk文件如何使用
1、首先要搞清楚Android.mk文件是做什么的:一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。
2、一般来说,对于一个Android工程,都有一个Android.mk文件,比如著名的“Hello World”Demo程序,必然包含如下文件: sources/helloworld/helloworld.c sources/helloworld/Android.mk
3、这个工程的Android.mk文件包含如下内容: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= helloworld LOCAL_SRC_FILES := helloworld.c include $(BUILD_SHARED_LIBRARY)
4、对于这些语句的意义,简单说明如下:LOCAL_PATH := $(call my-dir) 用于在开发树中查找源文件,此处使用的宏函数’my-dir’, 由编译系统提供,用于返回当前路径include $(CLEAR_VARS) CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量,除LOCAL_PATH LOCAL_MODULE:= helloworld 标识在Android.mk文件中描述的每个模块,名称必须是唯一的,而且不包含任何空格 LOCAL_SRC_FILES := helloworld.c 必须包含在将要编译打包进模块中的C或C++源代码文件 include $(BUILD_SHARED_LIBRARY) 增加本地程序或者库,这些程序和库与其所载路径没有任何关系
5、另外,在Android.mk文件中,还可以指定字斤谯噌最后的目标安装路径,用LOCAL_MODULE_PATH和LOCAL_UNSTRIP霸烹钟爷PED_PATH来指定,不同的文件系统路径用以下的宏进行选择: TARGET_ROOT_OUT:表示根文件系统。 TARGET_OUT:表示system文件系统。 TARGET_OUT_DATA:表示data文件系统。用法如下示: CAL_MODULE_PATH:=$(TARGET_ROOT_OUT)
6、以上述说了Android.mk文件的基本概念及基础文件格式说明,具体在使用过程中,由于工程类型的不同,其定义的变量及内容也不一致,具体可以看看Android.mk文件语法规范及使用模板