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 改成了
以自己手邊的專案來說,在第一次或是 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. DexForDebug
- 將 minSdkVersion 改成 21
- 或是將專案根目錄下 build.gradle 的 gradle dependency 改回
classpath ‘com.android.tools.build:gradle:1.3.0’ ,當然,這樣就沒有 Instant Run 的能力了 XDD - 等官方釋出新的版本 (被打)
2. xml 在輸入等於後,不會自動產生雙引號 (“)。
- 後話
雖然是還未正式釋出的 preview 版,但 Instant Run 呈如其字面上的意思,瞬間 (快速) 執行,算是大大的改善過去 Android Studio 一直讓所有開發者詬病的編譯緩慢現象。雖然說剛好可以站起來休息個兩到三分鐘,但每次的小修改也都這樣的話,那還真的是…強化耐心修行好工具啊 (茶~
延伸閱讀:運作速度快上 500%,Google 給 App 開發者帶來一項新福利
(本文轉自莫希爾手札,未經授權不得轉載)