從Android Gradle外掛3.4.0版本開始,Google Play將停止支援以功能外掛com.android.feature,還有即時應用外掛com.android.instantapp建置的應用程式。在建置應用程式的時候,系統會標記功能外掛已經wg棄用,開發者需要將原本使用功能外掛建置的即時應用程式,改以使用新的應用程式發布格式App Bundle,並啟用即時應用以支援即時體驗。

去年Google發布了全新建置和發布Android應用程式的方法App Bundle,能有效解決應用程式肥大的問題,使用者不再需要下載用不到的檔案,Google Play將根據使用者的裝置,僅提供所需要的檔案,這種為使用者產生最佳化的APK稱為動態交付。

動態交付是基於動態功能的com.android.dynamic-feature,視使用者需要而進行,目前有三種交付類型,包括在安裝的時候交付動態功能、按需交付動態功能、即時與安裝時交付動態功能。

Google持續更新App Bundle,在三月的更新,開發者只要使用Android Studio 3.3,就能讓單一專案建置App Bundle,同時包含一般與即時應用程式,之前開發者需要針對一般與即時應用程式,上傳兩個獨立的App Bundle,但現在只需要上傳含有體驗模組的單一App Bundle就可以了。

過去建置即時應用程式的相依性較為複雜,需要創建功能模組作為App的基礎功能模組(Base Feature Module),要包含一般與即時應用程式共享的程式碼以及資源,另外,其餘程式碼庫還需要有多個非基礎功能模組,如即時應用程式進入點模組,以及有僅適用一般安裝的應用程式模組,另外,也需要即時應用程式模組,內含了即時應用程式碼與對映的相依檔案。

而在新的App Bundle實作中,基礎功能模組將被當作應用程式模組,管理一般與即時應用程式的程式碼和資源,開發者可以組織額外的模組化功能,作為三種動態功能模組類型的其中一種,而由於manifest中的dist:instant屬性,因此即時應用程式模組便不再需要了。

透過將即時應用程式轉為即時App Bundle,應用程式不只能獲得新格式帶來的優勢,也能簡化應用程式模組化設計。開發者可以使用Android Studio 3.3以上版本,創建可啟用即時應用的App bundle,為應用程式加入即時體驗。


Advertisement

更多 iThome相關內容