Interface IPlugin

    • Method Detail

      • name

        default java.lang.String name()
      • enable

        boolean enable​(TransformContext transformContext)
        Determine whether your plugin is enable.
      • alone

        boolean alone()
        是否用alone模式,即形成单独的transform if alone, it will make your plugin as a single transform.
      • isRunningAlone

        boolean isRunningAlone()
        是否会alone形成单独的transform运行。alone()表示配置状态,isRunningAlone()表示结果 Whether it will run in a single transform alone. alone() indicates that plugin wants run alone, isRunningAlone() indicates that plugin will run alone.
      • registerTransformFlow

        @Nonnull
        TransformFlow registerTransformFlow​(@Nonnull
                                            MainTransformFlow mainFlow,
                                            @Nonnull
                                            TransformContext transformContext)
        TransformFlow的概念: 处理全部的构建产物(绝大部分为class文件)的过程为一次TransformFlow 一个插件可以独立使用单独的TransformFlow,也可以搭车到全局的MainTransformFlow TransformFlow: a process to handle the whole class files. Each plugin can custom their own TransformFlow. Plugins can also take a ride to the global MainTransformFlow.
        Parameters:
        mainFlow - 全局的MainTransformFlow。The global MainTransformFlow
        Returns:
        当前插件关联的TransformFlow,通常返回mainFlow就可以。如果想让插件通过单独一个TransformFlow处理class文件, 这个方法需要另外return 新的TransformFlow(可以是自定义的TransformFlow,也可以new 一个MainTransformFlow)。 If this plugin is related to the global MainTransformFlow, just return `mainFlow` is OK. If you want to handle class files with a single TransformFlow, you should return a new TransformFlow. If so, this new TransformFlow would only contain this plugin.
      • getTransformFlow

        @Nullable
        TransformFlow getTransformFlow()
        Returns:
        get the TransformFlow that the current plugin runs on
      • hookTransformName

        @Deprecated
        @Nullable
        default java.lang.String hookTransformName()
        Deprecated.
        eg:dexBuilder use hookTask() and hookTask(Task) instead
      • hookTask

        default boolean hookTask()
        是否使用hook模式运行插件,true表示使用hook模式
      • shouldSaveCache

        default boolean shouldSaveCache()
      • startExecute

        default void startExecute​(TransformContext transformContext)
        准备执行的回调
      • afterExecute

        default void afterExecute()
                           throws java.lang.Throwable
        插件执行执行结束后的回调,不管成功和失败都会执行.做一些数据回收处理工作
        Throws:
        java.lang.Throwable