Application.mk的目的是描述你的andorid应用程序中所需要的模块


Application.mk中变量的意义:
  • APP_PROJECT_PATH 强制性变量,给出应用程序工程的根目录的一个绝对路径

  • APP_MODULES  这个变量时可选的,----如果没有定义,NDK将由在Android.mk中声明的默认的模块编译,并且包含所有的子文件                                              ----如果定义了,这个模块的名字呗定义在Android.mk文件中的LOCAL_MODULES中,     **NDK会自动计算模块的依赖      **NDK在R4开始改变了这个变量的行为,在此之前必须列出所有需要的模块

  • APP_OPTIM    可选(会根据android应用程序的配置文件manifest文件中android:debuggable的属性来定义),用来定义release和debug。在编译你的应用程序模块的时候,可以用来改变优先级。默认为release,并且会生成高度优化的二进制代码。debug模式生成的是未优化的二进制代码,但可以检测出很多的Bug,可以用于调试 。

  • APP_CFLAGS  当编译模块中有任何C文件或者C++文件的时候,C编译器的信号就会被发出。这里可以在你的应用中需要这些模块时,进行编译的调整,这样就不需要直接更改Android.mk文件

  • APP_CPPFLAGS  当编译C++源文件的时候,通过这个变量设置

  • APP_BUILD_SCRIPT  设置Android.mk文件,可以定义指定一个备用的编译脚本,注意使用绝对路径

  • APP_ABI  设置支持的设备,要支持多种设备用空格分开

  • APP_STL  将C++的实现链接到自己的应用程序