【问题标题】:How to speed up android ndk builds如何加快 android ndk 构建
【发布时间】:2012-09-20 08:38:51
【问题描述】:

我们有一个相当大的 C++ 项目,我们为 Android 和 iOS 构建跨平台。 Xcode 在编译时使用所有内核并且速度更快(4-5 倍,具体取决于机器)。有什么办法可以改善 NDK 的糟糕性能?任何多 CPU 选项?我们已经预编译了头文件,但在我看来这是错误的资源使用。

因此,任何加快 android ndk 项目构建时间的提示或技巧将不胜感激!

【问题讨论】:

    标签: android c++ performance build android-ndk


    【解决方案1】:

    您的编译不需要使用 Android 的构建系统;这些工具都可以在 Makefile 中使用(尽管您需要注意设置包含路径、库路径和编译器选项)。

    由于您可以创建自己的 Makefile 而不是使用默认构建脚本,因此您可以使用 -jN 选项来指定要同时执行的操作数。

    【讨论】:

    • ndk-build 命令本身正在使用 make。你可以使用ndk-build -jN
    • @usman N 不是字面意思,您需要在此处放置一个数字,根据构建系统上的 CPU 内核数量选择。示例:-j4
    • @kennyTM 我做了 j2。相同的命令在我朋友的系统上构建东西的速度要快得多
    • 太棒了!尤其是来自@KennyTM 的ndk-build 选项。也可以在eclipse中project properties指定-jN选项,然后C/C++ Build,然后覆盖默认构建命令,添加-jN开关。
    • 如何使用带有 NDK 的 Android Studio?
    【解决方案2】:

    以下 bulid.gradle 片段显示了 -jNabifilters 的示例:(参见 http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeNdkBuildOptions.htmlhttps://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
        }
    }.....
    

    【讨论】:

    • 这失败了Could not find method arguments() for arguments [-j4] on object of type com.android.build.gradle.internal.dsl.NdkBuildOptions
    【解决方案3】:

    对于收到以下错误的每个人

    在 com.android.build.gradle.internal.dsl.NdkBuildOptions 类型的对象上找不到参数 [-jx] 的方法 arguments()。

    有区别

    android.externalNativeBuild(here)

    android.defaultConfig.externalNativeBuild(here).

    android.defaultConfig.externalNativeBuild 接受arguments 并可用于设置-j 选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2011-05-18
      相关资源
      最近更新 更多