# Ndk

# Ndk

<br />

```
@Incubating interface Ndk
```

<br />

*** ** * ** ***

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

## Summary

|                                                                                                                                                                                                          ### Public properties                                                                                                                                                                                                          ||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>`    | [abiFilters](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#abiFilters()) Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK. |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?`                                                                                                            | [cFlags](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#cFlags()) The C Flags                                                                                                               |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?`                                                                                                            | [debugSymbolLevel](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#debugSymbolLevel()) The type of debug metadata which will be packaged in the app bundle.                                  |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`?`                                                                                                                  | [jobs](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#jobs()) Number of parallel threads to spawn.                                                                                          |
| [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>?` | [ldLibs](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#ldLibs()) The LD Libs                                                                                                               |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?`                                                                                                            | [moduleName](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#moduleName()) The module name                                                                                                   |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?`                                                                                                            | [stl](https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/Ndk#stl()) The APP_STL value                                                                                                               |

## Public properties

### abiFilters

```
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](https://developer.android.com/ndk/guides/abis.html#sa), as shown below:  

```carbon
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](https://developer.android.com/studio/build/configure-apk-splits.html#configure-abi-split)---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

```
var cFlags: String?
```

The C Flags  

### debugSymbolLevel

```
var debugSymbolLevel: String?
```

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

Supported values are 'none' (default, no native debug metadata will be packaged), 'symbol_table' (only the symbol tables will be packaged), and 'full' (the debug info and symbol tables will be packaged).

Example usage:  

```
android {
    buildTypes {
        release {
            ndk {
                debugSymbolLevel 'symbol_table'
            }
        }
    }
}
```  

### jobs

```
var jobs: Int?
```

Number of parallel threads to spawn.  

### ldLibs

```
val ldLibs: MutableList<String>?
```

The LD Libs  

### moduleName

```
var moduleName: String?
```

The module name  

### stl

```
var stl: String?
```

The APP_STL value