Android 12 Developer Preview is here! Try it out, and give us your feedback!

InstrumentationParameters

@Incubating interface InstrumentationParameters : Serializable
com.android.build.api.instrumentation.InstrumentationParameters

Parameters for a registered AsmClassVisitorFactory.

Build authors should extend this interface with any additional inputs needed for their ASM visitor, or use InstrumentationParameters.None if no parameters are needed.

The parameters will be instantiated using ObjectFactory.newInstance, configured using the given config when registering the visitor, and injected to the factory on instantiation.

The parameters will be used as Gradle inputs. Make sure to declare the inputs by annotating them using Gradle's input annotations so it's compatible with Gradle's up-to-date checks.

Example:

interface ParametersImpl : InstrumentationParameters {
  @get:Input
  val intValue: Property<Int>

  @get:Internal
  val listOfStrings: ListProperty<String>
}

androidComponentsExtension.onVariants(selector().all(), {
    transformClassesWith(AsmClassVisitorFactoryImpl.class,
                         InstrumentationScope.Project) { params ->
        // parameters configuration
        params.intValue.set(1)
        params.listOfStrings.set(listOf("a", "b"))
    }
})

Summary

Nested classes