Android新特性——App Bundles

我們是否可以直接利用Google爲我們提供好的構建機制,模仿Play商店構造一個SDK對App自身進行更新呢?

  • 通過技術分析,我們有兩種方案可以實現自行更新:
    1.直接利用PackageInstaller進行安裝,這種方式最接近App Bundles的在Google Play中的實際作用效果,但是,最大問題就是會對用戶造成極大的干擾,首先,很多用戶出於安全考慮,是不會輕易允許未知安裝來源的。另外,每次安裝都會彈出界面,也會打斷用戶正常的操作流程,使用戶體驗不再流暢。並且如果需要通過國內各個廠商應用商店來更新,各大商店可能沒有這麼快支持APK分包功能。
    2.模仿SplitCompat的方式,在所有機型版本上,本地下載後直接加載安裝包。這種方式和熱修復插件化這類技術比較類似,問題是也需要不斷對新機型進行維護,並且未來隨着Google對私有API的更進一步收緊,反射技術可能會受到更大限制,未來對機型兼容性的支持是比較大的挑戰。並且無法像直接安裝那樣能夠享受到JIT優化帶來的性能改進。

  • App Bundles的模塊化,主要基於APK直接安裝的方式,不需要用戶對系統組件的修改,就能天然獲得原生優化能力(如JIT、DEX優化等),因而不存在任何兼容性問題。

    App Bundles的模塊化,主要基於APK直接安裝的方式,不需要用戶對系統組件的修改,就能天然獲得原生優化能力(如JIT、DEX優化等),因而不存在任何兼容性問題。這個思路與傳統組件化/插件化方式截然不同,因爲Google作爲Android官方主體,把控了Play商店這個唯一安裝渠道(國內除外),所以可以採用這種玩法來做到前所未有的穩定性和動態能力。App Bundles也存在一個問題,就是無法在運行過程中直接新增四大組件,需要覆蓋安裝base模塊之後再重啓。而後面兩個方案由於都是基於App Bundles的,因而有更大侷限性。
    目前看來,指望Google迴歸恐怕遙遙無期,不過這或許能吸引國內各個廠商自帶應用市場的跟進,甚至可能像統一推送那樣協商出一套符合國情的標準,從而改善國內的App更新環境。不過,App Bunndles的一些思想,如細緻化配置,確實值得現有的模塊化方案進行借鑑和吸收。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章