Component
interface Component : ComponentIdentity
com.android.build.api.variant.Component |
Summary
Public methods |
|
---|---|
abstract Unit |
Sets the frame computation mode that will be applied to the bytecode of the classes instrumented by ASM visitors registered through transformClassesWith. |
abstract Unit |
transformClassesWith(classVisitorFactoryImplClass: Class<out AsmClassVisitorFactory<ParamT>>, scope: InstrumentationScope, instrumentationParamsConfig: (ParamT) -> Unit) Registers an asm class visitor to instrument the classes defined by the given scope. |
Properties |
|
---|---|
abstract Artifacts |
Access to the variant's buildable artifacts for build customization. |
Inherited properties |
|
---|---|
Public methods
setAsmFramesComputationMode
abstract fun setAsmFramesComputationMode(mode: FramesComputationMode): Unit
Sets the frame computation mode that will be applied to the bytecode of the classes instrumented by ASM visitors registered through transformClassesWith. The default mode is to copy frames.
When setting this multiple times, the mode with the highest enum value will be selected.
transformClassesWith
abstract fun <ParamT : InstrumentationParameters> transformClassesWith(
classVisitorFactoryImplClass: Class<out AsmClassVisitorFactory<ParamT>>,
scope: InstrumentationScope,
instrumentationParamsConfig: (ParamT) -> Unit
): Unit
Registers an asm class visitor to instrument the classes defined by the given scope. An instance of the factory will be instantiated and used to create visitors for each class.
Example:
androidComponentsExtension.onVariants(selector().all(), { transformClassesWith(AsmClassVisitorFactoryImpl.class, InstrumentationScope.Project) { params -> params.x = "value" } setAsmFramesComputationMode(COMPUTE_FRAMES_FOR_INSTRUMENTED_METHODS) })
This API is experimental and subject to breaking change and we strongly suggest you don't publish plugins that depend on it yet.
Parameters | |
---|---|
classVisitorFactoryImplClass: Class<out AsmClassVisitorFactory<ParamT>> | the factory class implementing AsmClassVisitorFactory |
scope: InstrumentationScope | either instrumenting the classes of the current project or the project and its dependencies |
instrumentationParamsConfig: (ParamT) -> Unit | the configuration function to be applied to the instantiated InstrumentationParameters object before passed to AsmClassVisitorFactory.createClassVisitor. |
Properties
artifacts
abstract val artifacts: Artifacts
Access to the variant's buildable artifacts for build customization.