Android Studio中Instant Run
Instant Run
翻譯成中文叫即時執行或直接執行模板。不過我一般習慣了叫做閃電執行,為什麼這麼叫?請看圖:
有個小閃電(2.3.x版本獨立有個小閃電,2.0-2.2是和左邊執行圖示在一塊),因為是個小閃電,所以我習慣了叫做閃電執行。
在Android Studio 2.0中引入的Instant Run是執行和除錯命令的一種行為,可以顯著減少應用更新的時間。雖然您的第一次構建可能需要更長的時間才能完成,但Instant Run會將隨後的更新推送到您的應用程式,而不需要構建新的APK,因此可以更快速地看到更改(當然有些坑,慎用(比如用到地圖時,請關閉Instant Run))。
Instant Run僅在部署除錯版本變數時使用,使用Android Plugin for Gradle 2.0.0或更高版本,並在應用程式的Module級build.gradle檔案中將MinSdkVersion設定為15或更高版本。為了獲得最佳效能,將minSdkVersion設定為21或更高。
部署應用程式後,“執行”按鈕(或“除錯”按鈕)(2.0-2.2)中將顯示一個小型的黃色雷電圖示(2.3以後有獨立圖示),表示“下次執行”準備好在下次單擊按鈕時進行更新。而不是建立一個新的APK,它只會加入這些新的更改,在某些情況下,該應用甚至不需要重新啟動,立即顯示這些程式碼更改的效果。
Instant Run通過執行熱交換,溫交換或冷交換,將更新的程式碼和資源推送到連線的裝置或模擬器。它會根據您所做的更改型別自動確定要執行的交換型別。
在每次Studio更新中,我們都會看到官方會對Instant Run進行優化。
啟用和禁用Instant Run
1.開啟設定或首選項對話方塊:在Windows或Linux上,從主選單中選擇File> Settings。在Mac OSX上,我也不知道( ⊙ o ⊙ )!。
2.導航到Build, Execution, Deployment > Instant Run。
頂部選項是Instant Run。勾選/取消選中該框。
使用Instant Run時不支援的程式碼更改
有一些變化,即時使用Instant Run,也會完全構建和重新安裝應用程式。
比如:
1.更改應用程式清單
2.更改應用程式清單引用的資源
3.更改Android小部件UI元素(需要清除和重新執行)
即時執行中的程式碼型別交換
有三種型別的程式碼交換可以支援程式碼更快的除錯和執行應用程式。
1.熱交換(HOT SWAP)
2.溫暖互換(WARM SWAP)
3.冷交換(COLD SWAP)
什麼時候觸發這些互換?
當更改現有方法的實現時觸發HOT SWAP。
當更改或刪除現有資源時,會觸發WARM SWAP(res資料夾中的任何內容)
只要您的應用程式程式碼中存在結構性程式碼變更,即可使用COLD SWAP
例如:
1.新增,刪除或更改:
- 一個例項欄位
- 一個靜態欄位
- 靜態方法簽名
- 一個例項方法簽名
2.更改當前類繼承的父類
3.更改實現的介面列表
4.更改類的靜態初始化程式
5.重新排序使用動態資源ID的佈局元素
當程式碼交換髮生時會發生什麼?
HOT SWAP更改可以立即顯示 - 只要下一次呼叫實現方法的更改時。
WARM SWAP重新啟動當前活動
COLD SWAP重新啟動整個應用程式(不重新安裝)
注: 程式碼更改可以通過熱交換快速部署,但是熱交換會影響應用的初始化,所以我們不得不通過重啟應用來響應這些修改。所以有時候也是個坑。
可以進官網瞭解更多關於Instant Run的內容
Instant Run
相關文章
- 揭祕最新android studio instant run(一)Android
- Android Studio的Instant Run工作原理及用法Android
- Android 在 Multidex 下使用 Instant RunAndroidIDE
- 深入理解 Android Instant Run 執行機制Android
- Android Studio點選Run背後發生了什麼?Android
- android studio 安裝報錯 unable to run mksdcard sdk toolAndroid
- Android Studio Run專案出現Failure [INSTALL_FAILED_TEST_ONLY]AndroidAI
- 引入 Tinker 之後如何在 Debug 模式下開啟 Instant Run模式
- Android Studio中NDK開發Android
- Android Studio中jni的使用Android
- Android Studio 中的除錯技巧Android除錯
- Android Studio 2.0 to Android Studio 3.0Android
- android studio 中 Cannot resolve symbol RAndroidSymbol
- Android Studio 中如何引入ButterKnife外掛Android
- [譯] 在 Android Instant App(安卓即時應用程式)中啟用 ProGuard (混淆)AndroidAPP安卓
- Android StudioAndroid
- Android Studio bug:Error:Could not run build action using Gradle distribution 'https://services.gradAndroidErrorUIGradleHTTP
- Android Studio 中那些最好用的外掛Android
- Android Studio中如何支援使用Lambda表示式Android
- Android Studio中安裝Genymotion模擬器Android
- android studio安裝教程|android studio漢化包Android
- java InstantJava
- Android Studio在android Emulator中執行的專案黑屏Android
- Android Studio 中 Preview 常見問題和技巧AndroidView
- Android Studio中的package name和application IDAndroidPackageAPP
- Android Studio中引入Gson依賴(簡述版)Android
- Android Studio中編譯除錯Launcher3Android編譯除錯
- Android studio中匯入SlidingMenu問題Android
- Android Studio中gradle的一些玩法AndroidGradle
- Android Studio右鍵選項中沒有Git?AndroidGit
- 在Android Studio中利用List Fragments建立相簿GalleryAndroidFragment
- Android Studio工具Android
- Android Studio 初探Android
- Android studio jniAndroid
- Android Studio配置Android
- Instant3D: Instant Text-to-3D Generation3D
- Ⅵ. Instant-NGP
- android studio中如何檢視類的關係等Android