谷歌决定闭源Android?Fake News!

今天下午,各种Android技术群都在讨论一条新闻:Google要终止Android开源。好家伙,这名字够吸睛,要知道Android早些年能从操作系统的血雨腥风中杀出来,靠的正是它的开源策略。如今说不开源?这不妥妥地过河拆桥么?要是真这么做了,Google又如何对得起自己"Do not be evil"的口号呢?

作为一名给AOSP(Android Open Source Project)提交过上千行代码的工程师,我的第一直觉是"Fake News"。于是我找到了新闻最早的出处:Android Authority。文中的核心观点就一句话:以后Android的开发要全部"in private",但代码依旧开源。 媒体人在转述中出现偏差,如果不作恶意揣测的话,只能说他们不懂Android的开发流程,只知道private和close词性接近。

下面我将结合原版的新闻内容和个人经验,分析下Google这项改变的动机,以及带来的影响。

首先,私有(in private)开发并不是一个新鲜玩意。应用开发者关注的framework部分,也即源码中frameworks/base目录下的内容,很早开始就私有开发了。所以,你在AOSP的代码review网站上看不到Google对于framework的绝大部分改动。

Google自己早就公开解释过原因,他们希望开发者能够将精力放在稳定的API上,而不是追踪那些尚在开发、非常不稳定的API。因此,他们把framework这类和app兼容性相关度高的模块归入了私有开发的范畴,但是像bionic、build、art这些和app兼容性没有直接关联的模块,他们依然保持公开(open)开发的节奏。这里的公开开发,指的是Google的人直接基于AOSP的主线(main)版本进行开发,他们的代码提交和review过程都可以通过AOSP的代码review网站被所有人看到。

这样一来,Google内部不同的团队其实是工作在不同的分支上的。譬如build团队可能工作在aosp/main分支上,而framework团队则工作在内部的分支上。这迫使Google经常花时间去在两个版本间合入改动并解决冲突。如今Google希望改变这一现状,我认为节省成本只是一方面的原因,而提升效率、让版本发布更紧凑或许是它更大的动机。 今年的Android 16将要在第二季度就和大家见面,比以往的三季度提前了,这里面和代码工程管理的增效不无关联。

好了,说完动机,再来说说影响。

它会让AOSP的主线分支明显地落后于Google的内部版本,对于尚未发布的版本,以前我们可以通过AOSP的主线分支及时了解bionic/art/build之类模块的改动,但现在只能等到新版本正式发布后才能看到代码。

对于绝大多数人来说,基本是没有影响。这里面既包括应用开发者,也包括各大手机厂商/芯片厂商的系统开发者。

对应用开发者而言,他们的应用只会适配在已发布的系统上,而所有已发布的系统,源码全都是开放的,因此他们可以了解任何想要知道的细节。

对于手机/芯片厂商的系统开发者,因为这些厂家基本都和Google有合作关系,他们内部可以定期高频率地拿到Google最新的代码,因此AOSP代码的滞后对他们没有影响。

但对于那些开源贡献者或者说技术弄潮儿,影响还是不小的。

独立的开源贡献者看不到及时的改动,因此可以说基本断绝了代码提交这条路,除非是针对老版本上的bug fix。而那些指望通过AOSP代码改动了解最新技术进展的朋友,也没了手段。

甚至我在想,各家手机/芯片厂家给Google上游提交代码的路径都得发生改变,因为你在内部版本上发现的bug,可能在AOSP主线上并不存在,这个change怎么提交都是个问题。

在这一点上,我确实看到了Google越来越封闭的态度。可以说,Android是个开源的项目,但不是一个开放的项目。 因为无论是代码提交量,还是贡献的认可程度,它都是和Linux没法比的。也是,凡是公司主导的开源项目,有几个是真正开放的呢?

相关推荐
2501_915918412 小时前
iOS 抓不到包怎么办?全流程排查思路与替代引导
android·ios·小程序·https·uni-app·iphone·webview
_祝你今天愉快3 小时前
Java-JVM探析
android·java·jvm
飞天卡兹克3 小时前
forceStop流程会把对应进程的pendingIntent给cancel掉
android
Monkey-旭11 小时前
Android Bitmap 完全指南:从基础到高级优化
android·java·人工智能·计算机视觉·kotlin·位图·bitmap
Mike_Wuzy16 小时前
【Android】发展历程
android
开酒不喝车16 小时前
安卓Gradle总结
android
阿华的代码王国17 小时前
【Android】PopupWindow实现长按菜单
android·xml·java·前端·后端
稻草人不怕疼18 小时前
Android 15 全屏模式适配:A15TopView 自定义组件分享
android
静默的小猫18 小时前
LiveDataBus消息事件总线之二-(不含反射和hook)
android
~央千澈~19 小时前
05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡
android·laravel·软件开发·金融策略