对于开发人员而言,开发能够在大量不同的设备上运行的移动应用程序,最重要的时间和成本因素是 Android 生态系统里的碎片。 OpenSignal 的调查报告显示,碎片可以分成两类:
- 硬件碎片:跟踪结果显示,在 2013 年,有将近 12000 种不同的 Android 设备带来了各种各样的屏幕尺寸和硬件性能。
- 软件碎片:当前,使用中的 Android 操作系统版本有 8 个。例如,于 2011 年初发布的 API 2.3.3 到 2.3.7 在所跟踪的设备中仍然占有 30% 的份额。
相反地,不同 iOS 设备的数量非常小,而且屏幕尺寸的种类有限。此外,在所跟踪设备中 95% 都运行着最新的 iOS 6。
正如 Ron Amadeo 发表在 Ars Technica 上的博文所述,Google 现在似乎正在解决软件碎片问题。
此文认为,操作系统新版本推出背后的过程是出现 Android 操作系统版本碎片的最主要原因:Android 新版本完成后,会交付给 OEMs,然后 OEMs 会将其特有的 UI 移植到新版本中。之后,再将其推向运营商,并最终通过无线网络交付给终端用户。通常,这一过程需要几个月的时间,而且由于需要做大量工作,所以那些不太受欢迎的设备可能根本得不到更新。
因为 Android 更新推出缓慢,Google 越来越多地使用一个名为 Google Play Services 的应用程序在设备上安装新功能:
Play Services 具有系统级功能,但是可更新。它是 Google 应用程序包的一部分,因此并不开源。OEMs 无法对其进行修改,所以它完全在 Google 的控制之下。Play Services 主要是作为普通的应用程序和已安装的 Android OS 之间的“垫片”。现在,Play Services 可以处理 Google Maps API、Google 账户同步、远程擦除、推送消息、Play Games 后台及许多其它任务。
在这一概念下,Google 可以在宣布新功能后几天内将其推出。此外,Google 继续从操作系统提取 Mail、Maps 或 Calendar 等应用程序,并把它们转移到 Play Store 而且使终端用户可以修改。
虽然硬件层面的碎片问题依然存在,但这对软件碎片问题而言将是个极大的改进。当更新 Android 系统的中心部分不会牵涉 OEMs 和运营商时,对于最近的 API,开发人员在构建应用程序的过程中可以在更广泛的设备基础上获得更多的支持。
评论