Package com.ss.android.ugc.bytex.common
Interface IPlugin
-
- All Known Implementing Classes:
AbsMainProcessPlugin,AbsPlugin,CommonPlugin
public interface IPlugin
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classIPlugin.HookType
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description default voidafterExecute()插件执行执行结束后的回调,不管成功和失败都会执行.做一些数据回收处理工作booleanalone()是否用alone模式,即形成单独的transform if alone, it will make your plugin as a single transform.booleanenable(TransformContext transformContext)Determine whether your plugin is enable.default BaseExtensiongetExtension()TransformFlowgetTransformFlow()default booleanhookTask()是否使用hook模式运行插件,true表示使用hook模式default IPlugin.HookTypehookTask(org.gradle.api.Task task)是否需要Hook这个taskdefault java.lang.StringhookTransformName()Deprecated.booleanisRunningAlone()是否会alone形成单独的transform运行。alone()表示配置状态,isRunningAlone()表示结果 Whether it will run in a single transform alone.default java.lang.Stringname()TransformFlowregisterTransformFlow(MainTransformFlow mainFlow, TransformContext transformContext)TransformFlow的概念: 处理全部的构建产物(绝大部分为class文件)的过程为一次TransformFlow 一个插件可以独立使用单独的TransformFlow,也可以搭车到全局的MainTransformFlow TransformFlow: a process to handle the whole class files.default booleanshouldSaveCache()default voidstartExecute(TransformContext transformContext)准备执行的回调default TransformConfigurationtransformConfiguration()
-
-
-
Method Detail
-
name
default java.lang.String name()
-
getExtension
default BaseExtension getExtension()
-
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.
-
transformConfiguration
@Nonnull default TransformConfiguration transformConfiguration()
-
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 usehookTask()andhookTask(Task)instead
-
hookTask
default boolean hookTask()
是否使用hook模式运行插件,true表示使用hook模式
-
hookTask
@Nonnull default IPlugin.HookType hookTask(@Nonnull org.gradle.api.Task task)
是否需要Hook这个task- Parameters:
task- 被hook的Task- Returns:
IPlugin.HookType.Before该task将被当前插件hook,插件并在task之前处理IPlugin.HookType.After该task将被当前插件hook,插件并在task之后处理IPlugin.HookType.None插件不hook这个task
-
shouldSaveCache
default boolean shouldSaveCache()
-
startExecute
default void startExecute(TransformContext transformContext)
准备执行的回调
-
afterExecute
default void afterExecute() throws java.lang.Throwable插件执行执行结束后的回调,不管成功和失败都会执行.做一些数据回收处理工作- Throws:
java.lang.Throwable
-
-