Android.mk是NDK項(xiàng)目的必備組件,但是這里面的語法其實(shí)不是那末好理解,由于官網(wǎng)上并沒有說。
LOCAL_PATH := $(call my-dir) 在Android.mk文件的第1句,必須有,宏功能,返回當(dāng)前目錄。
include $(CLEAR_VARS) 清除LOCAL_PATH 之外的LOCAL _<name>變量,討厭的是否是全部,是LOCAL_PATH 之外的,這是由于LOCAL_<name> 是全局變量,清除他們可以免沖突,
LOCAL_MODULE :=hello-jni,這里名字唯1,構(gòu)建出來的動態(tài)庫的名字,LOCAL_SRC_FILE := hello-jni.c 構(gòu)建的C源文件,這是的多個(gè)源文件用空格分開。
include $(BUILD_SHARED_LIBRARY),build出來的是 lib$(LOCAL_MODUL).so,include$(BUILD_STATIC_LIBRARY),build 出來的,靜態(tài)庫保證代碼的模塊化,靜態(tài)庫用來構(gòu)建動態(tài)庫。lib$(LOCAL_MODUL).a,include$(PREBUILD_LIBRARY),LOCAL_SRC_FILE 是編譯好的so庫,例如 foo/libfoo.so。
include $(BUILD_EXECUTABLE) build 獨(dú)立的可履行文件,這些文件可以不需要打包成apk就能夠復(fù)制到Android裝備上的常規(guī)linux程序可以直接運(yùn)行,不用通過java利用程序加載