结合现有开源项目讲述 GradlePluginDemo
<1>Android Gradle Plugin插件开发——基础
<2>Android Gradle Plugin插件开发——进阶
<3>Android Gradle Plugin插件开发——出师
1.通过上篇讲解,已经学会了如何创建一个简单的plugin,当然这不是一个HelloWord,只是打印了另外一句话。当使用插件com.android.application的时候,需要配置一些参数如:android,defaultConfig等,那么想给自己的插件配置参数应该如何操作了,别急,下面一一道来。
1》建立一个参数配置类
class MethodTimerExtension {
String exclude = ""//"android,uis.com.
boolean isMain = true//主线程
int timeout = 100//超时时间
boolean enableJar = true//jar包是否处理
boolean enableLog = true
}
2》然后在上文的MethodTimerPlugin.applay中加入,此时通过project.methodTimer获取配置的值,在applay函数中暂时不能使用,在transform中就可以直接使用了
project.extensions.create("methodTimer",MethodTimerExtension)
3》在使用插件的地方配置
apply plugin: 'com.uis.methodtimer'
methodTimer{
exclude 'interprocess.uis.com.web_demo.PermissionProxy'
isMain false
enableJar true
enableLog true
timeout 50
}
//此插件的参数配置完成,那么如何使用呢?
在上文的MethodTimerTransform.transform方法中,可以通过以下语句打印出来
println(project.methodTimer)
也可以在MethodTimerPlugin.applay中加入一个任务打印
project.task("paramTask").doLast {
println(project.methodTimer)
}
2.参数获取了,那么如何进行代码注入呢?代码注入需要考虑到class文件和jar文件,对于class文件直接通过遍历目录即可;对于jar文件jav