Freeline讓Android Studio快速編譯

前言
由于谷歌已經對外宣布停止Eclipse開發工具的支持,所以現在大部分人使用Studio進行Android開發。但是Studio在編譯的過程中,由于電腦本身的缺陷,配置過渣,編譯起來,那個叫人頭疼,分分鐘都有種“讓子彈飛會兒”的感覺。一飛就是幾分鐘或者十幾分鐘,實在是太沒有效率了。好在,為了解決這個傷腦筋的問題,螞蟻金服旗下一站式理財平臺螞蟻聚寶團隊給出了Freeline,有效地減少了日常開發中的大量重新編譯與安裝的耗時。

▲Freeline是什么
Freeline一個基于動態替換的編譯方案,5月阿里集團內部開源,穩定性方面:完善的基線對齊,進程級別異常隔離機制。性能方面:內部采用了類似Facebook的開源工具buck的多工程多任務并發思想, 并對代碼及資源編譯流程做了深入的性能優化。秒級完成增量包編譯,相比目前instant-run,buck,layoutcast等方案快數倍速度。

GitHub地址:https://github.com/alibaba/freeline
詳細介紹:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

▲是否值得用
Freeline給出來之后,外界對它的大多都是褒義評價,比如”閃電編譯“,”節省時間“,”提高效率“等等...但是,請注意 ** 前方高能!請 注意 ** 前方高能!請** 注意 ** 前方高能!盡管Freeline被描述的如此天花亂墜,在實際開發過程中,使用過的同學都知道,隱藏的坑,也數不過起來。如果想玩玩的話,那就接著往下看,如果只是想了解一下,過段時間再看看,那這篇文章看到這里就可以了。如果真的想集成到開發項目中去,就做好填坑的準備。以上,為個人言論僅供參考。好了,廢話又說了一堆,下面直接開始介紹如何使用。

▲搭建Python環境
首先,Freeline是采用Python編寫的,所以我們需要安裝python環境,根據網上的說法,最好使用python2.7+版本。 所以我們需要先安裝python環境,這里以電腦系統win7為例,其他系統安裝python環境請自行谷歌、百度。

↓↓↓ 點擊以下地址進行下載,選擇python2.7+最新版本.msi文件即可

https://www.python.org/downloads/%20zh

下載完成進行安裝,猛擊下一步,當看到如下界面,更改選項”Entire feature will be install on hard drive“,該選項會自動配置電腦上的環境變量。然后繼續猛擊下一步,直至完成安裝。


※ 注:這時候可以打開DOS命令窗口,輸入python,出現如下界面說明環境配置安裝成功。失敗的話會提示”‘python’不是內部或外部命令,也不是可運行的程序或批處理文件“

※ 但:出現 ”’python‘不是內部或外部命令,也不是可運行的程序或批處理文件“,失敗了也沒有關系,可以修改一下環境變量,把地址照著下圖,放在path最后就可以了。如果還是不行就重啟電腦。**前方高能! ** 如果再不行,那就拍拍電腦吧,再不行就谷歌和百度吧。總有一款適合你。以上,環境安裝完成。

▲使用Freeline
配置根目錄下的 build.gradle(工程級別的build.gradle文件)

配置項目下面的 build.gradle(Module級別的build.gradle文件)


自定義的 Application,同時不要忘了在AndroidManifest中application標簽下配置MyApplication

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FreelineCore.init(this);
    }
}

在studio中Terminal菜單標簽下輸入”gradlew initFreeline -Pmirror“初始化項目。首次執行initFreeline 要下載很多東西,慢慢等就行。


下載成功之后,項目目錄結構大概如下


第一次運行項目需要全局編譯并安裝到手機上,在Terminal菜單標簽下輸入" python freeline.py -f "。然后想想就知道,沒錯,接下來的事情就是接著等


接下來,隨便修改某一項代碼,使用增量編譯安裝到手機上,在Terminal菜單標簽下輸入" python freeline.py ",你會發現,這感覺分分鐘飛起。我用自己以前隨便寫的一個TextViewDemo測試,結果如下,3.5秒,確實爽歪歪。


▲Freeline常見問題
坑這么多,埋坑的總是有的。常見問題如下,如果在下面的鏈接還找不到方法可以解決,歡迎留言或者加群討論

https://github.com/alibaba/freeline/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

http://blog.csdn.net/wangjiang_qianmo/article/details/53510332

Ps:
1.如果刪除帶id的資源則必須手動強制全量更新,增量更新會報錯
2.Freeline目前只支持debug buildType,并且不支持混淆
3.gradle的改變都會觸發全量更新
4.從Freeline的編譯切換到as的編譯,必須先clean build一次
5.增量更新有可能啟動不了關閉的app,但修改已經更新到app里,手動啟動app即可看到

關于我

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容