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