use of com.android.build.gradle.internal.pipeline.TransformTask in project atlas by alibaba.
the class TransformReplacer method replaceShrinkResourcesTransform.
public void replaceShrinkResourcesTransform() {
File shrinkerOutput = FileUtils.join(variantContext.getScope().getGlobalScope().getIntermediatesDir(), "res_stripped", variantContext.getScope().getVariantConfiguration().getDirName());
List<TransformTask> baseTransforms = TransformManager.findTransformTaskByTransformType(variantContext, ShrinkResourcesTransform.class);
for (TransformTask transform : baseTransforms) {
ShrinkResourcesTransform oldTransform = (ShrinkResourcesTransform) transform.getTransform();
ResourcesShrinker resourcesShrinker = new ResourcesShrinker(oldTransform, variantContext.getVariantData(), variantContext.getScope().getOutput(TaskOutputHolder.TaskOutputType.PROCESSED_RES), shrinkerOutput, AaptGeneration.fromProjectOptions(variantContext.getScope().getGlobalScope().getProjectOptions()), variantContext.getScope().getOutput(TaskOutputHolder.TaskOutputType.SPLIT_LIST), variantContext.getProject().getLogger(), variantContext);
ReflectUtils.updateField(transform, "transform", resourcesShrinker);
}
}
use of com.android.build.gradle.internal.pipeline.TransformTask in project atlas by alibaba.
the class TransformReplacer method replaceDexArchiveBuilderTransform.
public void replaceDexArchiveBuilderTransform(BaseVariantOutput vod) {
List<TransformTask> list = TransformManager.findTransformTaskByTransformType(variantContext, DexArchiveBuilderTransform.class);
DefaultDexOptions dexOptions = variantContext.getAppExtension().getDexOptions();
boolean minified = variantContext.getScope().getCodeShrinker() != null;
ProjectOptions projectOptions = variantContext.getScope().getGlobalScope().getProjectOptions();
FileCache userLevelCache = getUserDexCache(minified, dexOptions.getPreDexLibraries());
for (TransformTask transformTask : list) {
AtlasDexArchiveBuilderTransform atlasDexArchiveBuilderTransform = new AtlasDexArchiveBuilderTransform(variantContext, vod, dexOptions, variantContext.getScope().getGlobalScope().getAndroidBuilder().getErrorReporter(), userLevelCache, variantContext.getScope().getMinSdkVersion().getFeatureLevel(), variantContext.getScope().getDexer(), projectOptions.get(BooleanOption.ENABLE_GRADLE_WORKERS), projectOptions.get(IntegerOption.DEXING_READ_BUFFER_SIZE), projectOptions.get(IntegerOption.DEXING_WRITE_BUFFER_SIZE), variantContext.getScope().getVariantConfiguration().getBuildType().isDebuggable());
atlasDexArchiveBuilderTransform.setTransformTask(transformTask);
ReflectUtils.updateField(transformTask, "transform", atlasDexArchiveBuilderTransform);
if (variantContext.getScope().getInstantRunBuildContext().isInInstantRunMode() && variantContext.getVariantConfiguration().getMinSdkVersion().getApiLevel() < 21) {
transformTask.doLast(task -> {
task.getLogger().info("generate maindexList......");
generateMainDexList(variantContext.getScope());
});
}
}
}
use of com.android.build.gradle.internal.pipeline.TransformTask in project atlas by alibaba.
the class MtlTransformInjector method injectTasks.
public void injectTasks(List<MtlTransformContext> mtlTaskContexts) {
for (final Object vod : appVariantContext.getVariantOutputData()) {
for (MtlTransformContext mtlTransformContext : mtlTaskContexts) {
TransformTask transformTask = findTransformTask(mtlTransformContext);
TransformTask injectedTask = appVariantContext.getInjectTransformManager().addInjectTransformBeforeTransform(transformTask.getTransform().getClass(), TransformManager.createTransform(appVariantContext, mtlTransformContext.getTransformTask(), (BaseVariantOutput) vod), appVariantContext.getScope());
injectedTask.dependsOn(appVariantContext.getVariantData().compileTask);
}
}
}
Aggregations