Android最好的编译插件?Freeline和JRebel对比分析

       公司有个原生项目,Java代码达到6M多,是从2016年开始写的代码,用的gradle版本比较低,res资源也比较多,每次代码修改,编译时间都再半分钟以上,这让我头疼不已。我为此做了两件事:

1,minify工程,把框架抽出来,需要迭代的功能往里加

2,寻找快速编译插件,目前发现两款插件,一款是阿里的Freeline,一款是JRebel。

现在就来说这两款插件的特点吧

Freeline:

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

Freeline使用体验:

优点:

1,java代码修改后急速编译

2,所有机型都能用

缺点:

1,代码侵入性强

2,配置麻烦

3,res无法热重载

 

JRebel

直接到Settings->Plubins去安装即可

使用方法有手就行,只要操作两个按钮,一个是初次启动,一个是apply changes,热重载

JRebel使用体验:

优点:

1,代码无侵入性

2,无需配置

3,res热重载效率高

缺点:

1,java修改重载效率比Freeline低

2,部分机型因为无法Instant run,不能用JRebel

结论:如果res无需修改或者小改,主要修改java逻辑,可以用Freeline

如果经常修改res,还是用JRebel吧.

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值