前言
不得不說在AndroidStudio運行代碼簡直太慢了直焙,雖然有很多Gradle配置加速但是效果不是很明顯,這大大影響了我們的開發(fā)效率吞琐,根據(jù)自己的學(xué)習(xí)這里大家提供了兩款工具JRebel for Android和阿里的freeline
一捆探、JRebel for Android
介紹:Jrebel是一款Java程序的開發(fā)工具,基于差量更新方法站粟。它允許你的應(yīng)用程序代碼更新之后不用重新部署或重啟黍图,而是直接將修改的文件傳送過去。毫無疑問奴烙,支持Android應(yīng)用程序助被,無須配置,使用起來超簡單方便切诀,比較苦逼的是這個是付費的揩环,但是注冊之后可以體驗21天。
JRebel安裝與使用
1:通過AndroidStudiox下載插件
之后重啟就可以看到
當(dāng)你第一次運行的時候按第一個按鈕幅虑,之后發(fā)生改變就直接按第三個按鈕這樣的你真機或模擬器就能快速的顯示了丰滑。
二 、Freeline
Freeline是螞蟻金服旗下一站式理財平臺螞蟻聚寶團隊在Android平臺上的量身定做的一個基于動態(tài)替換的編譯方案倒庵,穩(wěn)定性方面:完善的基線對齊褒墨,進程級別異常隔離機制炫刷。性能方面:內(nèi)部采用了類似Facebook的開源工具buck的多工程多任務(wù)并發(fā)思想, 并對代碼及資源編譯流程做了深入的性能優(yōu)化。
簡單來說貌亭,就是阿里提供的一個增量編譯方案柬唯,主要是為了加快日常開發(fā)過程中的項目編譯速度认臊,但是目前只支持debug模式非混淆的開發(fā)圃庭。
地址:地址:https://github.com/alibaba/freeline
freeline安裝與使用
1、下載插件
安裝完成后我們會在工具欄看到Freeline的圖標(biāo)失晴,如下所示:
2剧腻、在項目級的build.gradle 文件中添加Freeline的依賴
3、在項目的主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);
}
}
之后直接運行就可以了
三拆又、總結(jié)對比
JRebel for Android
· 優(yōu)點
1:在 Instant Run 之前就已經(jīng)存在的 Android 平臺上的增量編譯解決方案儒旬,zeroturnround 有大量 JVM 上熱部署的實踐積累
2:零配置,只需安裝 Android Studio 插件帖族,立刻可以運行
3:相比 Instant Run 支持的范圍廣
4:支持 Retrolambda 與部分流行注解庫
5:字節(jié)碼層面的動態(tài)加載栈源,理論上支持幾乎所有基于 JVM 語言,包括 Kotlin竖般、Groovy 等
· 缺點
1:收費甚垦,價格較高,可以參考鏈接
2:不支持 databinding
3:只有收費版才能 debug涣雕,有專門的 debug 工具
4:Crash 后需要重新全量編譯艰亮,單次全量編譯、安裝的速度非常慢
Freeline
· 優(yōu)點
1:支持大多數(shù)場景的增量編譯
2:支持 Retrolambda 與 APT
3:支持 so 動態(tài)替換
4:App crash 后挣郭,仍然可以通過增量編譯來修復(fù)
5:大多數(shù)情況下增量編譯可以在 10s 內(nèi)完成
· 缺點
1:初次接入可能存在一定的問題迄埃,需要稍微花點時間來解決
2:在簡單的工程上,與其他構(gòu)建方案相比兑障,沒有明顯的優(yōu)勢
3:不支持 databinding
4:不支持刪除帶 id 的資源
5:不支持 Kotlin