Как ускорить сборку Android ndk

У нас есть довольно большой проект C ++, который мы создаем кроссплатформенный для Android и iOS. Xcode использует все ядра при компиляции и работает намного быстрее (в 4-5 раз в зависимости от машины). Есть ли способ улучшить абразивные характеристики NDK? Какие-нибудь варианты с несколькими процессорами? У нас есть предварительно скомпилированные заголовки, но мне кажется, что виновато использование ресурсов.

Так что любые советы или хитрости для ускорения времени сборки проекта Android ndk будет высоко ценится!

16

Решение

Вы не обязаны использовать систему сборки Android для своей компиляции; все инструменты доступны для использования в Makefile (хотя вам нужно будет позаботиться о том, чтобы настроить пути, пути к библиотекам и параметры компилятора).

Поскольку вы можете создать свой собственный Makefile вместо использования сценариев сборки по умолчанию, вы можете использовать th -jN Возможность указать количество одновременных операций для выполнения.

19

Другие решения

Следующий фрагмент 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
}
}.....
2