美文网首页
了解一下TransfromTask

了解一下TransfromTask

作者: 葛糖糖 | 来源:发表于2022-03-27 23:13 被阅读0次

自定义任务中,在任务执行阶段会去执行被 @TaskAction 注解的方法,这里也就是执行 transfrom 方法,而 transfrom 方法中最后又会调用到 transform 的 transfrom 方法

/** A task running a transform. */
@CacheableTask
public class TransformTask extends StreamBasedTask implements Context {

    @TaskAction
    void transform(final IncrementalTaskInputs incrementalTaskInputs)
            throws IOException, TransformException, InterruptedException {
        ....
        recorder.record(
                ExecutionType.TASK_TRANSFORM,
                executionInfo,
                getProject().getPath(),
                getVariantName(),
                new Recorder.Block<Void>() {
                    @Override
                    public Void call() throws Exception {

                        transform.transform(
                                new TransformInvocationBuilder(TransformTask.this)
                                        .addInputs(consumedInputs.getValue())
                                        .addReferencedInputs(referencedInputs.getValue())
                                        .addSecondaryInputs(changedSecondaryInputs.getValue())
                                        .addOutputProvider(
                                                outputStream != null
                                                        ? outputStream.asOutput(
                                                                isIncremental.getValue())
                                                        : null)
                                        .setIncrementalMode(isIncremental.getValue())
                                        .build());

                        if (outputStream != null) {
                            outputStream.save();
                        }
                        return null;
                    }
                });
    }
    ...
}

我们自定义的Transform,添加到了extension中,然后在打包阶段编译java->class之后,class->dex之前,遍历extension中的Transform(包括我们自定义的)然后添加到TransformManager 注册为 TransformTask,当执行Task时候,在调用Transform的transform方法,这样就达到了在dex之前修改字节码的目的.

相关文章

  • 了解一下TransfromTask

    自定义任务中,在任务执行阶段会去执行被 @TaskAction 注解的方法,这里也就是执行 transfrom 方...

  • 了解一下

    中国互联网公司Top10,你不能只知道BAT 网络信息中心8月20日发布了互联网报告称到今年6月份中国网民数量已经...

  • 了解一下

    焦炭味的面包 了解一下 下班早了 回到家感觉很空 想学点东西 又静不下来心 焦虑

  • 了解一下

    什么也没有 就是了解一下

  • 了解一下

    白糖、红糖、冰糖 三者功效有差别吗 怎样吃最合适 赶紧来看看吧 白糖、红糖、冰糖,其实大都是从甘蔗里面提取的,都属...

  • 了解一下

    今天看了一下《战争论》这本书,看不太懂,里面涉及到政治、军事、哲学上的问题。为什么要看呢?世间万物都是相通的...

  • 了解一下

    八国联军是哪八国? 日本军8000人;德国军7000人;沙俄军4800人;英国军3000人;美国军2100人;法国...

  • LiveData了解一下

    什么是LiveData 它可以用来持有 可被观察的数据,可以感知到UI组件的生命周期,只有组件处于活动(START...

  • 减肥? 了解一下!

    以下请调成高分贝 “我要减肥、我要减脂。” “救命啊!我的腿好粗啊,怎么办?” “什么?老娘有双下巴啦???” 咳...

  • Lifecycle 了解一下

    Lifecycle 一、它是什么 Android 组件大多都有自己的生命周期,基于需求,我们可能需要在某些生命周期...

网友评论

      本文标题:了解一下TransfromTask

      本文链接:https://www.haomeiwen.com/subject/zesujrtx.html