Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Freeline 讓AndroidStudio快的飛起來

Freeline 讓AndroidStudio快的飛起來

日期:2017/2/22 16:39:40      編輯:關於Android編程

你的AndroidStudio編譯時是否很卡?你的Gradle編譯時是否很慢,運行一次要等10分鐘?如果你還沒有遇到,那可能說明你的電腦配置夠好,或者項目還不夠大。

尤其像我這種公司電腦配置渣,還是機械硬盤的開發者肯定是忍不了的,太影響開發效率了,所以我們就想辦法加快編譯速度了,當然加快編譯的手段有很多種,在Android官方Instant Run出來之前,很多開發者是使用第三方的一些庫來提高開發效率,底層原理幾乎都是apk熱更新原理。在Instant Run出來之後,很多開發者都開始用這個被稱為閃電編譯的功能,但是它還是有很多不足的,具體大家可以看官網的說明:Instant Run。不過我相信Instant Run後來肯定會越來越好,我們就不用依賴什麼第三方了,比如Jack和apt就不能一起用,導致使用了apt的開發者使用lambda就得用retrolambda,這些都是需要官方來優化和改進的。廢話不多說下面正式開撸 。

Freeline介紹

今天向大家介紹一款Android平台的增量編譯工具:Freeline。Freeline是由阿裡巴巴螞蟻聚寶Android團隊開發的一款針對Android平台的增量編譯工具,它可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯並部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。

Freeline代碼開源在Github:
https://github.com/alibaba/freeline

Freeline在雲棲社區的原理說明:
https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

介紹這款工具也是我本人使用了好幾周以後覺得真心不錯,所以來分享給大家,有什麼使用上的問題歡迎來交流啊,自從使用了Freeline後真的省下了很多喝咖啡的時間,本人表示非常歡喜。

以下是從官網整理來的一些說明:
Freeline內部采用了類似Facebook的開源工具buck的多工程多任務並發思想:端口掃描,代碼掃描,並發編譯,並發dx,並發merge dex等策略,在多核機器上有明顯加速效果,另外在class及dex,resources層面作了相應緩存策略,做到真正增量開發,另外引入並優化buck的部分加速組件dx,DexMerger,資源編譯方面,深入改造了Aapt資源編譯流程,當資源發生改變時候,秒級完成增量包編譯,其中增量包僅含最小的變更集合(10Kb~數百Kb內),後期也被運用到線上進行資源/代碼動態替換。

Freeline的特性:

支持調試 系統最低支持到api level 9 支持標准的多模塊Gradle工程的增量構建 並發執行增量編譯任務 進程級別異常隔離機制 支持so動態更新 支持resource.arsc緩存 支持retrolambda 支持DataBinding 支持各類主流注解庫 支持Windows,Linux,Mac平台

當然每個事物都有自己的不足,現在已經Freeline的一些不足:

第一次增量資源編譯的時候可能會有點慢 不支持刪除帶id的資源,否則可能導致aapt編譯出錯 暫不支持抽象類的增量編譯 不支持開啟 Jack 編譯 不支持 Kotlin/Groovy/Scala

看了上面的這些介紹後不知道你有沒有心動?什麼,已經心動了?那麼下面我們來看看它到底怎麼用?

Freeline使用教程

1、在項目level的build.gradle中添加插件依賴

gradle initFreeline

如果你系統沒有配置gradle的環境,將會提示你命令不存在,由於AndroidStudio已經為項目配置了默認的gredle,所以輸入以下命名也是一樣的:

gradlew initFreeline

先別急著輸入:因為默認是從國外鏡像地址下載,由於眾所周知的原因,你很可能下載不到,所以我們可以使用國內鏡像,所以如果上述命令沒有通過,那麼咱們在命令後面加一個-Pmirror:

gradlew initFreeline -Pmirror

大概一分鐘左右就下載好了,下載好之後你的項目結構大概是這樣子:

圖片vc+zpKOsyfXWwbHIZ3JhZGxlseDS67u50qqzpKOstavKx7rzxtq1xNTL0NC74brcv+yhozxiciAvPg0KtdrSu7TOyKvBv7Hg0uujrNTaw/zB7tDQyuTI66O6IDwvY29kZT48L2NvZGU+PC9wPg0KPHByZSBjbGFzcz0="brush:java;"> python freeline.py -f

如果我們後期修改了代碼,秒秒鐘就可以熱更新到手機:

python freeline.py

如果你要調試應用,在命令行輸入:

python freeline.py -d 

常用命令幫助

python freeline.py -f —— cleanBuild 強制執行一次 clean build
python freeline.py -d —— 調試 打開debug模式
python freeline.py -h —— 幫助 顯示幫助信息並退出
python freeline.py -v —— 版本 顯示版本信息
python freeline.py -w —— 等待 讓應用程序等待 debugger
python freeline.py -a —— 全部 在所有工程上強制執行clean build 並執行-f全量編譯
python freeline.py -c —— 清空 清空緩存目錄和工作空間
python freeline.py -i —— 初始化 對工程進行進行freeline初始化配置

Android Studio Freeline插件

一般我們開發的時候,想要運行項目時就點一下綠色的Run按鈕,幾乎不用命令運行項目,所以FreeLine也有這樣簡單的操作方式,我們需要為AndroidStudio安裝一個插件:

Setting → Plugins → 輸入freeline → 點擊Browse repositories → 點擊Install → 重啟AndroidStudio

下面來一個圖解:

安裝Freeline插件圖解

安裝好之後根據提示重啟AndroidStudio,然後會在綠色的Run按鈕後面會多出來一個藍色白心的Freeline Run按鈕,如果要運行項目就點擊下圖中Freeline Run按鈕即可,如下圖:

Freeline Run按鈕

好啦到這裡就全部結束啦,快去試試吧。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved