锁定第三方应用
我们之前已经探讨过
Play Service的更新含义 ,但它是与Android分支斗争中的一个巨大武器。Play Services是Google拥有的一款封闭式应用程序,并作为Google Apps套件的一部分获得许可。您看到的从“普通”Android到Google Play服务的任何功能也从开源转移到封闭源。这款应用程序不仅能够吸引具有独家闭源功能的用户,还能锁定第三方开发人员使用Google的专有API。
从Google获取Android应用程序生态系统似乎很简单:只需启动并运行自己的应用程序商店,说服开发人员将应用程序上传到其中,然后就可以了。但Play Services附带的Google API可以通过说服开发人员将对Google的依赖编织到他们的应用中来阻止这种情况。Google的Google Play服务战略是将“Android应用生态系统”转变为“Google Play生态系统”,让开发人员在Google认可的设备上尽可能轻松地生活 – 并且在非谷歌批准的设备上尽可能地难以实现设备。
如果您使用任何Google API并尝试在Kindle或任何其他非Google版本的AOSP上运行您的应用:惊喜!你的应用程序坏了。谷歌的Android在Android市场占有很高的比例,开发人员只关心轻松制作应用程序,使其运行良好,并覆盖广泛的受众。Google API可以实现这一切,但副作用是您的应用现在依赖于拥有Google Apps许可的设备。
Google Maps API
Google Maps API允许您在应用中使用Google的地图数据。这对于覆盖地图上的天气或在旅行应用程序中显示位置等内容非常方便。唯一的问题是,它是Google服务的一部分,而不是Android的一部分。依赖Maps API意味着您的应用无法在非Google认可的设备上运行。
为此,亚马逊被迫从诺基亚获得地图数据许可,并构建谷歌地图API 的工作克隆。该公司甚至有 一个专门从谷歌地图迁移您的应用程序的说明页面。再一次,谷歌就是要让生态系统中的生活变得轻松,而且非常困难。如果您想在Kindle上运行,您现在需要支持两种不同的Maps API。
对于Android forker而言,这是一个糟糕的情况,在这种情况下,亚马逊,现在必须处理向诺基亚永久支付许可费或者外出并独自映射整个星球。亚马逊现在也需要跟上谷歌的快速发展步伐:亚马逊的Maps API支持谷歌地图API v1,但谷歌已经达到了v2。如果您是开发人员并依赖Maps v2 API中的某些新功能,则亚马逊尚不支持它。现在你还有更多工作要做。
Google云消息传递
Google云消息传递(GCM)是在Android上进行推送通知的最简单方法,但您永远不会在AOSP上看到它。GCM最近被添加到I / O 2013的Play服务中,它现在不仅包括接收通知,还包括向上游推送消息。它负责新添加的跨设备同步通知的功能。开发人员经常使用GCM将突发新闻推送到设备或通知应用程序新数据可用并应执行同步。
虽然谷歌地图可能会在少量应用程序中使用,但更多的应用程序需要推送消息才能有任何好处。这是亚马逊被迫复制的另一个功能,以免被遗忘。它的版本称为“
亚马逊设备消息 ”,它只适用于亚马逊设备。就像Maps API一样,您将为一小部分用户进行额外的工作和测试。GCM的每个功能可能都不在亚马逊的版本中,因此您需要额外的工作来找出解决方法。
位置API
在Google I / O 2013中,Google 修改 了Android位置API,并将其作为Google Play服务的一部分发布。换句话说,Android的顶级位置服务现在是封闭源。如果上述历史记录是任何指示,则开源位置堆栈将被腐烂。增加的功能包括融合位置提供程序,Android的位置算法的“完全重写”,Geofencing(允许您在地图上定义将在用户输入时触发应用程序中的事件的位置),以及使用加速度计的活动识别数据和花哨的算法,以确定用户是否在不打开GPS的情况下行走,骑自行车或开车。
将Maps API和Google Cloud Messaging放入专有应用程序是完全合理的,因为这些服务依赖于Google服务器来运行。然而,在整个位置堆栈上移动感觉就像谷歌那样大规模的力量抢夺。现在有两种获取位置的方法:良好的,低功耗的,闭源的谷歌方式,以及糟糕的,电池昂贵的开源方式。
应用内购买
Android上最佳的应用内购买是通过Google Play商店完成的。但是,如果开发人员希望他们的应用程序在Kindle或中国工作,他们将不得不寻找另一种解决方案。这是另一个特性,如果你想拥有一个可行的AOSP分支,你将不得不复制它,这
正是亚马逊 在Amazon In-App Purchasing API中
所做 的。 三星 甚至参加了派对,两年前推出了应用内购买API。
玩游戏
Play Games是另一种专有API,可以解决移动开发人员遇到的许多难题。它可以轻松访问用户帐户,排行榜,成就,云端保存,反盗版和(在Android上)实时多人游戏。最好的部分是几乎所有东西:Web应用程序,iOS和Android。好吧,
除了 AOSP
之外的 一切,都 不受支持。这是第三方应用程序可能依赖的另一件事,而另一个Android发行版必须复制。
亚马逊有一套名为“
GameCircle ” 的游戏API ,但它不是Play Games的替代品,就像亚马逊地图API一样。开发人员必须花时间进行完全独立的多人游戏实施工作。
通过支持iOS支持锁定
Google战略的边缘 – 邪恶 – 天才部分是iOS上也支持90%的Google API。现在,让自己置身于决定是否使用Google API的开发人员:Google的许多解决方案都提供了一流的可用性,功能和易于实施。Google支持两种主流移动平台,因此它将覆盖您潜在用户群的很大一部分。该
唯一 不好的是,它不会使用Android叉工作,但任何AOSP叉将是你的可能目标设备的非常小的一部分。
大多数开发人员可能对Google API说“是”,接下来的问题是他们应该如何处理Kindle和其他Android分支?开发人员主要依靠自己来寻找替代API解决方案,该解决方案可能已过时,可能无法与现有应用程序完美配合。如果这个其他解决方案不是一个完美的替代品,开发人员将不得不弄清楚如何围绕缺失的功能设计他们的应用程序。由于与目前的iOS + Android用户群相比,用户数量相对较少,因此尝试找出这个独立的生态系统是否值得呢?他们会获得投资回报吗?很容易说“分叉Android的地狱”,并跳过所有额外的工作和Q / A将需要。
三星不会去任何地方
这部分显示了为什么亚马逊可以在没有谷歌的情况下生活,而三星也不能。虽然亚马逊是一个谷歌API复制机,但三星对目前依赖谷歌的第三方开发商没有很多答案。任何有关三星离开谷歌生态系统的猜测都为时尚早,直到你看到许可地图数据或构建云消息传递API。
亚马逊在保持良好状态方面做得不错,但该公司诞生于互联网上。服务器和软件是公司的强项,因此构建一堆云服务并不是一个巨大的变化。三星电子是一家电子公司,正在构建一个云基础架构,而且一堆API并不在其DNA中。因此,虽然亚马逊可以在其云服务平台的支持下在几年内将这种情况联合起来,但三星在此之前还有更多的艰难攀升。
三星取得了一些进展。如上所述,该公司拥有自己的SDK用于应用内购买。有趣的是,它还有一个广告SDK,但广告实际上赚钱。Google支持Android,iOS,Android分支甚至Windows Phone上的广告。
一种“看起来但不要碰”的开放式
如果一家公司甚至想考虑分配Android并创建一个可行的商业竞争对手,他们将不得不复制本文中的所有内容。即使这样,
你也只是打破了。 您仍然需要向用户提供从Google的Android切换到Android分支的理由。
谷歌在内部完成所有工作。该公司基本上免费获得地图及其所有云服务。任何一家试图在这些脚步可能要外包
的东西 这个名单上。亚马逊必须获得诺基亚地图数据的许可是一个很好的例子。谷歌针对地图销售广告 – 它实际上
使 公司赚钱 – 而亚马逊必须为其地图数据支付每用户费用。这是Android forker每天将面临的一种截然不同的收入状况。谷歌的服务成本
低于零 ,任何参与竞争的人最终都会向其他公司支付月费。
如果一家公司确实设法在Android生态系统之外设置Android并使其具有吸引力,那么几乎所有制造商都无法合同制造运行新操作系统的设备。 即使这个新的Android衍生产品更好,对于一个脱离谷歌生态系统的OEM来说,它可能比它的价值更麻烦和风险。
虽然Android是开放的,但它更像是一种“外观但不要触摸”的开放式。你被允许为Android做贡献,并允许将它用于小小的爱好,但几乎在每个领域,这个套牌都是针对任何试图使用Android而没有谷歌祝福的人。第二个你尝试使用Android并做一些谷歌不赞同的事情,它会让世界崩溃。