mk文件解析

本文详细介绍了Android.mk文件的使用,包括LOCAL_PATH的定义、模块清理、LOCAL_MODULE、LOCAL_PACKAGE_NAME等关键变量的设置,以及LOCAL_SRC_FILES、LOCAL_STATIC_LIBRARIES等编译参数的用法。通过两个实例展示了无源码和有源码情况下如何配置mk文件,并提及了模块标签、编译路径和证书签名等重要概念。
摘要由CSDN通过智能技术生成

LOCAL_PATH := $(call my-dir)
    每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件。
    宏my-dir 则由Build System提供。返回包含Android.mk的目录路径。

include $(CLEAR_VARS)
    CLEAR_VARS 变量由Build System提供。并指向一个指定的GNU Makefile,由它负责清理很多LOCAL_xxx.
    例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES等等。但不清理LOCAL_PATH.
    这个清理动作是必须的,因为所有的编译控制文件由同一个GNU Make解析和执行,其变量是全局的。所以清理后才能避免相互影响。

LOCAL_MODULE:当前模块的名称(具有唯一性)(无源码);
    LOCAL_MODULE模块必须定义,以表示Android.mk中的每一个模块。名字必须唯一且不包含空格。
    Build System会自动添加适当的前缀和后缀。例如,foo,要产生动态库,则生成libfoo.so. 但请注意:如果模块名被定为:libfoo.则生成libfoo.so. 不再加前缀。

LOCAL_PACKAGE_NAME:当前APK应用的名称(具有唯一性)(有源码);

LOCAL_MODULE_TAGS:当前模块所包含的标签,可以包含多标签,可能值为debgu,eng,user,development或optional(默认值)
    - user: 指该模块只在user版本下才编译 
    - eng: 指该模块只在eng版本下才编译 
    - tests: 指该模块只在tests版本下才编译 
    - optional:指该模块在所有版本下都编译 

LOCAL_MODULE_PATH:表示模块编译结果将要存放的目录
    LOCAL_MODULE_PATH := $(PRODUCT_OUT)/vendor/app/
    #编译到/vendor/app/目录下
    #$(TARGET_OUT)/app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值