# ApkOutputProviders

# ApkOutputProviders

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

<br />

```
@Incubating
interface ApkOutputProviders
```

<br />

*** ** * ** ***

## Summary

|                             ### Public functions                             |
|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) `<TaskT : `[Task](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)`> `[provideApkOutputToTask](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutputProviders#provideApkOutputToTask(org.gradle.api.tasks.TaskProvider,kotlin.Function1,com.android.build.api.variant.DeviceSpec))`(` ` taskProvider: `[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)`<TaskT>,` ` taskInput: (TaskT) `->` `[Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)`<`[ApkOutput](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutput)`>,` ` deviceSpec: `[DeviceSpec](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/DeviceSpec) `)` Add Variant's Apk Output for a specific device specification to a Task. |

## Public functions

### provideApkOutputToTask

Added in 8.9.3  

```
@Incubating
fun <TaskT : Task> provideApkOutputToTask(
    taskProvider: TaskProvider<TaskT>,
    taskInput: (TaskT) -> Property<ApkOutput>,
    deviceSpec: DeviceSpec
): Unit
```

Add Variant's Apk Output for a specific device specification to a Task. The Apk Output includes an ordered collection of batches of Apks to install on a device that matches the device specification available at the configuration time.  

|                                                                                                                 Parameters                                                                                                                 |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `taskProvider: `[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)`<TaskT>`                                                                                                                    | the[TaskProvider](https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskProvider.html)returned by Gradle's Task manager when registering the Task of type[TaskT](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutputProviders#provideApkOutputToTask(org.gradle.api.tasks.TaskProvider,kotlin.Function1,com.android.build.api.variant.DeviceSpec)). |
| `taskInput: (TaskT) `->` `[Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)`<`[ApkOutput](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutput)`>` | The method reference the[TaskT](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/ApkOutputProviders#provideApkOutputToTask(org.gradle.api.tasks.TaskProvider,kotlin.Function1,com.android.build.api.variant.DeviceSpec))will use to retrieve the current artifact                                                                                                     |
| `deviceSpec: `[DeviceSpec](https://developer.android.com/reference/tools/gradle-api/8.9/com/android/build/api/variant/DeviceSpec)                                                                                                          | the device specification                                                                                                                                                                                                                                                                                                                                                                                        |