關(guān)于Androidstudio快速編譯

前言

不得不說在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下載插件
2222.png

之后重啟就可以看到

20161125084858437.png

當(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、下載插件

20161201140919571.png

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


20161201141006953.png

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

20161201141047282.png

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

0F62EEDB-4D64-40E7-94C3-4B837C6D97D7.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容