前幾天谷歌對開發者推送了一條消息,表示從今年8月開始,所有上傳到谷歌應用商店的應用都要使用.AAB格式,而不再用原來的.APK格式。有人說啥是AAB(Android App Bundle)?那這個規定是不是為了打壓鴻蒙系統呢?
啥是APK(Android application package)?APK全稱是Android application package,Android應用程序包,是一個标準的 ZIP 文件,狹義上說,他不是可執行文件,linux 上可執行文件是 ELF 文件,但是 APK 不是 ELF 文件。因此 aaa.apk == aaa.zip
apk是有什麼組成的呢?
APK是由Dex文件、資源、資源表、和簽名摘要四部分組成的,這四部分相輔相成,不可或缺,不然任何一個OS都無法正常的運行你帶Activity的Android應用。
一個APK文件結構為:
mete-INF Jar文件中常可以看到
res 存放資源文件的目錄
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字節碼
resources.arsc 編譯後的二進制資源文件
AAB又是什麼呢?ABB它是谷歌的插件化,ABB=APK動态打包,動态組件化的技術,跟Instant App不一樣的是,AAB是借助Split Apk完成動态加載,使用AAB動态下發方式,可以大幅度減少應用體積。
打從安卓出現後,安卓應用一直就是用apk格式發布。apk是安卓系統包的簡寫,也是Android應用的後綴名,一直是Android系統的程序規範包格式。
其實是大家想多了,早在18年谷歌就已經推出了AAB(Android App Bundle)格式。那為什麼隔了三年多才正式推出AAB格式呢?是為了優化系統還是為了應對鴻蒙的挑戰?
谷歌是為了進一步鞏固自的身生态,Google Play會使用App Bundle針對每種設備配置生成并提供經過優化的APK,因此隻會下載特定設備所需的代碼和資源來運行應用。因為AAB新格式僅限于通過 Google Play 發布的應用,而且使用AAB需要加入到Google的beta program。
傳統的APK格式,開發者需要把所有的語言、分辨率、架構等資源統統塞到安裝包裡,對于用戶下載應用,就顯得非常累贅。
相關應用通過使用AAB可以減少應用包的大小,從而提升安裝成功率并減少卸載量。其中包含你應用的所有經過編譯的代碼和資源,它會将APK生成及簽名交由Google Play來完成。簡單來說AAB格式的應用可以比APK應用小15%。開發者不必再構建、簽署和管理多個 APK 來優化對不同設備的支持,而用戶也可以獲得更小且更優化的下載文件包。開發人員還可以更好地控制他們如何向應用分發更新,這可能會導緻更快、更高效的應用更新。
而AAB格式其實是開發者打包上傳的格式,它可以根據不同用戶的手機分辨率、架構、語言等進行針對性分發,不适用于該手機的内容将不會被一并下載,這樣就可以将原先臃腫的完整安裝包減重,加快安裝速度的同時,也節約了手機的空間。用戶下載得到的其實還是APK格式。
針對性的渠道分發,更有利于谷歌進一步加強自己對應用商店的管理,類似IOS系統一樣,嚴格控制生态,鞏固自己的利益。谷歌安卓以AAB替換APK安裝包各種配置文件和資源文件的格式發生了較大的變化,導緻原始的方案直接無法使用了。
谷歌安卓以AAB替換APK安裝包對鴻蒙的發展有哪些影響?如果說.aab 應用格式落實,對Android用戶而言,隻是增加了第三方下載應用的難度。那麼對于鴻蒙OS而言,這可能是一個巨大的挑戰。
不過,對于面向國内渠道的開發者來說,這件事在短時間内應該不會有太大影響。
谷歌強制要求APP轉向AAB格式,并非禁止鴻蒙系統兼容安卓APP。部分網友說這是谷歌針對鴻蒙的舉動?我并不這麼覺得哈,谷歌app bundle在2018年就始推薦給開發者使用了,那個時候華為鴻蒙還沒有消息呢。其次,把現有的應用打包成abb非常簡單,幾乎不用改動項目的源代碼,所以同一個應用,在國内使用APK分發,在海外市場使用abb分發也很簡單。
目前鴻蒙OS的軟件大多還是以安卓應用為主,但是,目前的華為應用商店已經支持aab格式了。所以如果谷歌全面使用.aab ,那就不會對鴻蒙OS産生不利影響。AAB影響範圍隻有在谷歌商店和apk mirror渠道,我們基本不用這兩個渠道,同時國内的應用渠道也有很多供我們選擇,所以對鴻蒙系統沒有任何影響。
也有人說abb格式的應用無法在鴻蒙OS運行,是因為一些海外應用集成了谷歌的GMS服務框架,手機上若是少了GMS就沒辦法正常使用應用。但是谷歌GMS服務本來就沒法在國内環境使用呀,國産手機一般也不會預裝Google的軟件。所以啊,谷歌強制要求APP轉向abb格式跟華為鴻蒙OS沒有一絲關系,對國内開發者也沒有太大影響。
當然,這樣的想法或許是我們多心了,究竟安卓應用這一次改變劍指何處,恐怕還需要時間來驗證。
——————
原創:老王丨鴻蒙hms開發者高級認證持證人!學習更多鴻蒙OS相關開發技術可以關注我的公衆号:鴻蒙開發者老王
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!