android怎么增量编译,Android Transform增量编译

简介

这个文章的基础是你基本已经完成了简单的transfrom 的开发了,然后你碰到了编译速度慢的问题。

在Transform的抽象类中有一个isIncremental方法,这个方法就代表着是否开启增量编译。

增量编译定义

编译过程中会去遍历所有的jar .class文件,然后对文件进行io操作,以及asm插入代码,这个过程耗时一般都会很长。

这里需要注意一点:不是每次的编译都是可以怎量编译的,毕竟一次clean build完全没有增量的基础,所以,我们需要检查当前的编译是否增量编译。

需要做区分:

不是增量编译,则清空output目录,然后按照前面的方式,逐个class/jar处理

增量编译,则要检查每个文件的Status,Status分为四种,并且对四种文件的操作不尽相同

NOTCHANGED 当前文件不需要处理,甚至复制操作都不用

ADDED、CHANGED 正常处理,输出给下一个任务

REMOVED 移除outputProvider获取路径对应的文件

上述是对增量的一些定义,可以看出来在transfrom过程中,应该是对文件打了一些tag标签。

那么我们在开发阶段首先要先区分当前这次是不是增量编译,然后再编译当前变更的文件,对变更的文件进行处理。

代码分析

我在代码设计中,对transform进行了一次代码抽象,把文件操作进行了一次抽象,同时把扫描以及.class文件操作进行了一些基础封装,后续的开发就可以直接在这个的基础上进行后续快速迭代开发。

p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值