这款常用应用 , 就为不同Android机型硬件匹配了多个版本
如何才能确保对以上所有这些设备的完美兼容呢?以前行业中常见的办法有两种 。 一种就如同上图所举的这个例子一样 , 针对每一个不同的硬件平台、系统版本 , 甚至是每一个不同的屏幕分辨率都单独编写一个版本 。 另一种办法则是将所有不同平台、不同系统版本 , 乃至不同分辨率的素材和代码全部打包成一个安装包 , 由程序在安装、运行时自动适配 。
很显然 , 第一种办法能让应用安装包更小、下载和安装速度更快 , 但缺点是开发者自己很累 。 而第二种办法则相反 , 开发者可以省事 , 但消费者(用户)就得多耗费无用的流量和存储空间 , 来容纳那些他(这台设备)所不需要的代码 。
所以其实自2021年8月开始 , 谷歌就已经在自己的应用商店里力推新的Android App Bundles(.AAB)安装格式 , 用以取代此前的APK程序包 。 在这个新的安装格式下 , 开发者们向应用商店上传应用时 , 不再需要针对每一个不同平台都上传一个完整的APK安装包 , 更不用把所有代码都打成一个“大包” , 取而代之的是可以直接上传针对不同硬件、不同系统版本 , 乃至不同分辨率的界面代码“模块” 。
AAB格式应用的语言、界面、底层架构代码等 , 都是模块化的
等到消费者从Google Play Store下载应用时 , 应用商店就会自动根据用户的机型、系统情况 , 挑选出最佳的“代码模块”进行即时整合 。 如此一来 , 既能确保每台设备下载到的都是最兼容自身的应用代码(版本) , 又能节约流量和存储空间 。
只不过这同时也意味着 , 一方面开发者实际上不再需要维护“整个软件” , 每次更新软件功能时只要上传特定的、被更新过的功能模块就行 。 另一方面 , 不同消费者使用不同的设备 , 在应用商店里下载到的软件本身 , 就会存在着各种细微上的差异 。 既然每个人下到的软件可能都不一样 , 再纠结“版本号”自然就已毫无意义 。 而且更准确地说 , 在这种情况下 , 软件本身其实也压根就不再需要有“版本”的概念了 。
“消灭版本号”不见得是一种进步 , 但确实更适合市场
请注意 , 前文中我们所提及、所有关于目前移动应用“版本号”消失的事实和背后的技术理由 , 其实都有一个共同的大前提 , 那就是在当前由谷歌所引领的Android生态下 。
谷歌输入法此前的APP信息界面
谷歌输入法现在的APP信息界面 , 可以看到冗长的版本号已不显示了
为什么要强调这一点?因为除了Android手机外 , 目前还没有任何一个其他的软硬件生态产生过如此强烈的 , 需要“消灭”软件版本号的需求 。 苹果的iOS、iPadOS和macOS生态 , 几乎未曾遭遇过严重的“碎片化”;甚至就连PC上的Windows系统 , 也很少有听说因为系统或硬件迭代 , 老款软件突然就变得不能用、非得要专门进行适配更新的例子 。
那么 , 为什么Android生态就格外“特殊” , 非得要依靠Android App Bundles、靠“消灭”软件版本号的做法 , 才能确保性能与兼容性呢?
其实说白了 , 一方面这是源自Android的开源血统 。 谷歌毕竟不像苹果那样 , 是依靠自研硬件来撑起系统生态 , 既然Android开放给了无数硬件厂商 , 自然就会面临比iOS、比iPadOS复杂得多的硬件适配问题 。
另一方面 , 与“老成持重”、每次大版本更新都必需以稳定兼容为优先的PC操作系统相比 , Android所面临的、快节奏的手机市场 , 又决定了它每一代系统之间必须要有足够大的差异 , 必须要让消费者“一看、一用”就能感受到变化和进步 。 因此每次大版本Android系统的更新 , 往往都会带来底层设计上的较大改动 , 这就意味着大量应用都必须要重新进行针对性优化 , 才能发挥出最好的能效甚至是兼容性 。
相关经验推荐
- 5G|华为芯片还有备货?5G+麒麟+鸿蒙放开卖,“花粉”没白等
- 三星|Lazada推出新政策,打击卖家“挂羊头卖狗肉”!
- 华为鸿蒙系统|荣耀手机好用也别乱买!这3款口碑好、价格亲民,“流畅”用3~5年
- 小米科技|小米12S Ultra拿下七月安卓手机好评榜单第一
- iPhone14|最强安卓平板!小米平板6系列曝光:两款齐发,骁龙8+芯片!
- |行内人称它为“千元机屠夫”,你会考虑这款手机吗?
- 华为mate|如果不是华为,有谁认识“陈春花”?
- 洗衣机|为什么双缸洗衣机又“火”了?今天才发现,它还有那么多优点
- 苹果|我一直觉得,只有苹果配得上“流畅”二字!
- 华为mate|同样定档9月!华为Mate50和iPhone14“撞车”,你们更期待谁?