谷歌决定闭源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没法比的。也是,凡是公司主导的开源项目,有几个是真正开放的呢?

相关推荐
火柴就是我9 小时前
Flutter 项目本地 Maven 引入 AAR 找不到?一次 Gradle 路径问题排查
android
火柴就是我9 小时前
Android 打包报错 25.0.3
android·前端
码上有光9 小时前
Linux进程通信——共享内存、消息队列和信号量
android·linux·运维·共享内存·通信
Helix25011 小时前
Chrome 快捷键效率提升:10 个常用快捷键,把浏览速度提升一个量级
chrome·google·浏览器·使用技巧·效率工具·快捷键·爆红教程
Android打工仔13 小时前
Kotlin 协程源码解析:DispatchedContinuation 里的 Dispatcher 从哪里来?
android·kotlin
打工仔折腾 AI14 小时前
从BPE到SentencePiece:Transformer分词原理与Python实战对比
android·人工智能·python·深度学习·langchain·transformer·ai agent 实战
Dovis(誓平步青云)14 小时前
几个方案来回选不定?做一个随时切换的候选推荐页
android·java·服务器·开发语言·javascript·数据库·智能化
恋猫de小郭18 小时前
KMP 又改了编译流程, Separate Compilation 禁止了 `commonMain` 的依赖穿透
android·前端·flutter
执明wa18 小时前
Android RecyclerView 实战:点击频道栏切换对应内容
android·开发语言·windows·microsoft·android studio
新鲜势力呀19 小时前
PHP 定时数据同步实战:从第三方接口超时到异步同步 + 增量更新架构优化全过程
android