我是JNI,C ++和make文件的新手。在我的示例Android-JNI-C ++项目的Application.mk
中,他们是APP_MODULES
属性。
APP_MODULES
此变量是可选的。如果没有定义,NDK将 默认构建所有 Android.mk声明的模块,和 它可能包含的任何子makefile。
如果定义了APP_MODULES,则它必须是以空格分隔的模块列表 它们出现在Android.mk的LOCAL_MODULE定义中的名称 文件。请注意,NDK将计算模块依赖性 自动。
我从other questions on StackOverflow了解到,每个模块都需要它自己的Android.mk
。
但是这个背景下的模块是什么?拥有多个模块而不是只有一个模块的优势是什么?
答案 0 :(得分:1)
您可以在单个Android.mk中定义许多模块。每个库 - 静态或共享 - 您构建或复制(称为预构建的lib)是一个单独的模块。
在Android上的单独库中拆分代码的主要原因与所有其他平台上的相同: divide et impera 。在NDK构建方案中,还有一个案例:为每个模块指定编译参数要容易得多,因此如果需要mix -std=c99 and -std=c++0x,简单的解决方法是使用两个静态库。