一、App Bundle原理
App Bundle是一種用於實現動態交付的技術,它允許將應用分割成小的、可下載的組件。在安裝應用程序時,只有需要的組件才會被下載和安裝,這樣可以降低應用程序的大小並提高下載速度。通俗地說,就是把一個巨型應用拆成多個小的模塊,用戶只需下載需要的模塊,而非整個應用。
在實際開發中,將應用程序分割為小組件的過程是通過將應用程序包中的功能模塊(例如某個庫或某個功能頁面)打包成單獨的APK文件(即AppBundle)來完成的。每個AppBundle文件都包含了應用程序的部分功能,安裝完成後僅下載其中必需的部分,達到動態下載和安裝應用的目的。
App Bundle技術的實現依賴於Android Studio,只有通過Android Studio編譯器才能將應用程序分割成小的組件,這個過程會生成多個與模塊文件相對應的.bundle安裝包。
二、App Bundle文件如何安裝
安裝App Bundle文件需要將.bundle文件上傳至Google Play,接著由Google Play自動根據用戶設備中的不同特徵(例如屏幕大小、ABI等)來動態地下載所需的模塊並組裝成完整的應用程序。
實際安裝過程如下:
- 用戶打開應用程序,選擇需要安裝的組件(如最初運行的模塊、選擇語言、進行授權等)
- 應用程序從網路上下載初始模塊,並安裝必需動態模塊
- 安裝過程根據需要下載額外模塊。
這個過程看起來很慢,實際上用戶看到的是單獨的模塊下載進度,因為必需模塊已經安裝好了。這種方式顯著地縮短了應用程序的下載和安裝時間,同時也有助於降低用戶的移動數據流量成本。
三、App Bundle改造
App Bundle提供了靈活的方式來對應用程序進行重新分割,以達到更有效的動態下載和安裝。一些建議的做法如下:
- 對應用程序進行深入分析,確定哪些部分可以分割,並製作成APK文件。
- 使用SmallerApps工具可以幫助應用程序開發者呈現用於組裝的APK文件,便於調試和測試。
- 針對不同的設備和屏幕尺寸,使用配置文件按需定製化APP Bundle文件。
四、App Bundle加固
App Bundle文件作為最小安裝單元,需要特別注意安全性。一些加固相關的方法如下:
- 開發人員需要重點考慮應用程序的安全性,如開發安全配置文件、防範常見的安全攻擊等。
- 使用加密演算法對App Bundle文件進行保護,確保被安裝前不能被分解查看其中代碼、資源等敏感信息。
- 使用簽名證書對App Bundle文件進行獨立認證,增強安全性。
五、App Bundle安裝過程
App Bundle安裝的過程主要包含以下幾個方面:
- 下載APK文件的過程,包含網路下載和本地解壓、校驗簽名的過程。
- 安裝APK文件的過程,包含將下載下來的文件寫入設備存儲中,並校驗簽名的過程。
- 啟動APP的過程,包含解析文件資源、初始化有關程序等。
六、App Bundle載入原理
在App Bundle文件安裝好之後,需要將各個小模塊載入到應用程序中,載入原理如下:
首先,系統會校驗Bundle文件是否包含應用程序的版本信息等基本信息,並將需要載入的資源動態解壓到設備的緩存目錄中,然後再根據相關信息生成運行程序。這樣做的好處是可以避免將完整的應用程序載入到內存中,提升應用程序的性能。
七、App Bundle ID是什麼
App Bundle ID是應用程序的唯一標識符。在Google Play發布應用程序時,需要指定包名和App Bundle ID 。在安裝時,Google Play服務會根據設備上唯一的應用標識符和應用程序包名稱來為應用程序匹配Bundle ID,從而快速地獲取適合設備的程序安裝包。
八、Bundle是什麼文件
Bundle是指Android Bundle Framework下的一種實體類型,即Bundle封裝了一組可以在不同Activity之間共享的數據。通過Bundle可以實現不同的Activity之間的數據傳遞。
除此之外,在Android Studio的App Bundle體系下,Bundle也是指存放在安裝包、模塊的部分數據或資源集合,這些數據或資源可以通過打包成App Bundle模塊,實現動態添加、刪除和升級等載入方案。
九、安卓Bundle是什麼文件
在Android Studio產生的App Bundle體系下,安卓Bundle是指存放在安裝包、模塊下的一系列文件,包括Android Manifest和資源文件等。安卓Bundle文件是實現應用程序動態下載、安裝、更新的核心代碼。
10、總結
App Bundle作為一個多模塊動態下載和更新框架,為應用程序的開發帶來了福音。開發者們可以通過分割應用程序並針對不同的場景進行部署,大幅度減少APP的安裝包大小和下載時間。在開發和維護應用程序時,加固和安全是重點。通過了解App Bundle 的基本原理、文件安裝和改造,加強對安卓Bundle和Bundle的認識,以及對動態載入的原理和安卓Bundle加強的認識,可以更好地利用App Bundle技術為應用程序的優化提供支持。
11、完整代碼示例
// App Bundle文件上傳至Play./gradlew bundleRelease// 生成。apk文件BundleTool/build/install/bundletool/bundletool.sh build-apks --bundle=[path/to/your/bundle.aab] --output=[path/to/output.apks]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231885.html