当前位置:   article > 正文

Android.mk中常用变量讲解_local_path := $(call my-dir) include $(call all-ma

local_path := $(call my-dir) include $(call all-makefiles-under,$(local_path

下面这段是原生Music的Android.mk文件的内容,根据该内容讲解一下如下

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
src/com/android/music/IMediaPlaybackService.aidl
LOCAL_PACKAGE_NAME := Music
LOCAL_SDK_VERSION := current
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))


  • LOCAL_PATH:指定要编译模块的绝对路径,绝对路径可以通过编译中枢定义的函数my-dir获取。
  • LOCAL_MODULE_TAGS:指定编译模块所述的标签。标签是在中枢定义的,各个模块只能指定自己属于哪个标签,编译中枢会按照标签进行归类。常见的标签有:user、eng、userdebug、optional。在源码build/core/package.mk中标注如下:# Package LOCAL_MODULE_TAGS default to optional,即编译apk时,LOCAL_MODULE_TAGS的默认值是optional。
  • LOCAL_SRC_FILES:指定要编译模块的所有源文件。all-java-files-under是编译中枢定义的函数可以获取所有的java文件。但是不能搜索到aidl文件,因此如果源码中包含aidl文件,还需要手工在Android.mk中说明。如src/com/android/music/IMediaPlaybackService.aidl。也可以使用$(call all-Iaidl-files-under, <src>) 获取指定目录下的所有 AIDL 文件。
  • LOCAL_PACKAGE_NAME:指定项目名称。该变量名值适用于Java项目,对已C/C++下项目,则使用变量LOCAL_MODULE。
  • BUILD_PACKAGE:该变量可以解释为一个宏,它不需要被赋值,因为中枢已经给该变量赋值了。标明编译的目标是apk对象。BUILD_EXECUTABLE变量标明要编译的目标是可执行对象,BUILD_STATIC_LIBRARY变量标明是要编译一个静态库对象。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/221653?site
推荐阅读
相关标签
  

闽ICP备14008679号