[译] google会背叛并杀死Android吗?

OpenJDK:

Tim Lindholm在撰写上述电子邮件的时候OpenJDK已经三岁了。 Google是可以将这个开源的Java API实现集成到Android中的。 但是,顶级的Google高管寻找到了Java的替代品,并试图操纵Oracle高管给予他们折扣。 本电子邮件中甚至没有提到要把OpenJDK作为选项。

为什么谷歌不直接免费使用Oracle的开源OpenJDK,而是去与甲骨文谈判获得Java API的使用许可证?

OpenJDK是根据GPL + Classpath Exception获得许可的,而Android主要是在Apache下获得许可的。 将OpenJDK整合到Android并不能帮助到谷歌,谷歌高管对此非常了解,因此在这次讨论中甚至没有提出这个选择。

然而,大约六年之后,随着Android Nougat的发布,OpenJDK被引入了Android。 是什么让Google改变主意?

OpenJDK和Android的许可协议都不会改变,所以OpenJDK并不是Google的安全选择。 只是在那个时候,谷歌已经实在是没有办法去说服美国联邦巡回上诉法院相信Java API是没有版权的。最高法院拒绝了谷歌的请求,要求审理此案。与此相比,与OpenJDK相关的风险不再那么大,所以Google决定整合它。

但是请不要误会 - 谷歌与Android中的OpenJDK相关的风险仍然很大。

首先,甲骨文可以向法院请求Android Nougat版本之后的系统禁止使用OpenJDK,甲骨文肯定会赢得诉讼,并获得禁令。 即使谷歌能够说服法庭需要进行另一项单独的审判来确定Android Nougat版本之后的系统的侵权损害赔偿,甲骨文很可能不会退缩。

虽然谷歌有机会摆脱Android中的OpenJDK,但它不可能仅凭这一点就希望能打赢数十亿美元的官司并掌控Android的未来。

所以,谷歌看上了Kotlin。

Kotlin如何帮助Google:

还记得Google在2010年与Oracle进行Java许可证谈判时使用的策略吗? 他们试图证明他们可以把Android迁移到别的技术上,希望甲骨文能够给予他们折扣。 今天,我们知道它并不像预期的那样有效。

我的一个推测是:谷歌想通过Kotlin来进行一次炒作,借此来证明他们这次是认真的。这样的话,如果谷歌决定与甲骨文达成和解,这可能是和解谈判的一个很好的筹码,甚至可能是唯一的筹码。因为就这起诉讼而言,谷歌似乎落于下风。

我个人认为这个解释的可能性非常低。甲骨文明确表示,他们希望获得公平的Android份额,但谷歌曾用Android做过的所有事情都表明他们不会让任何人参与进来。看起来甲骨文和谷歌的地位相差太远,无法成为一个可行的解决方案选项。

即使Kotlin只是一个谈判的的筹码,谷歌仍然需要证明他们可以将Android从Java迁移到Kotlin。

除非…

从理论上讲,谷歌可以重新实现Kotlin API以消除Android对Java API的依赖。 如果Java API不再使用,Google将能够从Android中删除OpenJDK。

Android会在删除OpenJDK后放弃对Java应用程序的支持吗? 我不这么认为。

以Facebook为例,他们的代码库中很可能早就已经积累了一百万行Java代码。 将如此庞大的项目迁移到Kotlin将是一项非常困难和长期的工程,这将耗资数百万美元。 在可预见的未来,我认为Facebook不会达到这个水平。Google是不可能放弃对类似于Facebook等其他应用程序的支持的,因此它别无选择,只能继续使用Java来支持Java应用程序。

在删除OpenJDK之后,Andorid可以在编译之前将Java编译为Kotlin,或直接编译为使用Kotlin API的代码,从而解决Java API缺失的问题。这实现起来并不困难。

所以,谷歌采用Kotlin是为了从Android平台移除有争议的Java API。

Google的世界末日场景:

据我所知,如果甲骨文胜诉,理论上,他们可以在Android中获得份额,无论它是否会继续使用Java API。

甲骨文表示,Google侵犯了他们的版权,并创造了一个基本上将Java从移动市场中淘汰的竞争产品。 即使谷歌此时删除侵权部分,法院仍可以判定谷歌需要对甲骨文核心业务的长期损害负责。在这种情况下,即使侵权行为停止,甲骨文也可以获得Android的份额。

这对谷歌来说是一个世界末日的场景,因为甲骨文将获得Android的份额,谷歌将无法做任何事情。

除非…不会再有Android。

Fuchsia:

