less than 1 minute read

makefile是和make命令一起使用,在Android中,可以使用mmmmmmma进行编译。
Makefile可以组织项目中各种库和代码之间的依赖,构建项目,和maven、gradle一样属于构建工具。
常用于大型项目。

1. 基本语法

1.1. 变量定义=或者:=

OBJS = programA.o
//或者
OBJS := programA.o

两者区别在于:=只能使用前面定义好的变量,=可以使用后面定义的变量。

1.2. 变量值追加+=

SRCS := programB.c
SRCS += programC.c

2. makefile在Android中的运用

name note
LOCAL_PATH = $(call my-dir) 调用my-dir函数,返回Android.mk文件所在的目录,放在第一行,地址是当前目录
include file Makefile 引入其他的makefile文件
include $(CLEAR_VARS) 编译模块时清空LOCAL_MODULE等参数
LOCAL_MODULE 模块名称
LOCAL_SRC_FILES 编译需要的源文件
LOCAL_C_INCLUDES 需要的头文件
LOCAL_SHARED_LIBRARIES 编译需要的动态库
LOCAL_LDLIBS 链接库

2.1. 引入aidl文件

LOCAL_SRC_FILES := $(call all-laidl-files-under, src/com/srm/aidl)

或者直接如下,但是最后要加上 \ 符号,并且符号之后要回车:
LOCAL_SRC_FILES += $(call all-java-files-under, src) \
src/com/srm/aidl/test.aidl \

2.2. 添加jar包(libs和mk同目录)

LOCAL_STATIC_JAVA_LIBRARIES := testjar

//需要用CLEAR_VARS分割
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := testjar:libs/testjar.jar

//需要添加
include $(BUILD_MULTI_PREBUILT)

Leave a comment