Android Studio 2.0 中引入的可以“大幅減少應(yīng)用更新時間”的功能。
更改代碼再次更新應(yīng)用验庙,Instant Run 無需再次構(gòu)建新的 APK,而是直接向應(yīng)用推送更新。
與重新構(gòu)建部署的區(qū)別
-
重新構(gòu)建部署
-
Instant Run
使用條件
- Android Plugin for Gradle 版本在 2.0.0 或更高
- module 級別的 build.gradle 文件中 minSdkVersion 設(shè)置為 15(Android 4.0.3) 或以上
- 為獲取最佳性能星著,minSdkVersion 設(shè)置為 21(Android 5.0) 或以上
執(zhí)行方式
Android Studio 根據(jù)代碼修改類型自動選擇執(zhí)行方式
Instant Run 行為 | 適用范圍 |
---|---|
heat exchange(熱交換) | 更改現(xiàn)有方法的實現(xiàn)代碼 |
moderate exchange(溫和交換) | 更改或移除現(xiàn)有資源文件 |
cold exchange(冷交換) | 結(jié)構(gòu)性的代碼更改 |
deploy the new build(重新構(gòu)建) | manifest 更改 |
-
heat exchange
:速度最快氛悬,應(yīng)用不需要重新安裝则剃,也不需要重啟。但是此種方式不會初始化正在運行的應(yīng)用中的對象如捅,所以此時如果要看到更新就需要重新動當(dāng)前行為或者重啟應(yīng)用 -
moderate exchange
:速度也非彻飨郑快,應(yīng)用會繼續(xù)保持運行镜遣,但是當(dāng)前 Activity 會被重啟己肮,重啟的時候屏幕會發(fā)生小閃爍 -
cold exchange
:速度相對前兩種較慢,應(yīng)用不需要重新安裝,但是需要重啟谎僻。Android Studio 會將我們每一次修改打成一個 dex 文件發(fā)到手機(jī)上娄柳,應(yīng)用重啟才會加載這個新的 dex 文件。(cold exchange 基于只有 5.0 及以上的設(shè)備才支持的 multidex 機(jī)制艘绍,以下則執(zhí)行完整的 APK 安裝過程) -
deploy the new build
:對 AndroidManifest.xml 以及其引用的資源進(jìn)行更改時赤拒,應(yīng)用會被重新構(gòu)建,因為應(yīng)用的相關(guān)信息(名字鞍盗、版本等)需要在安裝 APK 的時候通過 AndroidManifest.xml 確定 -
結(jié)構(gòu)性的代碼更改
:- 添加需了、移除、更改注解般甲、字段肋乍、方法
- 更改繼承類
- 更改實現(xiàn)接口
- 更改一個類的 static 修飾符
- 使用動態(tài)資源 id 重新布局
-
manifest更改
- 更改 AndroidManifest.xml
- 更改 AndroidManifest.xml 所引用的資源,比如 string.xml敷存、style.xml 等文件
- 更改 UI 組件(需要清除并重新運行)
使用 Instant Run
- 打開 Preferences 對話框
- 導(dǎo)航至 Build, Execution, Deployment > Instant Run
- 通過勾選框控制 Instant Run 的使用