Android.mk的用法和基础

Android.mk的用法和基础

Android.mk示例

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := HelloImg

include $(BUILD_PACKAGE)

LOCAL_PATH:= $(call my-dir):

这个变量用于给出当前文件的路径。必须在 Android.mk 的开头定义,可以这样使用:LOCAL_PATH := (CLEAR_VARS)清除,因此每个 Android.mk 只需要定义一次(即使在一个文件中定义了几个模块的情况下)。它是用来定位源文件的位置,$(call my-dir)的作用就是返回当前目录的路径。

include $(CLEAR_VARS)

CLEAR_VARS的作用是清除一些变量的值,但是LOCAL_PATH除外。

LOCAL_MODULE_TAGS :=user eng tests optional

user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_SRC_FILES: 这是要编译的源代码文件列表。只要列出要传递给编译器的文件,因为编译系统自动计算依赖。注意源代码文件名称都是相对于 LOCAL_PATH的,你可以使用路径部分,例如:
Java代码

LOCAL_SRC_FILES := foo.c toto/bar.c\  
Hello.c  

文件之间可以用空格或Tab键进行分割,换行请用"".如果是追加源代码文件的话,请用LOCAL_SRC_FILES +=
注意:在生成文件中都要使用UNIX风格的斜杠(/).windows风格的反斜杠不会被正确的处理。
注意:可以LOCAL_SRC_FILES := $(call all-subdir-java-files)这种形式来包含local_path目录下的所有java文件。

LOCAL_PACKAGE_NAME := HelloImg

LOCAL_PACKAGE_NAME表示package的名字,这个名字在脚本中将标识这个app或package。

参考文档:

理解 Android Build 系统:
https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/

Android.mk 文件语法解释(全)
https://blog.csdn.net/qq_27278957/article/details/77163924

你可能感兴趣的:(Android.mk的用法和基础)