一、JRebel for Android

JRebel for Android 是一個(gè)Android Studio的插件,可以大大加速Android Studio的編譯速度,對(duì)于小項(xiàng)目來(lái)說(shuō)或許不明顯;但是當(dāng)項(xiàng)目達(dá)到一定的規(guī)模時(shí),它對(duì)于Android Studio烏龜般的編譯速度有非常大的改善。
JRebel for Android使得每次改動(dòng)代碼后,不需要重新安裝新的 apk;而是在安裝完一次應(yīng)用后,通過(guò)增量包傳遞到設(shè)備或者模擬器上,并且能夠在應(yīng)用運(yùn)行時(shí)進(jìn)行更新。
據(jù)說(shuō)JRebel比Instant Run快了8倍,詳情可查看官方介紹。
1. 安裝
你可以直接點(diǎn)擊IDE的 Plugins -> Browse Repositories -> 輸入JRebel for Android來(lái)搜索和安裝插件。

如果因?yàn)槟承┰蚰銦o(wú)法訪問(wèn) maven 的公有倉(cāng)庫(kù),你可以直接在JetBrians官網(wǎng)下載,然后通過(guò) Plugins > Install plugin from disk… 來(lái)安裝插件。
當(dāng)你安裝完插件后,你需要重啟Android Studio,在重啟之后,你需要提供你的姓名和郵箱來(lái)得到JRebel for Android的21天免費(fèi)使用(JRebel 是收費(fèi)的,個(gè)人用戶每年要 49 美元,但是據(jù)說(shuō)21 天到期之后你可以重新注冊(cè),據(jù)說(shuō)官方對(duì)郵件沒(méi)有驗(yàn)證,由于我暫未使用到21天,所以暫時(shí)未知,感興趣的你可以下載試試)。
2. 使用
重啟Android Studio,會(huì)發(fā)現(xiàn)在頂部工具欄出現(xiàn)如下三個(gè)按鈕:

從左到右分別是:
- Run app with JRebel for Android
- Debug app with JRebel for Android
- Apply changes with JRebel for Android
一般我們只需要第一次安裝的時(shí)候使用第一個(gè)按鈕運(yùn)行一次,之后代碼變動(dòng),只需要點(diǎn)擊第三個(gè)按鈕,你的真機(jī)或者模擬器很快就展示出來(lái)修改代碼之后的效果。
3. 參考資料
[譯] 怎樣用 JRebel for Android
ANDROID 高效調(diào)試神器 JREBEL
二、Freeline

Freeline是由螞蟻聚寶Android團(tuán)隊(duì)開(kāi)發(fā)的一款針對(duì)Android平臺(tái)的增量編譯工具。它可以充分利用緩存文件,在幾秒鐘內(nèi)迅速地對(duì)代碼的改動(dòng)進(jìn)行編譯并部署到設(shè)備上,有效地減少了日常開(kāi)發(fā)中的大量重新編譯與安裝的耗時(shí)。
1. 配置
配置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í)行以下命令來(lái)下載 freeline 的 python 和二進(jìn)制依賴。
- Windows[CMD]: gradlew initFreeline
- Linux/Mac: ./gradlew initFreeline
對(duì)于國(guó)內(nèi)的用戶來(lái)說(shuō),如果你的下載的時(shí)候速度很慢,你也可以加上參數(shù),執(zhí)行g(shù)radlew initFreeline -Pmirror,這樣就會(huì)從國(guó)內(nèi)鏡像地址來(lái)下載,命令即為:
- Windows[CMD]: gradlew initFreeline -Pmirror
- Linux/Mac: ./gradlew initFreeline -Pmirror
你也可以使用參數(shù)-PfreelineVersion={your-specific-version}來(lái)下載特定版本的 freeline 依賴。
如果你的工程結(jié)構(gòu)較為復(fù)雜,在第一次使用freeline編譯的時(shí)候報(bào)錯(cuò)了的話,你可以添加一些freeline提供的配置項(xiàng),來(lái)適配你的工程。具體可以看Freeline DSL References。
2. 使用
Freeline最快捷的使用方法就是直接安裝Android Studio插件。
在Android Studio中,通過(guò)以下路徑Preferences → Plugins → Browse repositories,搜索“freeline”,并安裝。

直接點(diǎn)擊Run Freeline的按鈕,就可以享受Freeline帶來(lái)的開(kāi)發(fā)效率的提升啦(當(dāng)然,你可能會(huì)先需要一個(gè)較為耗時(shí)的全量編譯過(guò)程)。
插件也會(huì)提示你Freeline最新的版本是多少,你也可以通過(guò)插件來(lái)對(duì)Freeline進(jìn)行更新。
3. 參考資料
Freeline官方文檔
AndroidStudio Freeline實(shí)現(xiàn)工程秒級(jí)編譯
三、其它方法
其實(shí)Android Studio的官方文檔就有關(guān)于優(yōu)化編譯速度的配置方法:

網(wǎng)上也有不少關(guān)于加速編譯的資料:

但是經(jīng)過(guò)實(shí)踐,要不是配置麻煩,就是效果不佳,目前來(lái)看,還是JRebel的配置最簡(jiǎn)單,使用效果最好,如果你有更好的加速方法,歡迎留言交流。
PS:歡迎關(guān)注SherlockShi博客