Android 官方在 2015/11/23 的 Android Dev Summit 中,發佈了 Android Studio 2.0 Preview,其中有一項改變相信會讓眾多 Android 開發者眼睛為之一亮-Instant Run。
這個功能簡言之,就是快速建置與部署,廢話不多說,先來看看官方的試範視訊:
Instant Run
1. 更新專案
在 Android Studio 更新之後,從 Settings 的左視窗找到 Build, Execution, Deployment > Instant Run 可以看到如下畫面,
如果這是一個尚未啟用 Instant Run 的專案,就會看到右上有個「Update Project」的選項,這是點擊後,專案進入進化狀態…
轉換完成後,其實就外觀上來說,大概也看不出個所以然來…
如果真要說的話,就是執行時的 Run 圖示右下多了一個點
在專案根目錄下的的 build.gradle 中 gradle dependencies 改成了
1 2 3 4 5 6 7 8 9 |
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } |
2. 效率提升
以自己手邊的專案來說,在第一次或是 clean project 後的 build time 是比較長的,時間大概都和過去差不多,從 1m 52s 到 2m 57s 都有。不過,後續的小更新,比方說,在程式或是介面中做了點小調整,時間大概都在 3s 內,算是大輻的降低開發者的等待時間。
至於 Instant Run 所支援的層面,根據官方文件裡提到的部份大概就是,微調介面以及程式碼是沒有問題的,這個在 Android Dev Summit 中的試範中,發揮的淋漓盡致。
若是新增、刪除以及修改 resource 的 string,雖然 Instant Run 有支援,但會重啟 activity。至於其他還有很多狀況,根據文件裡的條列是不支援的,但平均來說,build time 是有降低的。
另外,值得一提的是,activity 不是每一次都需要被重新啟動,大致上狀況就如上一段所寫到的。而若是希望每次都重啟 activity,可以自行到設定(如下圖),
將「Restart activity on code changes」勾選起來,不然,系統也會跳出提示 XD
有個貼心的選項是「Show toasts in the running app when changes are applied.」是用在,開發者自己搞不太清楚,到底是否有更新時(因為不見得會重啟),會跳出提示文字。
還有一個是值得一提的是,若這次的 build,程式碼沒有任何變動的話,系統也會跳出提示告知。
已知的問題
當然,這個部份也是大家相當關心的 XD
1. transformClassesWithDexFor…
1 2 |
Error:Execution failed for task ':mobile:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 3 |
目前大概就是幾個解法
- 將 minSdkVersion 改成 21
- 或是將專案根目錄下 build.gradle 的 gradle dependency 改回
classpath 'com.android.tools.build:gradle:1.3.0' ,當然,這樣就沒有 Instant Run 的能力了 XDD - 等官方釋出新的版本 (被打)
2015/12/06 更新:聽說會在 Alpha 3 (Preview 3) 修正
2. xml 在輸入等於後,不會自動產生雙引號(“)。
2015/12/06 更新:在 Android Studio 2.0 Preview 2 修正
後話
雖然是還未正式釋出的 preview 版,但 Instant Run 呈如其字面上的意思,瞬間(快速)執行,算是大大的改善過去 Android Studio 一直讓所有開發者詬病的編譯緩慢現象。雖然說剛好可以站起來休息個兩到三分鐘,但每次的小修改也都這樣的話,那還真的是…強化耐心修行好工具啊 (茶~
1 關於 “ANDROID - Android Studio 加速開發的利器「Instant Run」” 的評論