# ApkOutput

# ApkOutput

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/ApkOutput.kt+class:com.android.build.api.variant.ApkOutput)  
Added in 8.9.3  

<br />

```
@Incubating
interface ApkOutput
```

<br />

*** ** * ** ***

Provides an ordered collection of APK batches, each intended for local installation, facilitating staged installations.

An instance of[ApkOutput](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutput)can be obtained via[ApplicationVariant.outputProviders](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApplicationVariant#outputProviders())

As an example , let's take a Gradle[org.gradle.api.Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)that needs all the Apks for local deployment:  

```scalate-server-page
abstract class FetchApkTask: DefaultTask() {
  @get:Internal
  abstract val apkOutput: Property<com.android.build.api.variant.ApkOutput>

  @TaskAction
  fun execute() {
    def apkInstallGroups = apkOutput.apkInstallGroups
        for(installGroup: installGroups) {
            installOnDevice(installGroup.apks)
       }
  }
}
def taskProvider = tasks.register<FetchApkTask>("installAppApks")
androidComponents {
    onVariants(selector().withName("debug")) { variant ->
        val appVariant = variant as? ApplicationVariant
        if (appVariant != null) {
            appVariant.outputProviders.provideApkOutputToTask(taskProvider, FetchApkTask::getOutput, DeviceSpec("testDevice", 33, "", [], true))
        }
    }
}
```

## Summary

|                                                                                                    ### Public properties                                                                                                    |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)`<`[ApkInstallGroup](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkInstallGroup)`>` | [apkInstallGroups](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutput#apkInstallGroups()) Returns an ordered collection of co-installable APK batches targeted for a specific device. |

## Public properties

### apkInstallGroups

Added in 8.9.3  

```
val apkInstallGroups: List<ApkInstallGroup>
```

Returns an ordered collection of co-installable APK batches targeted for a specific device.