公司有个原生项目,Java代码达到6M多,是从2016年开始写的代码,用的gradle版本比较低,res资源也比较多,每次代码修改,编译时间都再半分钟以上,这让我头疼不已。我为此做了两件事:
1,minify工程,把框架抽出来,需要迭代的功能往里加
2,寻找快速编译插件,目前发现两款插件,一款是阿里的Freeline,一款是JRebel。
现在就来说这两款插件的特点吧
java代码修改后能瞬间响应,真正秒级编译
res文件layout文件编辑,需要重新编译资源,否则报错
使用过程:
1,python 2.7版本安装,安装好后需要加入环境变量
2,在www.plugins.jetbrains下载Freeline插件(studio没有搜到)
3,根目录的build.gradle,加入
repositories { jcenter() } dependencies { classpath 'com.antfortune.freeline:gradle:0.8.8' }4,app下的build.gradle加入
apply plugin: 'com.antfortune.freeline' android { ... //关键 freeline { hack true //注意这里的XXX替换掉 productFlavor "XXX" autoDependency false } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') //关键 compile 'com.antfortune.freeline:runtime:0.8.8' }}
5,Application加入
FreelineCore.init(this,this);6,在android工程根目录,Windows 输入gradlew initFreeline,Mac/Linux 输入./gradlew initFreeline,此时会进行一次长时间的 全量编译
7,修改java代码后,输入python freeline.py即可热重载
8,修改res下代码,建议clean后重编代码然后再次initFreeline
python freeline.py -c && gradlew compileDebugSources && python freeline.py
9,如果要回到原始的构建方式,需要clean工程后运行
gradlew clean
直接到Settings->Plubins去安装即可
使用方法有手就行,只要操作两个按钮,一个是初次启动,一个是apply changes,热重载