一、JRebel for Android
JRebel for Android 是一個Android Studio的插件,可以大大加速Android Studio的編譯速度,對于小項目來說或許不明顯;但是當項目達到一定的規模時,它對于Android Studio烏龜般的編譯速度有非常大的改善。
JRebel for Android使得每次改動代碼后,不需要重新安裝新的 apk;而是在安裝完一次應用后,通過增量包傳遞到設備或者模擬器上,并且能夠在應用運行時進行更新。
據說JRebel比Instant Run快了8倍,詳情可查看官方介紹。
1. 安裝
你可以直接點擊IDE的 Plugins
-> Browse Repositories
-> 輸入JRebel for Android
來搜索和安裝插件。
如果因為某些原因你無法訪問 maven 的公有倉庫,你可以直接在JetBrians官網下載,然后通過 Plugins
> Install plugin from disk…
來安裝插件。
當你安裝完插件后,你需要重啟Android Studio,在重啟之后,你需要提供你的姓名和郵箱來得到JRebel for Android的21天免費使用(JRebel 是收費的,個人用戶每年要 49 美元,但是據說21 天到期之后你可以重新注冊,據說官方對郵件沒有驗證,由于我暫未使用到21天,所以暫時未知,感興趣的你可以下載試試)。
2. 使用
重啟Android Studio,會發現在頂部工具欄出現如下三個按鈕:
從左到右分別是:
- Run app with JRebel for Android
- Debug app with JRebel for Android
- Apply changes with JRebel for Android
一般我們只需要第一次安裝的時候使用第一個按鈕
運行一次,之后代碼變動,只需要點擊第三個按鈕
,你的真機或者模擬器很快就展示出來修改代碼之后的效果。
3. 參考資料
[譯] 怎樣用 JRebel for Android
ANDROID 高效調試神器 JREBEL
二、Freeline
Freeline是由螞蟻聚寶Android團隊開發的一款針對Android平臺的增量編譯工具。它可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯并部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。
1. 配置
配置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,這樣就會從國內鏡像地址來下載,命令即為:
- Windows[CMD]: gradlew initFreeline -Pmirror
- Linux/Mac: ./gradlew initFreeline -Pmirror
你也可以使用參數-PfreelineVersion={your-specific-version}
來下載特定版本的 freeline 依賴。
如果你的工程結構較為復雜,在第一次使用freeline編譯的時候報錯了的話,你可以添加一些freeline提供的配置項,來適配你的工程。具體可以看Freeline DSL References。
2. 使用
Freeline最快捷的使用方法就是直接安裝Android Studio插件。
在Android Studio中,通過以下路徑Preferences
→ Plugins
→ Browse repositories
,搜索“freeline”,并安裝。
直接點擊Run Freeline
的按鈕,就可以享受Freeline帶來的開發效率的提升啦(當然,你可能會先需要一個較為耗時的全量編譯過程)。
插件也會提示你Freeline最新的版本是多少,你也可以通過插件來對Freeline進行更新。
3. 參考資料
Freeline官方文檔
AndroidStudio Freeline實現工程秒級編譯
三、其它方法
其實Android Studio的官方文檔就有關于優化編譯速度的配置方法:
網上也有不少關于加速編譯的資料:
但是經過實踐,要不是配置麻煩,就是效果不佳,目前來看,還是JRebel的配置最簡單,使用效果最好,如果你有更好的加速方法,歡迎留言交流。
PS:歡迎關注SherlockShi博客