AndroidComponentsExtension
@Incubating interface AndroidComponentsExtension<VariantBuilderT : VariantBuilder, VariantT : Variant>
com.android.build.api.extension.AndroidComponentsExtension |
Generic extension for Android Gradle Plugin related components.
Each component has a type, like application or library and will have a dedicated extension with methods that are related to the particular component type.
Summary
Public methods |
|
---|---|
abstract Unit |
androidTests(selector: VariantSelector = selector().all(), callback: Action<AndroidTest>) Allow for registration of a callback to be called with instances of type AndroidTest once the list of com.android.build.api.artifact.Artifact has been determined. |
abstract Unit |
androidTests(selector: VariantSelector = selector().all(), callback: (AndroidTest) -> Unit) Action based version of the AndroidTest above. |
abstract Unit |
beforeAndroidTests(selector: VariantSelector = selector().all(), callback: (AndroidTestBuilder) -> Unit) Allow for registration of a callback to be called with AndroidTestBuilder that satisfies the selector. |
abstract Unit |
beforeAndroidTests(selector: VariantSelector = selector().all(), callback: Action<AndroidTestBuilder>) Action based version of the beforeAndroidTests above. |
abstract Unit |
beforeUnitTests(selector: VariantSelector = selector().all(), callback: (UnitTestBuilder) -> Unit) Allow for registration of a callback to be called with UnitTestBuilder that satisfies the selector. |
abstract Unit |
beforeUnitTests(selector: VariantSelector = selector().all(), callback: Action<UnitTestBuilder>) Action based version of beforeUnitTests above. |
abstract Unit |
beforeVariants(selector: VariantSelector = selector().all(), callback: (VariantBuilderT) -> Unit) Method to register a callback to be called with VariantBuilderT instances that satisfies the selector. |
abstract Unit |
beforeVariants(selector: VariantSelector = selector().all(), callback: Action<VariantBuilderT>) Action based version of beforeVariants above. |
abstract Unit |
onVariants(selector: VariantSelector = selector().all(), callback: (VariantT) -> Unit) Allow for registration of a callback to be called with variant instances of type VariantT once the list of com.android.build.api.artifact.Artifact has been determined. |
abstract Unit |
onVariants(selector: VariantSelector = selector().all(), callback: Action<VariantT>) Action based version of onVariants above. |
abstract VariantSelector |
selector() Creates a VariantSelector instance that can be configured to reduce the set of ComponentBuilder instances participating in the beforeVariants and onVariants callback invocation. |
abstract Unit |
unitTests(selector: VariantSelector = selector().all(), callback: Action<UnitTest>) Allow for registration of a callback to be called with instances of type UnitTest once the list of com.android.build.api.artifact.Artifact has been determined. |
abstract Unit |
unitTests(selector: VariantSelector = selector().all(), callback: (UnitTest) -> Unit) |
Properties |
|
---|---|
abstract SdkComponents |
Provides access to underlying Android SDK and build-tools components like adb. |
Public methods
androidTests
abstract fun androidTests(
selector: VariantSelector = selector().all(),
callback: Action<AndroidTest>
): Unit
Allow for registration of a callback to be called with instances of type AndroidTest once the list of com.android.build.api.artifact.Artifact has been determined.
At this stage, access to the DSL objects is disallowed and access to the AndroidTestBuilder instance is limited to read-only access.
Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as org.gradle.api.Tasks are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see com.android.build.api.artifact.Artifacts for details.
Code executing in the callback also has access to the AndroidTest information which is used to configure org.gradle.api.Task inputs. Such information represented as org.gradle.api.provider.Property can still be modified ensuring that all org.gradle.api.Tasks created by the Android Gradle Plugin use the updated value.
androidTests
abstract fun androidTests(
selector: VariantSelector = selector().all(),
callback: (AndroidTest) -> Unit
): Unit
Action based version of the AndroidTest above.
beforeAndroidTests
abstract fun beforeAndroidTests(
selector: VariantSelector = selector().all(),
callback: (AndroidTestBuilder) -> Unit
): Unit
Allow for registration of a callback to be called with AndroidTestBuilder that satisfies the selector. The callback will be called as soon as the AndroidTestBuilder instance has been created but before any com.android.build.api.artifact.Artifact related to android tests has been determined, therefore the build flow can still be changed when the callback is invoked.
Parameters | |
---|---|
selector: VariantSelector = selector().all() | VariantSelector instance to select which instance of AndroidTestBuilder are of interest. By default, all instances are of interest. |
callback: (AndroidTestBuilder) -> Unit | lambda to be called with each instance AndroidTestBuilder of interest. |
beforeAndroidTests
abstract fun beforeAndroidTests(
selector: VariantSelector = selector().all(),
callback: Action<AndroidTestBuilder>
): Unit
Action based version of the beforeAndroidTests above.
beforeUnitTests
abstract fun beforeUnitTests(
selector: VariantSelector = selector().all(),
callback: (UnitTestBuilder) -> Unit
): Unit
Allow for registration of a callback to be called with UnitTestBuilder that satisfies the selector. The callback will be called as soon as the UnitTestBuilder instance has been created but before any com.android.build.api.artifact.Artifact related to unit tests has been determined, therefore the build flow can still be changed when the callback is invoked.
Parameters | |
---|---|
selector: VariantSelector = selector().all() | VariantSelector instance to select which instance of UnitTestBuilder are of interest. By default, all instances are of interest. |
callback: (UnitTestBuilder) -> Unit | lambda to be called with each instance UnitTestBuilder of interest. |
beforeUnitTests
abstract fun beforeUnitTests(
selector: VariantSelector = selector().all(),
callback: Action<UnitTestBuilder>
): Unit
Action based version of beforeUnitTests above.
beforeVariants
abstract fun beforeVariants(
selector: VariantSelector = selector().all(),
callback: (VariantBuilderT) -> Unit
): Unit
Method to register a callback to be called with VariantBuilderT instances that satisfies the selector. The callback will be called as soon as the VariantBuilderT instance has been created but before any com.android.build.api.artifact.Artifact has been determined, therefore the build flow can still be changed when the callback is invoked.
At this stage, access to the DSL objects is disallowed, use afterDsl method to programmatically access the DSL objects before the VariantBuilderT object is built.
Example without selection:
androidComponents { beforeVariants { println("Called with variant : ${'$'}name") } }
Example with selection:
androidComponents { val debug = selector().withBuildType("debug") beforeVariants(debug) { println("Called with variant : ${'$'}name") } }
Parameters | |
---|---|
selector: VariantSelector = selector().all() | VariantSelector instance to select which instance of VariantBuilderT are of interest. By default, all instances are of interest. |
callback: (VariantBuilderT) -> Unit | lambda to be called with each instance of VariantBuilderT of interest. |
beforeVariants
abstract fun beforeVariants(
selector: VariantSelector = selector().all(),
callback: Action<VariantBuilderT>
): Unit
Action based version of beforeVariants above.
onVariants
abstract fun onVariants(
selector: VariantSelector = selector().all(),
callback: (VariantT) -> Unit
): Unit
Allow for registration of a callback to be called with variant instances of type VariantT once the list of com.android.build.api.artifact.Artifact has been determined.
At this stage, access to the DSL objects is disallowed and access to the VariantBuilderT instance is limited to read-only access.
Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as org.gradle.api.Tasks are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see com.android.build.api.artifact.Artifacts for details.
Code executing in the callback also has access to the VariantT information which is used to configure org.gradle.api.Task inputs (for example, the buildConfigFields). Such information represented as org.gradle.api.provider.Property can still be modified ensuring that all org.gradle.api.Tasks created by the Android Gradle Plugin use the updated value.
onVariants
abstract fun onVariants(
selector: VariantSelector = selector().all(),
callback: Action<VariantT>
): Unit
Action based version of onVariants above.
selector
abstract fun selector(): VariantSelector
Creates a VariantSelector instance that can be configured to reduce the set of ComponentBuilder instances participating in the beforeVariants and onVariants callback invocation.
Return | |
---|---|
VariantSelector to select the variants of interest. |
unitTests
abstract fun unitTests(
selector: VariantSelector = selector().all(),
callback: Action<UnitTest>
): Unit
Allow for registration of a callback to be called with instances of type UnitTest once the list of com.android.build.api.artifact.Artifact has been determined.
At this stage, access to the DSL objects is disallowed and access to the UnitTestBuilder instance is limited to read-only access.
Because the list of artifacts (including private ones) is final, one cannot change the build flow anymore as org.gradle.api.Tasks are now expecting those artifacts as inputs. However users can modify such artifacts by replacing or transforming them, see com.android.build.api.artifact.Artifacts for details.
Code executing in the callback also has access to the UnitTest information which is used to configure org.gradle.api.Task inputs. Such information represented as org.gradle.api.provider.Property can still be modified ensuring that all org.gradle.api.Tasks created by the Android Gradle Plugin use the updated value.
unitTests
abstract fun unitTests(
selector: VariantSelector = selector().all(),
callback: (UnitTest) -> Unit
): Unit
Properties
sdkComponents
abstract val sdkComponents: SdkComponents
Provides access to underlying Android SDK and build-tools components like adb.
Return | |
---|---|
SdkComponents to access Android SDK used by Gradle. |