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 := (call my-dir) 这个变量不会被(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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容