Android.mk中常用变量讲解

下面这段是原生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变量标明是要编译一个静态库对象。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值