Ndk

@Incubating interface Ndk
com.android.build.api.dsl.Ndk

DSL object for per-variant NDK settings, such as the ABI filter.

Summary

Properties

abstract MutableSet<String>

Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK.

abstract String?

The C Flags

abstract String?

The type of debug metadata which will be packaged in the app bundle.

abstract Int?

Number of parallel threads to spawn.

abstract MutableList<String>?

The LD Libs

abstract String?

The module name

abstract String?

The APP_STL value

Properties

abiFilters

abstract val abiFilters: MutableSet<String>

Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK.

You can list any subset of the ABIs the NDK supports, as shown below:

android {
    // Similar to other properties in the defaultConfig block, you can override
    // these properties for each product flavor in your build configuration.
    defaultConfig {
        ndk {
            // Tells Gradle to build outputs for the following ABIs and package
            // them into your APK.
            abiFilters 'x86', 'x86_64', 'armeabi'
        }
    }
}

When this flag is not configured, Gradle builds and packages all available ABIs.

To reduce the size of your APK, consider configuring multiple APKs based on ABI—instead of creating one large APK with all versions of your native libraries, Gradle creates a separate APK for each ABI you want to support and only packages the files each ABI needs.

cFlags

abstract var cFlags: String?

The C Flags

debugSymbolLevel

abstract var debugSymbolLevel: String?

The type of debug metadata which will be packaged in the app bundle.

jobs

abstract var jobs: Int?

Number of parallel threads to spawn.

ldLibs

abstract val ldLibs: MutableList<String>?

The LD Libs

moduleName

abstract var moduleName: String?

The module name

stl

abstract var stl: String?

The APP_STL value