Android studio 3.3已經進入Beta2階段,比起3.2版本除了新增了分析記憶體配置追蹤選項外,Android App Bundles也開始支援Instant Apps,建置系統也做了更新,預設使用SDK建置工具28.0.3,另外,還換掉程式碼壓縮器Proguard改使用R8。

Google持續在降低Android應用程式容量的工作上耕耘,從Android studio 3.2開始支援Android新的發布格式Android App Bundle,讓使用者安裝應用程式,只需要下載裝置需要的部分,以大幅減少應用程式容量。而現在Google更讓R8成為Android studio中的預設程式碼壓縮器。

程式碼壓縮可以移除未使用的程式碼和資源,以減少APK的容量,讓實際程式碼占用更少的空間,Google提到,這是他們投放資源在程式碼縮減上的原因。新的程式碼壓縮器R8能夠一步到位進行程式碼壓縮、脫糖(Desugaring)以及Dexing,與之前的程式碼壓縮器Proguard相比,不只能降低輸出的大小,執行速度也更快了。

開發者現在可以在Android Studio 3.3 Beta中,讓R8搭配Proguard規則使用,不過,也有R8與Proguard不相容的完整模式,而這將啟用更多的最佳化功能,能更進一步加速執行速度,減少更多應用程式容量。

而為了讓Android studio進行分析時,改善應用程式效能,開發者現在可以選取即時記憶體分配追蹤模式,分為完整、抽樣以及關閉三種模式,完整模式會捕捉所有物件記憶體分配,因此當開發者的應用程式使用了許多物件,在分析時會歷經嚴重的效能問題。而開發者可以選擇抽樣模式,以固定時間抽樣捕捉物件的記憶體分配,而這將成為目前的預設選項,也是在分析時,對應用程式效能影響較小的選項。當然開發者也可以關閉記憶體配置,而這個選項將在進行CPU紀錄時自動啟用。

在Android Studio 3.2中開始支援的Android App Bundles,在3.3中完整支援Instant Apps,讓使用者免安裝就能直接執行應用程式,也就是說開發者現在可以在單一Android Studio專案,同時建構安裝應用程式以及Instant Apps,並將他們包在同一個App Bundles中。

Google也更新了Android studio 3.3的建置系統,新的SDK建置工具預設更新到了28.0.3。當使用註解處理器時,提升了增量Java編譯的效能,在包含Kotlin程式碼的專案中,預設啟用增量Java編譯,而在只有Java的專案,當註解處理器支援增量註解處理,則預設啟用Java編譯,但當一個以上註解處理器不支援,則不會啟用增量Java編譯。

另外,也改進了類別路徑的相依性同步,Android studio在解析Runtime和編譯時類別路徑的相依關係時,Android Gradle外掛程式會嘗試修復多重類別路徑中的依賴關係,以解決下游版本的衝突。Android Gradle現在也使用新的任務配置API,避免不執行的任務,在Gradle配置階段進行創建和配置產生的成本,這使得外掛程式在建構每個模組變體時,可以減少工作量。


Advertisement

更多 iThome相關內容