关于Android的一个最神秘的话题是Google的新“秘密”操作系统Fuchsia是否真的打算取代Android。

如果Fuchsia真的取代了Android,这对于Android生态系统的参与者来说影响将是巨大的,但Google不会与我们分享任何信息。我和其他许多Android开发人员向Google的官方代表询问了Android和Fuchsia的路线图,但据我所知,没有人能够回答这个问题。

所以,让我回答一下关于Android的一个大问题:什么是Fuchsia?

Fuchsia是谷歌给自己买的的一份保险。如果谷歌最终被判侵权,甲骨文将获得Android生态系统或利润的份额,那么Google将杀死Android并迁移到Fuchsia。

但是,Fuchsia要想取代Android,至少必须满足三个前提条件:

  1. Fuchsia必须拥有足够多熟练的开发人员,以形成开发者生态系统。
  2. 必须有设备能够真正运行Fuchsia。
  3. Fuchsia必须支持Android应用程序。

我相信取代一个世界上最流行的操作系统将远不止于以上三个条件。 我选择专注于这三个先决条件的原因是:他们中的每一个都是强制性的,而且可能需要很长的时间才能实现。

所以,即使谷歌决定杀死Android转而去支持Fuchsia,我们仍然会有好几年的时间,因为在短时间内无法实现上述目标。

除非… Google今天已经在努力满足这些条件。

Flutter:

Flutter是谷歌新发布的移动开发SDK,支持Android和iOS。它是用一种名为Dart的语言编写的,它在底层不使用Java API。

Steve Yegge(一个将会盗取谷歌的Android系统的人)曾在他的帖子中说过这样一段话:

谷歌是不会被竞争对手所超越的,他们回答说:“哦,是吗?你是不可能与我们竞争的,因为我们要与自己竞争!”,于是他们推出了Flutter,说这是一种与原生Android竞争的技术栈,但是他们没有完完全全的做到这一点,只是Android团队拒绝承认罢了。

这篇文章精确地表达了Flutter所处的荒谬环境。也就是说,我不认为Google确实在与自己竞争。

那么,让我回答另一个与Android相关的问题:Google为什么启动并推广Flutter?

Flutter也是用于编写Fuchsia应用程序的官方SDK,这不是什么秘密。 如果他们决定在有朝一日杀死Android而选择Fuchsia,鉴于谷歌需要建立一个由熟练的开发人员组成的生态系统,那么让Android开发人员提前了解Fuchsia上的应用程序开发是有道理的。

Project Treble:

谷歌的Project Treble的官方文档的开头有这样一段话:

The Android 8.0 release includes Project Treble, a major re-architect of the Android OS framework designed to make it easier, faster, and less costly for manufacturers to update devices to a new version of Android. Treble is for all new devices launching with Android 8.0 and beyond (the new architecture is already running on the Developer Preview for Pixel phones).

因此,Google投入了相当大的资源,以减少设备制造商们更新设备至新版本的Android系统的成本。 哇,Google对这些原始设备制造商真的是太好了。

你已经知道会发生什么,对吧?

事实上,我可以向您解释Google是如何抓住每一次机会去为OEM厂商提供帮助的。 我可以告诉你,原始设备制造商停止发布旧设备的更新与Treble无关。 我甚至可以告诉你,Treble并不是真的与这一切有关。

说回到Fuchsia。

Android生态系统深受碎片化问题的困扰。 我在这里说的并不是Flutter所导致的Android开发方式的碎片化, 我指的是那些影响Android系统本身以及运行它的硬件的碎片化问题。

每一家设备制造商都占据一定的Android市场份额,他们可以根据其需求对Android系统进行更改。例如,设备制造商可以在Android系统里添加使其相机拍摄出来的图像超清晰的专有代码。 如果底层硬件暴露出一些特殊的功能,那么它同样需要在特定的Android系统里考虑到这些。

所有这些问题都是由于这些变化会导致不同的Android版本之间不兼容。三星手机将无法运行Pixel的的Android版本和副版本。这使得在同一台设备上切换不同版本的Android系统成为了不可能,更不用说完全不同的操作系统了。

如果谷歌这时候将Fuchsia发布出来,那么就没有设备可以运行它了。 Fuchsia可能需要数月甚至数年才能得到硬件制造商的正确支持。

因此,用另一个操作系统来替换一个已有的操作系统是非常困难的任务。

幸运的是,Google对软件工程的基本定理是这样描述的:

We can solve any problem by introducing an extra level of indirection.

目前还不清楚这种“indirection”与Project Treble有何关系。

