Android.mk简介

1、Android.mk中所有的变量都是全局的,因此要尽量少声明变量。

2、Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。

LOCAL_PATH:=$(call my-dir)

表示当前文件的路径

3、include $(CLEAR_VARS)

CLEAR_VARS 由编译系统提供(可以在 android 安装目录下的build/core/config.mk 文件看到其定义,为CLEAR_VARS:=$(BUILD_SYSTEM)/clear_vars.mk),指定让GNU MAKEFILE该脚本为你清除许多 LOCAL_XXX 变量 ( 例如 LOCAL_MODULE , LOCAL_SRC_FILES ,LOCAL_STATIC_LIBRARIES,等等…),除 LOCAL_PATH。这是必要的,因为所有的编译文件都在同一个 GNU MAKE 执行环境中,所有的变量都是全局的。所以我们需要先清空这些变量(LOCAL_PATH除外)。又因为LOCAL_PATH总是要求在每个模块中都要进行设置,所以并不需要清空它。 另外 注意 ,该语句的意思就是把CLEAR_VARS变量所指向的脚本文件包含进来。
4、LOCAL_MODULE_TAGS := user eng optional
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
optional: 指该模块在所有的版本下都编译
5、LOCAL_SRC_FILES := $(call all-subdir-java-files)
这是要编译的源代码文件列表,包含local_path目录下的所有java文件。
LOCAL_SRC_FILES := $(call all-subdir-c-files), 表示包含当前目录所有子目录的C代码文件。
LOCAL_SRC_FILES := $(call all-c-files-under,src tests),表示包含指定子目录下找C代码文件。
6、LOCAL_PACKAGE_NAME := XXX
APK包的名字
7、LOCAL_MODULE := XXX
这是模块的名字,它必须是唯一的,而且不能包含空格。必须在包含任一的$(BUILD_XXXX)脚本之前定义它。模块的名字决定了生成文件的名字。
8、编译模块:
include $(BUILD_STATIC_JAVA_LIBRARY) 表示 编译生成 java类库,打包生成jar文件
include $(BUILD_EXECUTABLE) 表示编译生成可执行的C\C++应用程序
include $(BUILD_STATIC_LIBRARY) 表示编译生成C\C++静态库,并打包成.a文件
include $(BUILD_SHARED_LIBRARY) 表示编译生成C\C++共享库(动态链接库),并打包成.so文, 有且只有共享库才能被安装/复制到您的应用软件(APK)包中
编译APK应用程序:
include $(BUILD_PACKAGE)表示编译一个APK应用程序
9、LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
表示要安装的位置,可由编译系统推算,也可由某个模块显示指定
10、LOCAL_STATIC_LIBRARIES
表示该模块需要使用哪些静态库,以便在编译时进行链接。
LOCAL_SHARED_LIBRARIES := liblog
表示模块在运行时要依赖的共享库(动态库),在链接时就需要,以便在生成文件时嵌入其相应的信息。
11、LOCAL_PRELINK_MODULE := false
Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销, 是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。
默认是需要prelink的,同时需要在 build/core/prelink-linux-arm.map 中加入。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值