Android.mk用于构建系统描述源文件和共享库,它实际上是一个微小的GNU makefile片段,构建系统会将其解析一次或多次。
1. AOSP示例
我们以hello-jni开始熟悉Android.mk,位于Android源码的/development/ndk/samples/hello-jni/jni/Android.mk,此示例代码在Android 7.1之后就删除了,但仍然是一个不错的例子。
1 LOCAL_PATH := $(call my-dir) 2 3 include $(CLEAR_VARS) 4 5 LOCAL_MODULE := hello-jni 6 LOCAL_SRC_FILES := hello-jni.c 7 8 include $(BUILD_SHARED_LIBRARY)
- 第1行,表示源文件在开发树中的位置;
- 第3行,指向一个特殊的GNU Makefile,清除除第1行变量外的其他LOCAL_XXX变量;
- 第5行,要构建的模块的名称;
- 第6行,表示要构建到模块中的C/C++源文件列表。
- 第8行,指向一个GNU Makefile,此脚本确定要构建的内容及构建方式,此处位构建共享动态库。
2. include变量
2.1 CLEAR_VARS
2.2 BUILD_EXECUTABLE
2.3 BUILD_SHARED_LIBRARY
2.4 BUILD_STATIC_LIBRARY
2.5 PREBUILT_SHARED_LIBRARY
2.6 PREBUILT_STATIC_LIBRARY
3. 目标信息变量
4. 模块描述变量
5. 函数宏
标签:LIBRARY,基础知识,构建,mk,jni,Android,BUILD From: https://www.cnblogs.com/phoebus-ma/p/16963279.html