即使是 Project Treble,也救不了 Android 的碎片化
一直以来,Android 碎片化严重、升级率低都是 Google 的一块心病,Google 曾为解决 Android 碎片化的问题做了不少努力,他们甚至对 Android 进行了大改,试图通过 Project Treble 这一新的框架来减少 Android 新版本发布的环节,让厂商能够以更快的速度为用户下发新版本的 Android。
然而,Android 手机厂商们为了走量一年会推出相当多的机型,出于成本、工程团队规模等多方面因素的考量,绝大部分旧机型、低端机型在 Android 大版本升级后在适配列表中都是低优先级的,而且这一部分机型往往在得到 1 - 2 次 Android 大版本更新后就不再能够获得新的更新。
Google 曾经推出的 Project Treble 主要是将系统本身和底层(vendor implementation,包含驱动等)解耦、剥离,在 Project Treble 更新前,厂商都需要等待各类供应商、运营商针对新系统重构底层,并做大量的测试来确保其工作稳定,手机厂商需要配合他们完成这一步,在这一步完成后再对系统进行定制化,经过测试后再下发给自己的用户。
如今在应用了 Project Treble 后,在 Android 更新大版本时厂商不再需要等待供应商、运营商针对新版本 Android 对底层部分进行重构,他们可以直接基于 AOSP 的新版本源码进行定制化。
由于整个 Android 新版本发布的流程得到了简化,所以理论上厂商在新版本 Android 发布后能够更快给用户提供更新,同时他们也能够为更多支持 Project Treble 的设备提供更长久的支持。在 Google 的预想下,Project Treble 大范围应用后,Android 的严重碎片化问题和升级率低的问题都能得到缓解。
Google 在 Android O 中引入了 Project Treble,到目前已经有大量的设备和深度定制的 Android 都支持了 Project Treble,理论上目前新版本 Android 推出后厂商应该能很快将给新版本 Android 做好适配并且下发到用户的手机上,会有越来越多设备能够更新到新版本的 Android。
然而,这只是理论。在现实中,根据 Google 官方统计的最新数据,Android 碎片化严重的问题仍然没有解决,而且新版本 Android 的占比仍然很不理想。
在 Google 放出的截止 5 月 7 日的统计数据中,Android P 设备占比超过 10%,达到 10.4%,升级率还算不错,但是相较于从 Android N 升级到 Android O 来说,厂商并没有那么积极地去给设备针对 Android P 做适配,很多设备都停留在了 Android O,或者还处于准备升级到 Android O 的阶段。
这主要是因为在国内厂商眼中 Android O 和 Android P 在实际用户体验上区别不大,很多 Android P 上比较表面的新特性早已被厂商整合到了自己的定制 UI 中,所以厂商更多只对关键设备做了 Android P 的适配,例如小米。
像小米 6 还是在用户一再要求下才获得了 Android P 的适配,可见厂商对 Android P 的重视程度并不高,所以总体而言 Android P 的升级率只能说一般,大量的设备还是停留在 Android O,这一部分设备占比是接近 30% 的。
友盟截止 5 月 2 日的统计数据中,就国产手机而言,有近 35% 的设备停留在 Android O,而搭载 Android P 的设备占比小于 10%,可见 Google 统计的总体数据中 Android P 占比低和国内手机厂商不愿意为一些旧产品适配 Android P 有很大的关系。
你可能会问,在 Project Treble 下,厂商做大版本 Android 更新的适配应该会更容易、更快一些,为什么厂商仍然不愿意为更多的设备适配更新呢?
这主要是因为国内手机厂商对 Android 做了太多的改动,以至于他们仍然需要花大量的时间对一款设备做适配。厂商对 Android 修改得越多,他们做适配也就越麻烦。
而且现在的手机也不像之前的手机在外观、硬件上都比较类似,现在的手机外观较大,特别是异形屏手机,且硬件上不同的设备在摄像头、充电等方面也有着较大的差异,这使得厂商针对不同设备做适配变得更加困难。
厂商之所以更愿意为旧设备适配 Android O 而不是 Android P,主要是因为 Android P 是深度集成 Project Treble 的,而很多旧设备并没有应用这样的框架。如果要从非 PT 改成 PT,那么厂商在升级的时候需要对用户手机的分区进行操作,而这项操作是很危险的,厂商需要花大量时间进行测试以确保这个操作是稳定可靠的。
所以目前来说,Android 的版本分布总体上是 Android O 占大头,Android P 只占很小一部分。值得注意的是,在全球范围内,仍然有相当多的 Android 设备还停留在 Android 7.x、6.x 甚至是 5.x,即使是在手机迭代速度很快的国内,Android 6.x 设备的数量也并不比 Android P 设备的数量少多少,而 Android 5.x 设备的数量总体上甚至要超过 Android P。
从分布图来看,目前 Android 设备的碎片化仍然是严重的,如今 Android 已经发展到 10.0 了,Android 4.x 的设备却仍然没有被淘汰掉,这意味着开发者在开发应用的时候仍然需要考虑对 Android 4.x 设备的兼容,最低最低他们也需要兼容 Android 5.x 的设备。
这不论是对于开发者还是对于 Google 来说都是一种折磨,旧版本的系统不能够全面淘汰掉,将会极大地限制 Android 未来的发展,对于 Google 来说,他们可以停止对这些旧版本提供支持,但是这些旧版本 Android 的设备仍然还存在,而且它们也难以升级到 Android 新版本。
对于开发者来说,这些设备无法被淘汰掉,意味着他们在开发应用的时候仍然需要照顾到这一些设备。这会使应用的开发成本、开发难度以及测试成本陡增。
Android 碎片化的问题在未来数年内仍然会持续存在,Android 阵营的设备实在是太多了,厂商确实也没有办法做到面面俱到。
考虑到现在越来越多的厂商锁掉 BootLoader,对 Android 进行更深度的定制,在笔者看来全球会有越来越多的 Android 设备被固定在某一版本,无法获得后续的升级,即使是自己刷机也不可以。
对于 Android Q 的升级率,笔者并不持乐观态度,因为 Android Q 真正对国内用户来说有实际意义的功能并不多,黑暗模式也已经有厂商在 UI 层面实现了,这使得厂商们对待 Android Q 的态度会和他们对待 Android P 类似。