1

我是 JNI、C++ 和制作文件的新手。在Application.mk我的示例 Android-JNI-C++ 项目中,它们是一个APP_MODULES属性。

Android NDK 文档只是说

APP_MODULES

这个变量是可选的。如果未定义,NDK 将默认构建您的 Android.mk 声明的所有模块,以及它可能包含的任何子 makefile。

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

而且我从StackOverflow 上的其他问题中知道,每个模块都需要它自己的Android.mk

但是在这种情况下,什么是模块?拥有多个模块而不是只有一个模块有什么好处?

4

1 回答 1

1

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

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

于 2013-02-02T22:24:59.803 回答