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利用程序加載