# BuiltArtifactsLoader

# BuiltArtifactsLoader

```
interface BuiltArtifactsLoader
```

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.variant.BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#) |

Facility to load[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)instances from metadata files in the file system.

When an artifact can have more than one output file, its[com.android.build.api.artifact.SingleArtifact](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/artifact/SingleArtifact.html#)is annotated with[com.android.build.api.artifact.SingleArtifact.ContainsMany](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#).[com.android.build.api.artifact.ArtifactTypes.APK](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#)is an example of such an artifact: the folder produced can contain multiple APK files when multi-apk build is configured.

To be able to understand the content of such a folder, and in particular to know which file is associated with which[VariantFilter](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantFilter), a metadata file is stored along side the artifact files.

[BuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#)will allow to load the content of the metadata file is obtained information about each file produced by AGP.

This interface should not be implemented by third party.

Implementation of this interface can be obtained from[com.android.build.api.artifact.Artifacts.getBuiltArtifactsLoader](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/artifact/Artifacts.html#getBuiltArtifactsLoader())

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ||
|--------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)? | [load](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#load(org.gradle.api.file.Directory))`(`folder:` `[Directory](https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html)`)` Loads a metadata file from the provided[folder](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#com.android.build.api.variant.BuiltArtifactsLoader$load(org.gradle.api.file.Directory)/folder)and returns a new[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)containing the[Collection](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html)of[BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifact)that are present in the[folder](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#com.android.build.api.variant.BuiltArtifactsLoader$load(org.gradle.api.file.Directory)/folder) |
| abstract[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)? | [load](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#load(org.gradle.api.file.FileCollection))`(`fileCollection:` `[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)`)` Loads a metadata file from the provided[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)and returns a new[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)containing the[Collection](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html)of[BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifact)that are present in the[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)                                                                                                                                                                                                                      |

## Public methods

### load

```
abstract fun load(folder: Directory): BuiltArtifacts?
```

Loads a metadata file from the provided[folder](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#com.android.build.api.variant.BuiltArtifactsLoader$load(org.gradle.api.file.Directory)/folder)and returns a new[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)containing the[Collection](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html)of[BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifact)that are present in the[folder](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifactsLoader#com.android.build.api.variant.BuiltArtifactsLoader$load(org.gradle.api.file.Directory)/folder)

|                                                                                                                                                                                       Parameters                                                                                                                                                                                       ||
|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| folder:[Directory](https://docs.gradle.org/current/javadoc/org/gradle/api/file/Directory.html) | the directory abstraction that should contain built artifacts and associated metadata file saved using the[BuiltArtifacts.save](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts#save(org.gradle.api.file.Directory))methods. |

### load

```
abstract fun load(fileCollection: FileCollection): BuiltArtifacts?
```

Loads a metadata file from the provided[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)and returns a new[BuiltArtifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts)containing the[Collection](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html)of[BuiltArtifact](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifact)that are present in the[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html)

|                                                                                                                                                                                             Parameters                                                                                                                                                                                             ||
|------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| fileCollection:[FileCollection](https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html) | the file collection that should contain built artifacts and associated metadata file saved using the[BuiltArtifacts.save](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuiltArtifacts#save(org.gradle.api.file.Directory))methods. |