# KmpOptimization

# KmpOptimization

<br />

```
@Incubating
public interface KmpOptimization
```

<br />

*** ** * ** ***

DSL object for configurations aimed for optimizing build process(e.g. speed, correctness)

## Summary

|                                                                                                                    ### Public methods                                                                                                                     |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[ConsumerKeepRules](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/ConsumerKeepRules) | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getConsumerKeepRules](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/KmpOptimization#getConsumerKeepRules())`()` The collection of keep rule files for consumers of the library to use. |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[LibraryKeepRules](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/LibraryKeepRules)   | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getKeepRules](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/KmpOptimization#getKeepRules())`()` The collection of keep rule files that the plugin should use when optimizing the AAR   |
| `abstract boolean`                                                                                                                                                                                                                                        | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getMinify](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/KmpOptimization#getMinify())`()` Specifies whether to enable code shrinking for this build type.                              |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[ConfigurableFiles](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/ConfigurableFiles) | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getTestKeepRules](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/KmpOptimization#getTestKeepRules())`()` The collection of keep rule files to use for the test APK.                     |
| `abstract void`                                                                                                                                                                                                                                           | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [setMinify](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/KmpOptimization#setMinify(kotlin.Boolean))`(boolean minify)` Specifies whether to enable code shrinking for this build type.  |

## Public methods

### getConsumerKeepRules

```
@Incubating
abstract @NonNull ConsumerKeepRules getConsumerKeepRules()
```

The collection of keep rule files for consumers of the library to use.  

### getKeepRules

```
@Incubating
abstract @NonNull LibraryKeepRules getKeepRules()
```

The collection of keep rule files that the plugin should use when optimizing the AAR  

### getMinify

```
@Incubating
abstract boolean getMinify()
```

Specifies whether to enable code shrinking for this build type.

By default, when you enable code shrinking by setting this property to`true`, the Android plugin uses ProGuard.

To learn more, read[Shrink Your Code and Resources](https://developer.android.com/studio/build/shrink-code.html).  

### getTestKeepRules

```
@Incubating
abstract @NonNull ConfigurableFiles getTestKeepRules()
```

The collection of keep rule files to use for the test APK.  

### setMinify

```
@Incubating
abstract void setMinify(boolean minify)
```

Specifies whether to enable code shrinking for this build type.

By default, when you enable code shrinking by setting this property to`true`, the Android plugin uses ProGuard.

To learn more, read[Shrink Your Code and Resources](https://developer.android.com/studio/build/shrink-code.html).