Android App Bundle探索
AppBundle將這些特性在多個維度進行拆分,在資源維度,ABI維度和Language維度進行了拆分,你只要按需組裝你的Apk然後安裝即可,不用安裝其他的東西,這堆包大小和方法數還有啟動等等有一個十分好的收益。
另外一個重要的創舉是支援元件的動態下發,後面會講到,你可以將一些獨立的模組在執行時安裝,而不是一次性放到apk裡面。這是元件化的一次偉大的創舉。
App Bundle 中的元件
Base Apk: base為基礎模組,包括你業務邏輯中的程式碼,dex等基礎,為主工程的apk
Configuration Split Apk: 構造apk,區分的維度是Multiple Apks的劃分。用來拼裝Dynamic Feature Apks和Base Apk的配置。
Dynamic Feature Apk: 動態特性Apk,這是元件化的一個好的新方案,通過動態下發模組來做到功能的動態更新
bundletool工具
當你選擇將App打包成.aab(Android App Bundle)的字尾檔案之後,如何測試你的Apk是否可用,bundletool工具正是用來處理這個aab檔案的。
Github:https://github.com/google/bundletool
使用方法:https://developer.android.com/guide/app-bundle/test
bundletool是google推出的開源工具,使用方法十分簡單,使用幾行命令就可以獲取出針對相應裝置的Apk,也可以一鍵進行安裝,簽名等操作。Google Play也是使用bundletool來進行aab解包分發給不同的裝置的。
相容性問題
Api < 21的手機無法進行模組化,Google Play會對其進行Multiple Apks操作來進行下發操作。