本文只是對Freeline 官方使用說明文檔的一些細節(jié)的補充,大部分使用說明是直接Copy過來的概页。
Freeline是由螞蟻聚寶Android團隊開發(fā)的一款針對Android平臺的增量編譯工具玩郊。它可以充分利用緩存文件肢执,在幾秒鐘內(nèi)迅速地對代碼的改動進行編譯并部署到設(shè)備上,有效地減少了日常開發(fā)中的大量重新編譯與安裝的耗時译红。
雖然Android Studio的Instant Run也能加快項目的編譯速度预茄,但就目前來看,它還存在一些問題侦厚,有時編譯會很慢耻陕,甚至卡死拙徽。Freeline相比Instant Run編譯速度更快也更穩(wěn)定,F(xiàn)reeline編譯原理詳情可以看原理說明诗宣。
一.配置工程
配置project-level的build.gradle膘怕,加入freeline-gradle的依賴:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:0.8.2'
}
}
然后,在你的主module的build.gradle中召庞,應(yīng)用freeline插件的依賴:
apply plugin: 'com.antfortune.freeline'
android {
...
}
最后淳蔼,在命令行執(zhí)行以下命令來下載 freeline 的 python 和二進制依賴。
- Windows[CMD]: gradlew initFreeline
- Linux/Mac: ./gradlew initFreeline
對于國內(nèi)的用戶來說裁眯,如果你的下載的時候速度很慢鹉梨,你也可以加上參數(shù),執(zhí)行gradlew initFreeline -Pmirror
穿稳,這樣就會從國內(nèi)鏡像地址來下載存皂。
你也可以使用參數(shù)-PfreelineVersion={your-specific-version}
來下載特定版本的 freeline 依賴。
如果你的工程結(jié)構(gòu)較為復(fù)雜逢艘,在第一次使用freeline編譯的時候報錯了的話旦袋,你可以添加一些freeline提供的配置項,來適配你的工程它改。在moudle的gradle文件增加如下代碼
freeline {
hack true
productFlavor 'your-flavor'
//.....其他配置項
}
配置項具體可以看Freeline DSL References疤孕。
二.執(zhí)行編譯
方法一:通過Android Studio插件Freeline來編譯
在Android Studio中,通過以下路徑Preferences → Plugins → Browse repositories央拖,搜索“freeline”,并安裝鲜戒。
直接點擊 Run Freeline
的按鈕遏餐,就可以享受Freeline帶來的開發(fā)效率的提升啦(當(dāng)然失都,你可能會先需要一個較為耗時的全量編譯過程)。在Freeline工具欄和Build選項里的Freeline還可以以-d
或-f
方式執(zhí)行編譯咳焚。
插件也會提示你Freeline最新的版本是多少黔攒,你也可以通過插件來對Freeline進行更新。
方法二:直接在命令行執(zhí)行python腳本來編譯
- python freeline.py 正常模式編譯
- python freeline.py -d 調(diào)試模式編譯
- python freeline.py -f 全量編譯不傅,就是整個工程重新編譯
由于編譯使用的是python腳本赏胚,所以要安裝Python環(huán)境并設(shè)置環(huán)境變量觉阅,否則會提示command python not found。只支持Python 3.0以下環(huán)境典勇。
如果項目被Freeline編譯后割笙,想使用Android Studio自帶的編譯去編譯項目伤溉,啟動應(yīng)用時可能會發(fā)生閃退,這時候只需要先clean一下項目再編譯項目板祝,就不會發(fā)生閃退了券时。
補充:類似的插件還有JRebel温技,也很好用舵鳞,但它是收費的琢蛤。