Android 增量編譯小解

xiangzhihong8發表於2020-11-15

增量編譯簡介

增量編譯是相對全量編譯而言的。所謂增量編譯,是指當源程式的區域性發生變更後進重新編譯的工作只限於修改的部分及與之相關部分的內容,而不需要對全部程式碼進行編譯。增量編譯對軟體開發,尤其是在除錯期,可以大大縮短編譯時間, 提高編譯效率。

而全量編譯指的是,當使用者源程式被區域性修改後重新編譯程式碼會涉及全部原始碼,並不只限於區域性修改及其相關部分。換句話說,無論修改了什麼,全量編譯都將進行一次全新的完整的編譯,並不基於上一次的編譯基礎。

一般來說,在軟體開發中,全量編譯用於版本的構建與釋出,比較耗費時間和資源。而處於除錯階段的程式,一般都採用增量編譯,這樣對於問題的定位和解決都比省時省力。在Android開發中,隨著工程程式碼量膨脹,編譯耗時也越來越長,拖慢了開發效率,因此Android官方推出了Instant Run和Apply Changes等增量更新的方案。

Instant Run簡介

Instant Run是Android Studio 2.0版本推出的一個增量編譯功能,使用Instant Run功能時,需要在build.gradle 檔案中將 minSdkVersion 設定為 15 或以上時,並且為另外獲得最佳效能,可以將 minSdkVersion 設定為 21 或更高。

之前在Android Studio 3.0版本,gradle為2.14.1的版本中做過一個測試,編譯一個簡單的Demo專案從之前的10秒降低到大概2、3秒。預設情況下,Instant Run是關閉的,如果要開啟Instant Run,可以在Settings中開啟Instant Run,如需所示。

相關文章