日前,谷歌向开发者发出消息,称从今年8月起,所有上传到谷歌应用商店的应用都将使用。AAB格式而不是原来的。APK格式。有人说什么是AAB(AndroidAppBundle)?这项规定是否旨在压制鸿蒙系统制度?
apk的构成是什么?
APK由四部分组成:Dex文件、资源、资源表和签名摘要。这四个部分相辅相成,缺一不可,否则任何OS都无法正常运行你的带Activity的Android应用。
APK文件结构是:
您经常可以在mete-INFJar文件中看到它。
res存储资源文件的目录。
AndroidManifest.xml程序的全局配置文件
Classes.dexDalvik字节码
resources.arsc的编译二进制资源文件
自从Android出现以来,Android应用都是以apk格式发布的。Apk是Android系统包的缩写,也是Android应用的后缀,一直是Android系统的程序规范包格式。
其实是人想多了。早在18年前,谷歌就已经推出了AAB(AndroidAppBundle)格式。那为什么过了三年多才正式推出AAB格式呢?是为了优化系统还是为了迎接鸿蒙系统的挑战?
谷歌是为了进一步巩固自己的生态。GooglePlay将使用AppBundle为每个设备配置生成并提供优化的APK,因此它只会下载特定设备运行应用程序所需的代码和资源。因为新的AAB格式仅限于通过GooglePlay发布的应用,而使用AAB需要加入Google的betaprogram。
在传统的APK格式中,开发者需要将语言、分辨率、架构等所有资源都塞进安装包中,这对于用户下载应用来说非常繁琐。
相关应用可以通过使用AAB来减小应用包的大小,从而提高安装成功率,减少卸载量。它包含您的应用程序的所有编译代码和资源,它将把APK生成和签名交给GooglePlay。简单来说,AAB格式的应用可以比APK小15%。开发者不再需要构建、签署和管理多个APK来优化对不同设备的支持,用户也可以获得更小、更优化的下载包。开发人员还可以更好地控制他们如何向应用程序分发更新,这可能会导致更快、更有效的应用程序更新。
AAB格式实际上是开发者打包上传的格式。可以根据不同用户手机的分辨率、架构、语言进行分发,不适合这款手机的内容不会一起下载,这样可以减轻原本臃肿的完整安装包的重量,加快安装速度的同时也节省了手机的空间。用户下载的实际上是APK格式。
有针对性的渠道分发更有利于谷歌进一步加强对app store的管理。和IOS系统一样,严格控制生态,巩固自身利益。谷歌Android将APK安装包替换为AAB,各种配置文件和资源文件的格式发生了很大变化,导致原方案直接无法使用。
不过,对于面向国内渠道的开发者来说,这件事在短时间内应该不会有太大影响。
谷歌迫使应用程序切换到AAB格式,而不是禁止鸿蒙系统兼容Android应用程序。有网友称这是谷歌针对鸿蒙系统的举措?我不这么认为。谷歌appbundle是2018年推荐给开发者的,当时还没有华为鸿蒙系统的消息。其次,把现有的应用程序打包到abb非常简单,几乎不需要修改项目的源代码,所以在中国使用APK,在海外市场使用abb分发同样的应用程序也非常简单。
目前大部分鸿蒙系统OS软件都是以Android应用为主,但目前的华为应用商店已经支持aab格式。因此,如果谷歌充分利用。aab,它不会对鸿蒙系统操作系统产生不利影响。AAB的影响范围只是在Google Store和apkmirror渠道,我们基本不用,而且国内有很多应用渠道可供我们选择,所以对鸿蒙系统系统没有影响。
也有人说abb格式的应用不能在鸿蒙系统OS上运行,因为有些海外应用集成了谷歌的GMS服务框架。没有GMS,应用就无法在手机上正常使用。但谷歌GMS服务在国内环境下无法使用,国产手机一般不预装谷歌软件。那么,谷歌强制要求APP转向abb格式跟华为鸿蒙OS没有一丝关系,对国内开发者也没有太大影响。.
当然,这种想法可能是我们多心了。这次安卓应用改剑在哪里,恐怕还需要时间验证。
——————
原创:老王丨鸿蒙hms开发者高级认证持证人!学习更多鸿蒙OS相关开发技术可以关注我的公众号:鸿蒙开发者老王