Android.mk是NDK项目的必备组件,但是这里面的语法其实不是那末好理解,由于官网上并没有说。
LOCAL_PATH := $(call my-dir) 在Android.mk文件的第1句,必须有,宏功能,返回当前目录。
include $(CLEAR_VARS) 清除LOCAL_PATH 之外的LOCAL _<name>变量,讨厌的是否是全部,是LOCAL_PATH 之外的,这是由于LOCAL_<name> 是全局变量,清除他们可以免冲突,
LOCAL_MODULE :=hello-jni,这里名字唯1,构建出来的动态库的名字,LOCAL_SRC_FILE := hello-jni.c 构建的C源文件,这是的多个源文件用空格分开。
include $(BUILD_SHARED_LIBRARY),build出来的是 lib$(LOCAL_MODUL).so,include$(BUILD_STATIC_LIBRARY),build 出来的,静态库保证代码的模块化,静态库用来构建动态库。lib$(LOCAL_MODUL).a,include$(PREBUILD_LIBRARY),LOCAL_SRC_FILE 是编译好的so库,例如 foo/libfoo.so。
include $(BUILD_EXECUTABLE) build 独立的可履行文件,这些文件可以不需要打包成apk就能够复制到Android装备上的常规linux程序可以直接运行,不用通过java利用程序加载