目录:
在过去的几天里,你可能听过“fork”这个词的次数比你想象的要多。 Facebook分叉了这一点(尽管它没有),亚马逊问道,Chrome团队分叉了整个网络,依此类推。 虽然每个人都在谈论谁在追求谁,但没有人愿意解释究竟是什么分叉,以及为什么这么多人都有问题。
分叉或破碎,在20年左右之前得到了一些不好的代表,因为它倾向于将开发人员分成不同的派系,他们没有彼此共享代码。 在像Gnu-Emacs / XEmacs拆分之类的时代,这很重要,因为没有多少人能够处理这些大型的开源项目,并且有两个分支或分支意味着需要更长的时间来添加双方的功能和解决问题。 在某些情况下,这仍然会发生,我敢肯定,但在大多数情况下,有很多开发人员可以填补那些具有独立愿景的人留下的空白,并将分叉代码来遵循它。 但有些人永远不会忘记,分叉的耻辱传递下去了。 说完这一切之后,我们就不能假装坏叉不会发生。 在做出决定之前,我们只需要看看行为本身。
我知道你们中的一些人知道这一切意味着什么,并且只是试图忽略所有的噪音,但对许多人来说这是令人困惑的。 我们试着解决这个问题。
什么是软件分支,它如何影响Android?
想想Android一堆代码。 有两个部分 - 开源部分,这是AOSP是什么,以及谷歌自己保留的专有部分。 如果有人想要使用谷歌Android并对其进行更改,他们将下载代码作为基础,并与之形成自己的项目。 三星这样做,HTC就是这样做的,你最喜欢的ROM开发者可能会这样做。 任何时候有人拿现有代码,并开始一个 独立的 (这是一个重要的区别)项目,他们已经创建了一个分叉。 许多开发人员将检查代码,编辑部分代码,然后将其更改全部发送回上游,这不是分支。
当Android分叉Android为Kindle Fire系列构建操作系统时,亚马逊引起了不小的轰动。 但在开源方面,它与摩托罗拉在Cliq上的表现没有什么不同,或者是HTC对Hero所做的 - 或者三星现在为Galaxy系列设备所做的事情。 这是多少大型开源项目的工作原理。 每个供应商(可能是亚马逊除外)都使用相同的基础知识,可能会报告错误并在上游时向上游提交修复程序,以创建自己对最终产品的看法。
Facebook没有分叉Android。 它使用Android意图系统(应用程序可以相互协作并在Android上共享的方式)并构建了一个大型应用程序,另外还包括替代主页。 在他们的沙盒中,他们可以做任何他们想要或需要做的事情,只要他们使用Android的意图,他们就可以与系统的其余部分进行通信。 如果你想获得技术支持,HTC可能已经将Android分叉与HTC First中的Facebook Home一起更好地工作,因为它提到了为提高兼容性而做出的一些改变。 我们会更多地了解他们在电话漏掉的时候所做的事情。
在任何情况下,分叉代码并不总是坏事,并且当有人提到它时,你不应该听到所有的负面情绪。 行业分析师Stephen O'Grady很好地总结了我的想法:
然而,值得一提的是,从客户的角度来看,叉子或变体并非普遍不好。 虽然各种Android版本可能代表负责它们的供应商的不幸设计决策,但假设版本等效,应用程序在绝大多数情况下兼容设备。
让设备与设备兼容是Android设计的原因。 分叉代码并不会导致这种情况发生。 但其他事情呢。
分叉Android的另一面
在中国,您可以从运营Android的运营商处购买手机,但没有Google服务? 就像Kindle Fire一样,它是基于谷歌的Android代码构建的(有时是未经修改的),但未提交和测试为谷歌兼容,并包含Gmail或谷歌播放等内容。 这些应用以及他们需要运行的各种系统文件不是开源的,您无法在未经Google许可的情况下将其包含在内。
除了“不同”(我不会说它更“糟糕”,只是不同)没有这些应用程序的用户体验,它们的外观和感觉就像您从Verizon或AT&T购买的Android手机。 他们也可以像亚马逊那样看起来和感觉非常不同。 但这一切都不是因为他们分拆了谷歌的Android代码 - 这是一个有意识的决定,不做谷歌“认证”的设备。 Google将Android作为一个应用程序平台和一组应用程序框架。 不包括谷歌的服务应用程序不会使它成为一个应用程序平台。 当然,我们认为谷歌宁愿所有基于Android和Android的设备都使用谷歌的服务,但没有硬性规则说供应商必须这样做。
制作没有谷歌应用程序的设备与分叉Android无关。 它可能会让设备变得不那么令人满意,或者有一天终极Android手机可以在没有Google应用程序的情况下构建,但它可以在不需要任何代码的情况下实现。 将这两件事情联系在一起我们都感到内疚,但我们不应该这样做。
分叉只是一件事
OEM分叉Android并使用代码处理他们自己的项目并不好。 OEM分叉Android并使用代码处理他们自己的项目并不坏。 这只是他们所做的一件事。
除了Nexus粉丝俱乐部,你不能告诉我三星或HTC通过分配代码并在其上构建来破坏Android。 他们添加了功能,同时保持一切兼容,以便根据开发人员指南为“Android”构建的应用程序可以正常工作。 他们不断提供人们想要购买的设备。 我认为这正是谷歌对Android的想法。 他们知道最终有人会更进一步创造一些不完全符合“Android”标准的东西,但这没关系。 这些设备的用户仍然在互联网上,谷歌的移动网络应用程序相当不错。
希望现在你能更多地了解人们谈论分支Android时的意思。