本文只是對Freeline 官方使用說明文檔的一些細節的補充,大部分使用說明是直接Copy過來的。
Freeline是由螞蟻聚寶Android團隊開發的一款針對Android平臺的增量編譯工具。它可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯并部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。
雖然Android Studio的Instant Run也能加快項目的編譯速度,但就目前來看,它還存在一些問題,有時編譯會很慢,甚至卡死。Freeline相比Instant Run編譯速度更快也更穩定,Freeline編譯原理詳情可以看原理說明。
一.配置工程
配置project-level的build.gradle,加入freeline-gradle的依賴:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:0.8.2'
}
}
然后,在你的主module的build.gradle中,應用freeline插件的依賴:
apply plugin: 'com.antfortune.freeline'
android {
...
}
最后,在命令行執行以下命令來下載 freeline 的 python 和二進制依賴。
- Windows[CMD]: gradlew initFreeline
- Linux/Mac: ./gradlew initFreeline
對于國內的用戶來說,如果你的下載的時候速度很慢,你也可以加上參數,執行gradlew initFreeline -Pmirror
,這樣就會從國內鏡像地址來下載。
你也可以使用參數-PfreelineVersion={your-specific-version}
來下載特定版本的 freeline 依賴。
如果你的工程結構較為復雜,在第一次使用freeline編譯的時候報錯了的話,你可以添加一些freeline提供的配置項,來適配你的工程。在moudle的gradle文件增加如下代碼
freeline {
hack true
productFlavor 'your-flavor'
//.....其他配置項
}
配置項具體可以看Freeline DSL References。
二.執行編譯
方法一:通過Android Studio插件Freeline來編譯
在Android Studio中,通過以下路徑Preferences → Plugins → Browse repositories,搜索“freeline”,并安裝。
直接點擊 Run Freeline
的按鈕,就可以享受Freeline帶來的開發效率的提升啦(當然,你可能會先需要一個較為耗時的全量編譯過程)。在Freeline工具欄和Build選項里的Freeline還可以以-d
或-f
方式執行編譯。
插件也會提示你Freeline最新的版本是多少,你也可以通過插件來對Freeline進行更新。
方法二:直接在命令行執行python腳本來編譯
- python freeline.py 正常模式編譯
- python freeline.py -d 調試模式編譯
- python freeline.py -f 全量編譯,就是整個工程重新編譯
由于編譯使用的是python腳本,所以要安裝Python環境并設置環境變量,否則會提示command python not found。只支持Python 3.0以下環境。
如果項目被Freeline編譯后,想使用Android Studio自帶的編譯去編譯項目,啟動應用時可能會發生閃退,這時候只需要先clean一下項目再編譯項目,就不會發生閃退了。
補充:類似的插件還有JRebel,也很好用,但它是收費的。