Android 的分裂无解,但这并不重要

322586-google-play-services

在今年的 Google I/O 大会上,Google 的战略进一步明确了,操作系统和硬件产品是第二位,跨平台的服务是第一位,人工智能是第一位。从这个角度来看,我们对于 Android 的分裂是否应该有新的看法?

所有人的 Android,Google 的 Android

正如 Horace Dediu 比喻的,Android 是造雨者。它免费、开放,所有厂商都参与进来,从而推动移动互联网的发展。移动互联网发展越快,Google 的服务就能到达更多人的手中。Google 选择在特定时刻系统源代码推到 AOSP,让任何厂商都可以修改。不仅是修改界面,而且可以去集成其它服务,打造自己的生态圈。这是所有人的 Android,广义的 Android。

 

但 是,对于 Google 来说,更重要的是通过 Android 推动 Google 服务。为此,Google 才成立了开放联盟,并确定了一些规则。如果厂商想要使用 Google 服务,需要加入开放联盟,承诺不去分裂 Android。这里所说的分裂,主要是 API 上的分裂,造成应用的不兼容。当开放联盟的 Acer 突破底线的时候,Google 才去施加影响,而其它的情况下,即使三星继续 Touchwiz,HTC 去搞自己的 Sense,都不影响 Google 的生意。这是 Google 的 Android(AOSP+Google 服务),狭义的 Android。

在 Google 的 Android 里,Google 掌控着系统的关键部分:Google 应用,应用商店。目前来看,强大如三星也没有抛弃 Google 服务,去 Fork Android,因为它缺乏自主掌控应用生态圈的能力。

因 此,广义的 Android 是颠覆移动市场的开源系统,以它为基础的生态圈,版本分裂不可避免,无法控制。狭义的 Android 是 Google 推广其服务的, Google 可以随时施加影响的(比如阿里云事件),只要版本分裂不影响到 Google 的服务,也不会造成第三方应用兼容性问题,就无需担心。

最近,Google 在发布 Android 版本分布情况的时候,只统计了使用 Google Play 服务的 Android 设备。从这件事情上,我们可以看到 Google 的关注点。

play service

Google Play Service 是关键

对 于 Google 来说,Google 应用和 Google Play Service 是 Android 中的关键部分,共同组成了 Android 系统中的 Google 服务。其中,Google Play Service 是 Google 服务与第三方应用之间的桥梁。通过 Google Play Service,第三方可以通过 Play Store 更新,通过 Google+ 进行 Sign in,使用 Google 的地图服务。

Google 的应用已经和系统脱离,可以直接升级,而 Google Play Service 也已经独立。

从 这次 I/O 开始,Google 进一步增强了 Google Play Service 的重要性,将一些系统服务集成进去。此次更新,增加了位置服务和游戏服务(Play Game Service)。这些应该集成到系统中的服务,被 Google 剥离出来放到了 Play Service,从而确保用户能够及时收到更新。Google Play Service 更新是自动的。此次更新会推送到 2.2 以上的系统。

同时,在 Google I/O 前后,Google 更新了一系列重要产品,而且力度很大。这包括 Play Store、Google+、Play Music(All Access 服务)、Play Books 等,Hangouts 取代了 Gtalk,而搜索和地图也会在近期获得较大更新。因此 Ars 网站说,“Google 在没有发布 Android 4.3 的情况下,更新了 Android”,而 Android Central 网站则干脆说,“Google 收回了 Android 的控制权”。

分裂无解,但是分裂并不重要

这 当然无法解决版本分裂问题。但是, Google 可以在第一时间向用户推送 Google 的核心服务,无需升级整个操作系统。软件的兼容性问题也是在 Google 控制之中的,因为整个系统的升级都在 Google 的手中,可以最大限度保证软件在低版本上运行。对于用户来说,只要能够用上 Google 的服务,软件运行顺畅,版本高低并不重要。相反,他们可以在硬件上有更多的选择权,可以在界面上有更多的选择权。

或许,这也是 Google I/O 想要传达给我们的信息,Google 希望推广自己的体验,也希望系统能够快速升级,但并不是公司的核心策略。如果用户能够快速更新 Google 服务,如果开发者能在第一时间集成 Google 的服务,分裂又如何呢?

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 QueueForMcu 基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。 开源代码:https://.com/xiaoxinpro/QueueForMcu 一、特性 动态创建队列对象 动态设置队列数据缓冲区 静态指定队列元素数据长度 采用值传递的方式保存队列数据 二、快速使用 三、配置说明 目前QueueForMcu只有一个静态配置项,具体如下: 在文件 中有一个宏定义 用于指定队列元素的数据长度,默认是 ,可以根据需要更改为其他数据类型。 四、数据结构 队列的数据结构为 用于保存队列的状态,源码如下: 其中 为配置项中自定义的数据类型。 五、创建队列 1、创建队列缓存 由于我们采用值传递的方式保存队列数据,因此我们在创建队列前要手动创建一个队列缓存区,用于存放队列数据。 以上代码即创建一个大小为 的队列缓存区。 2、创建队列结构 接下来使用 创建队列结构,用于保存队列的状态: 3、初始化队列 准备好队列缓存和队列结构后调用 函数来创建队列,该函数原型如下: 参数说明: 参考代码: 六、压入队列 1、单数据压入 将数据压入队列尾部使用 函数,该函数原型如下: 参数说明: 返回值说明: 该函数会返回一个 枚举数据类型,返回值会根据队列状态返回以下几个值: 参考代码: 2、多数据压入 若需要将多个数据(数组)压入队列可以使用 函数,原理上循环调用 函数来实现的,函数原型如下: 参数说明: 当数组长度大于队列剩余长度时,数组多余的数据将被忽略。 返回值说明: 该函数将返回实际被压入到队列中的数据长度。 当队列中的剩余长度富余...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值