什么是Android.mk?
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的
头文件目录、需要编译的==.c/.cpp文件和.a静态库文件==等。要掌握jni,就必须熟练掌握
Android.mk的语法规范。
1基本格式
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
…
LOCAL_xxx := xxx
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
LOCAL_xxx := xxx
…
include $(BUILD_SHARED_LIBRARY)
2基本元素
LOCAL_PATH
LOCAL_PATH变量制定了该.mk的路径
$(call my-dir)调用android makefile的函数获得当前.mk文件的路径
include $(CLEAR_VARS)
清空了除了LOCAL_PATH之外的所有LOCAL_xxx变量的值
省略号中间就是对于模块参数的设置
- 模块名字
- 模块源文件
- 模块类型
- 编译好的模块存放位置
- 以及编译的平台等
include $(BUILD_xxx_xxx)
执行NDK的默认脚本,它会收集include $(CLEAR_VARS)脚本后所有定义的LOCAL_xxx变量,然后根据它们来生成模块。
Android.mk的语法
- LOCAL_PATH := $(call my-dir)
每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在code tree中查找源文件。宏my-dir 则由B