1. 程式人生 > >Android App Bundle

Android App Bundle

簡而言之,可以理解Google 官方的動態釋出方案

WHAT

好處

Size更小
Google has claimed that it can reduce app sizes up to 50 percent
Its own apps like YouTube and other apps like LinkedIn which saw a 23% file reduction
安裝更快
支援動態釋出

限制

僅限於通過 Google Play 釋出的應用,(Google進一步鞏固自身生態)
需要加入到 Google 的 beta program
enroll your app in app signing by Google Play in the Play Console
最低支援版本Android 5.0 (API level 21)
低於Android 5.0 (API level 21) 的版本GooglePlay會優化Size,但不支援動態交付。

成本

需要升級到Android Studio 3.2修改工程以便支援App Bundle格式
整合Play Core Library

原理

Android App Bundle 是一種全新發布格式,能大幅度減少應用體積。
只須在 Android Studio 中構建一個應用束 (app bundle),就可以將應用所需的全部內容 (適用於所有裝置) 都涵蓋在內:所有語言、所有裝置螢幕大小、所有硬體架構。接著,在使用者下載您的應用時,Google Play 的新動態交付只會傳輸適用於使用者裝置的程式碼和資源。人們在 Play Store 上看到的安裝包體積更小,下載速度也越快,同時也節省了裝置儲存空間。

在這裡插入圖片描述
△ (左) 舊版 APK 交付樣例 - 將全部資源都交付至裝置;
(右) 動態交付樣例 - 只向裝置交付必要資源

結合Google Play Dynamic Delivery (動態交付) , 實現動態功能
Android App Bundle 支援模組化,通過Dynamic Delivery with split APKs,將一個apk拆分成多個apk,按需載入(包括載入C/C++ libraries),這樣開發者可以隨時按需交付功能,而不是僅限在安裝過程中。

Base Apk
首次安裝的apk,公共程式碼和資源,所以其他的模組都基於Base Apk
Configuration APKs
native libraries 和適配當前手機螢幕解析度的資源
Dynamic feature APKs
不需要在首次安裝就載入的模組

在這裡插入圖片描述

How

官方手把手改造教程 https://developer.android.com/guide/app-bundle/configure

建立動態交付模組 https://developer.android.com/guide/app-bundle/configure#create_dynamic_feature

More

About Android App Bundles : https://developer.android.com/guide/app-bundle/