Android中通过gradle脚本做的一些小事情

Android中通过gradle脚本做的一些小事情

gradle就是android自动化构建的脚本工具,在gradle中可以做很多你想不到的小事情。

1. 动态生成BuildConfig中的一些值。

各位看官看到这里可能要着急,什么垃圾东西,这个还用拿出来说?莫急,有一些小的点你可能并不知道

其实我们都知道在gradle里面提供了buildConfigField( @NonNull String type,@NonNull String name, @NonNull String value))这样的api来让我们对BuildConfig文件生成一个属性。
但是这种方式有一个弊端,就是假如说:我在App的运行期间有一个功能是动态设置的,这个功能是否启用是通过我在BuildConfig中的hasExtraFunction这个布尔值来控制的,这是我可以通过如下图的方式添加hasExtraFunction,但是在提供给测试同事Release包的同时,需要开启这个功能呢?那我就需要去手动的去修改这realese{}中的配置,如果修改了忘记改回来了,直接上线了呢?是不是很糟糕?靠人工核验终归是容易出问题的
Android中通过gradle脚本做的一些小事情_第1张图片
现在有一种比较简单的办法让你去动态的做这件事,
定义一个类,专门的去做这件事情,具体的做法如下图,
Android中通过gradle脚本做的一些小事情_第2张图片

在gradle文件中直接去定义一个类,通过project.tasks.create()创建task

这样在给测试打包的过程中可以通过 ./gradlew clean oEF aR 进行打包了。
在打包过程中可以看到如下输出
输出
可以看到已经将值修改成功,调用任务总比手动修改的风险小的多。

你可能感兴趣的:(gradle)