前言
不得不說在AndroidStudio運(yùn)行代碼簡(jiǎn)直太慢了,雖然有很多Gradle配置加速但是效果不是很明顯,這大大影響了我們的開發(fā)效率,根據(jù)自己的學(xué)習(xí)這里大家提供了兩款工具JRebel for Android和阿里的freeline
一、JRebel for Android
介紹:Jrebel是一款Java程序的開發(fā)工具,基于差量更新方法。它允許你的應(yīng)用程序代碼更新之后不用重新部署或重啟,而是直接將修改的文件傳送過去。毫無疑問,支持Android應(yīng)用程序,無須配置,使用起來超簡(jiǎn)單方便,比較苦逼的是這個(gè)是付費(fèi)的,但是注冊(cè)之后可以體驗(yàn)21天。
JRebel安裝與使用
1:通過AndroidStudiox下載插件

之后重啟就可以看到

當(dāng)你第一次運(yùn)行的時(shí)候按第一個(gè)按鈕,之后發(fā)生改變就直接按第三個(gè)按鈕這樣的你真機(jī)或模擬器就能快速的顯示了。
二 、Freeline
Freeline是螞蟻金服旗下一站式理財(cái)平臺(tái)螞蟻聚寶團(tuán)隊(duì)在Android平臺(tái)上的量身定做的一個(gè)基于動(dòng)態(tài)替換的編譯方案,穩(wěn)定性方面:完善的基線對(duì)齊,進(jìn)程級(jí)別異常隔離機(jī)制。性能方面:內(nèi)部采用了類似Facebook的開源工具buck的多工程多任務(wù)并發(fā)思想, 并對(duì)代碼及資源編譯流程做了深入的性能優(yōu)化。
簡(jiǎn)單來說,就是阿里提供的一個(gè)增量編譯方案,主要是為了加快日常開發(fā)過程中的項(xiàng)目編譯速度,但是目前只支持debug模式非混淆的開發(fā)。
地址:地址:https://github.com/alibaba/freeline
freeline安裝與使用
1、下載插件

安裝完成后我們會(huì)在工具欄看到Freeline的圖標(biāo),如下所示:

2、在項(xiàng)目級(jí)的build.gradle 文件中添加Freeline的依賴

3、在項(xiàng)目的主module的build.gradle中,應(yīng)用Freeline插件的依賴

4、自定義application,在onCreate中加入FreelineCore.init(this);
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FreelineCore.init(this);
}
}
之后直接運(yùn)行就可以了
三、總結(jié)對(duì)比
JRebel for Android
· 優(yōu)點(diǎn)
1:在 Instant Run 之前就已經(jīng)存在的 Android 平臺(tái)上的增量編譯解決方案,zeroturnround 有大量 JVM 上熱部署的實(shí)踐積累
2:零配置,只需安裝 Android Studio 插件,立刻可以運(yùn)行
3:相比 Instant Run 支持的范圍廣
4:支持 Retrolambda 與部分流行注解庫(kù)
5:字節(jié)碼層面的動(dòng)態(tài)加載,理論上支持幾乎所有基于 JVM 語(yǔ)言,包括 Kotlin、Groovy 等
· 缺點(diǎn)
1:收費(fèi),價(jià)格較高,可以參考鏈接
2:不支持 databinding
3:只有收費(fèi)版才能 debug,有專門的 debug 工具
4:Crash 后需要重新全量編譯,單次全量編譯、安裝的速度非常慢
Freeline
· 優(yōu)點(diǎn)
1:支持大多數(shù)場(chǎng)景的增量編譯
2:支持 Retrolambda 與 APT
3:支持 so 動(dòng)態(tài)替換
4:App crash 后,仍然可以通過增量編譯來修復(fù)
5:大多數(shù)情況下增量編譯可以在 10s 內(nèi)完成
· 缺點(diǎn)
1:初次接入可能存在一定的問題,需要稍微花點(diǎn)時(shí)間來解決
2:在簡(jiǎn)單的工程上,與其他構(gòu)建方案相比,沒有明顯的優(yōu)勢(shì)
3:不支持 databinding
4:不支持刪除帶 id 的資源
5:不支持 Kotlin