Android秒级编译方案-FreeLine
Freeline 是什么?
Freeline 是一款 Android 平臺上的秒級編譯方案,能夠顯著地提高 Android 工程的編譯速度
為什么使用FreeLine
隨著Android app 工程越來越大,module越來越多,構建越來越慢有時能有十幾min;FreeLine除了首次比較慢外,以后基本都是10s以內,能極大提高開發者效率,有效解決開發者的痛點
FreeLine支持的特性
- 支持標準的多模塊 Gradle 工程的增量構建
- 并發執行增量編譯任務
- 進程級別異常隔離機制
- 支持 so 動態更新
- 支持 resource.arsc 緩存
- 支持 retrolambda
- 支持 DataBinding
- 支持各類主流注解庫(APT)
- 支持 Windows,Linux,Mac 平臺
以下列表為 Freeline 支持的熱更新情況:
| add | √ | √ | √ | √ |
| change | √ | √ | √ | √ |
| remove | √ | √ | x | - |
Freeline 已經分別在 API 17,19,22,23的 Android 模擬器、Android 6.0 Nexus 6P 以及 Android 4.4 錘子手機上經過測試。如果想要充分體驗 Freeline 增量編譯的速度的話,最好使用 Android 5.0+ 的設備
接入
方法一:AndroidStudio插件
首先按照freeLine插件 進入Preferences → Plugins → Browse repositories 輸入freeline關鍵字 安裝插件,安裝完畢重啟AS;在工具欄會出現
點擊freeline插件按鈕,就可以享受freeline的便捷了,注意首次會執行耗時的全量編譯過程。
首次使用freeline時,freeline插件會檢測你的app是否配置了freeline,如果沒有配置會彈窗提示,直接點擊”確定”,此時插件會自動修改app 配置文件,并自動安裝 Freeline 的依賴文件
方法二:手動配置
進入project 根 build.gradle文件 添加freeline依賴
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.2.2'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle filesclasspath 'com.antfortune.freeline:gradle:0.8.6'//add freeline dependencies} }進入主工程module 編輯build.gradle
apply plugin: 'com.antfortune.freeline'android{... }在命令行執行以下命令來下載 freeline 的 python 和二進制依賴
gradlew initFreeline //for Windows[CMD] /gradlew initFreeline // for Linux/Mac對于國內的用戶來說,如果你的下載的時候速度很慢,你也可以加上參數,執行
gradlew initFreeline -Pmirror這樣就會從國內鏡像地址來下載
配置成功后以后每次調試就可以使用下面命令或者點擊AS工具欄”freeline”按鈕
python freeline.pyFreeLine缺陷
- 第一次增量資源編譯的時候可能會有點慢,因為需要額外傳遞一個完整的資源包
- 不支持刪除帶id的資源,否則可能導致aapt編譯出錯
- 暫不支持抽象類的增量編譯
- 部分 APT 插件可能需要單獨適配
- 不支持開啟 Jack 編譯
- 不支持 Kotlin / Groovy / Scala
更多詳情
FreeLine-GitHub
FreeLine-詳情
總結
以上是生活随笔為你收集整理的Android秒级编译方案-FreeLine的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android-无线连接设备调试
- 下一篇: Android-源码剖析CountDow