因此,Project Treble并不是关于如何帮助硬件制造商或者关心Android用户的。 它完全是为了确保硬件制造商标准化他们的平台,让他们为Fuchsia做好准备。 我不知道Google是否计划将Fuchsia推向运行Android的设备。然而,很显然,他们希望移动设备能够在启动时支持Fuchsia。

我认为我可以肯定地说今天制造的绝大多数设备都已经支持Fuchsia。

此时,您可能倾向于指出Android和Fuchsia之间的技术差异。这些操作系统的确基于不同的技术栈。不过,我可以向你保证,谷歌有数十亿条理由让Fuchsia与Android设备兼容。

因此,前面提到的第二个先决条件已经满足了。

Android applications on Fuchsia:

为了杀死Android,Google需要确保Fuchsia支持Android应用程序。 这一点不需要我过多的解释。

我计划这部分内容的时间比较长,因为我需要解释Fuchsia如何支持Android应用程序。 我想表明这不是不可行的,谷歌可能已经朝着这个方向前进。

幸运的是,我不再需要解释这些了。 我可以向你展示9天前的这条推文:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说实话,我还没有认真研究过这段提交的代码,我不完全确定它与我在研究的问题是完全相关的。但是,我不认为这是一个巧合。

那么,前面提到的第一个和第三个先决条件似乎也已经满足了。

谷歌何时会杀死Android:

Android社区里有很多淡化Kotlin,Flutter和Fuchsia的声音。 我个人认为,这种情况绝对至关重要,并会给Android生态系统的所有参与者带来巨大的个人和商业风险。

在这篇文章中,我与你分享了我思考这个问题的过程 :从 谷歌为什么采用Kotlin? 到Android的Java的路线图是什么? 然后到在Android上正在发生着什么事情?

现在我认为最重要的问题是: Google何时会杀死Android?

从技术的角度来看,我估计谷歌可以在一两年内用Fuchsia代替Android。

但是请记住,这一过程与技术无关,也与用户、开发者、设备制造商无关。 唯一起作用的因素是谷歌希望避免侵犯版权的责任,如果甲骨文赢得了诉讼的话。

因此,法庭处理这起诉讼的进程才是决定Android命运的时间表。

如果最高法院同意听取案件并恢复联邦巡回法院的一项决定,那么Google甚至可能关闭Fuchsia和Flutter项目,而Android将会依然生存下去。

Is Oracle that evil:

在这一点上,你可能倾向于把所有的这一切怪罪于甲骨文。至少这是我最初的反应,因为我认为Oracle是软件行业的魔鬼。

然后,我问自己:过去甲骨文对我的职业造成了什么伤害?

似乎没有,作为Android开发人员,我甚至没有参与过Oracle的生态系统。

但是为什么我对甲骨文很反感呢?

我认真思考了一下,并得出了一个结论:我即将成为谷歌公关的牺牲品。 多年来,我一直听到一些甲骨文是如何使坏和做恶的的事情,但我从来没有停下来认真想过这个观点。

在了解了甲骨文与谷歌官司的细节之后,我确信甲骨文是正确的。 法院才是那个判定谷歌是否真的有罪的人,但毫无疑问有足够的证据证明甲骨文的行为是正当的。

然后,我想到了如果Google在2005年或2006年或者是2010年从Sun获得了使用Java Api的许可证,Android生态系统将会是什么样子。它会对我们开发者、设备制造商以及最重要的Android用户造成什么危害? 我实在想不出。

但是,我确实看到了Google的这一决定剥夺了我们所有人的许多潜在利益。想象一下,Sun或Oracle是Android生态系统的一部分。

那么我们就不会在等待多年之后才能在Android上支持Java 8。 我们将成为更大的Java生态系统的一部分,并将获得所有相关的好处。 实际上,我们将成为最大的Java开发人员群体,并且可以影响整个Java生态系统的演变。

我曾经认为甲骨文是邪恶的。今天,我认为Android开发者,原始设备制造商和用户错过了许多,因为谷歌没有将Oracle视为合作伙伴,而这一切都是由于Google的贪婪所造成的。实际上这是一个非常合理的要求,因为如果您阅读了Oracle与谷歌诉讼中的证据,就会立刻明白Sun的Java生态系统是Android成功的主要因素。

结束语:

在最近的三篇文章中,我与您分享了一些关于Android的现状和未来的非常令人不安的理论。

这些理论可能是全部错误的或者是部分错误的。

最后

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
oid基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-6TllVKA2-1715883422464)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值