美文网首页
Android.mk的用法和基础

Android.mk的用法和基础

作者: 宝塔山上的猫 | 来源:发表于2017-10-29 17:10 被阅读74次

    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://www.haomeiwen.com/subject/vpbypxtx.html