什么是Android JNI应用程序环境中的模块?

时间:2013-02-01 08:21:29

标签: android android-ndk makefile java-native-interface

我是JNI,C ++和make文件的新手。在我的示例Android-JNI-C ++项目的Application.mk中,他们是APP_MODULES属性。

Android NDK documentation只是说

  

APP_MODULES

     

此变量是可选的。如果没有定义,NDK将   默认构建所有 Android.mk声明的模块,和   它可能包含的任何子makefile。

     

如果定义了APP_MODULES,则它必须是以空格分隔的模块列表   它们出现在Android.mk的LOCAL_MODULE定义中的名称   文件。请注意,NDK将计算模块依赖性   自动。

我从other questions on StackOverflow了解到,每个模块都需要它自己的Android.mk

但是这个背景下的模块是什么?拥有多个模块而不是只有一个模块的优势是什么?

1 个答案:

答案 0 :(得分:1)

您可以在单个Android.mk中定义许多模块。每个库 - 静态或共享 - 您构建或复制(称为预构建的lib)是一个单独的模块。

在Android上的单独库中拆分代码的主要原因与所有其他平台上的相同: divide et impera 。在NDK构建方案中,还有一个案例:为每个模块指定编译参数要容易得多,因此如果需要mix -std=c99 and -std=c++0x,简单的解决方法是使用两个静态库。