深入,全面正确的理解Android.mk

Android.mk是NDK项目的必备组件,但是这里面的语法并不是那么好理解,因为官网上并没有说。

LOCAL_PATH := $(call my-dir) 在Android.mk文件的第一句,必须有,宏功能,返回当前目录。

include $(CLEAR_VARS) 清除了LOCAL_PATH 以外的LOCAL_<name>变量,讨厌的是不是全部,是LOCAL_PATH 以外的,这是因为LOCAL_<name> 是全局变量,清除他们可以避免冲突,

LOCAL_MODULE :=hello-jni,这里名字唯一,构建出来的动态库的名字,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应用程序加载

这一次是一个告别,或者一个永远的告别,

深入,全面正确的理解Android.mk

相关文章:

你感兴趣的文章:

标签云: