我们有一个相当大的 C++ 项目,我们为 Android 和 iOS 构建跨平台。Xcode 在编译时使用所有内核并且速度更快(4-5 倍,具体取决于机器)。有什么办法可以改善 NDK 的糟糕性能?任何多 CPU 选项?我们已经预编译了头文件,但在我看来,这是错误的资源使用。
因此,任何加快 android ndk 项目构建时间的提示或技巧将不胜感激!
我们有一个相当大的 C++ 项目,我们为 Android 和 iOS 构建跨平台。Xcode 在编译时使用所有内核并且速度更快(4-5 倍,具体取决于机器)。有什么办法可以改善 NDK 的糟糕性能?任何多 CPU 选项?我们已经预编译了头文件,但在我看来,这是错误的资源使用。
因此,任何加快 android ndk 项目构建时间的提示或技巧将不胜感激!
您不需要使用 Android 的构建系统进行编译;这些工具都可以在 Makefile 中使用(尽管您需要注意设置包含路径、库路径和编译器选项)。
由于您可以创建自己的 Makefile 而不是使用默认的构建脚本,因此您可以使用 th-jN
选项来指定要执行的同时操作的数量。
以下 bulid.gradle 片段显示了-jN和abifilters的示例:(请参阅http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeNdkBuildOptions.html和https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.NdkOptions.html)
android {
compileSdkVersion 21
buildToolsVersion '25.0.3'
defaultConfig {
applicationId "test"
minSdkVersion 21
targetSdkVersion 21
ndk {
moduleName "native_lib"
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
ndkBuild {
arguments '-j4'
}
}
jackOptions {
enabled true
}
}.....