android自定义task,Android开发:《Gradle Recipes for Android》阅读笔记(翻译)4.2——增加自定义task(示例代码)...

问题:

你想要在整体的构建过程中加入自定义的task。

解决方案:

使用dependOn属性将你的任务插入 directed acyclic graph

讨论:

在初始化阶段,Gradle将任务根据依赖集合成一个序列。结果就是一个DAG。举例子,Gradle记录为java插件生成一个DAG,如下图:

9919e6a612e6f3632096dc773db15b8a.png

"directed"意味着每个依赖箭头只有一个方向。"Acyclic"意味着在图表中没有循环。

在主进程中增加自定义task意味着,在图表的合适位置插入你的任务。

4.1节的copyApks任务被定义用来将生成的apk复制到一个单独的目录下。为了简便这个任务被复用:

d48748fc07033375a0205b0e209d172e.png

如果apk没有生成,这个任务没什么实际用处。assemble任务生成apk。如果将它作为copyApks任务的依赖:

a2ca5c9737d0f21c0bb862c73ffdcfb6.png

对assembleDebug的依赖意味着在copy任务执行之前,debug APK会被生成。你可以使用assemble替代,这样你就是使用release的APK。

如果你想要在build的时候都运行copyApks任务,你可以将它作为build task的依赖。如:

9f37997adfab538b05dc5c8e0cef9df3.png

现在运行build task也会将apks复制到单独的文件夹。你已经使用正确的信息将copyApks任务插入到DAG。

移除生成的apks目录下的所有apk也可以同样的方式。根目录下有个clean任务我们可以编辑:

cc2a26f303fac5e6a3e0a058cdbea06c.png

delete任务接受一个files或者folders的列表,以做到更多的功能,很容易修改这个任务,如:

af8ea4f5ba968befeb9943f41261b834.png

任何自定义的任务都可以通过这样的机制添加到build进程中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值