推荐序三
回忆我所经历的Android创新
这本《安卓传奇》成功把我带回2007—2011年。2007年,iPhone和Android相继发布,当时的我还在Motorola北京研发中心做手机产品的研发。我们当时的产品基于Linux操作系统,有3.2寸的屏幕,还配备了摄像头。但是,当我在2007年听到iPhone和Android的消息时,便认定未来的移动世界属于iPhone和Android,于是便决定离开Motorola。并且给了自己两个可选方向:一个是加入iPhone阵营,另一个就是加入Android阵营。在看这本书的时候,发现作者Chet正好是2007年加入Android团队的。
当时Apple在北京的研发部门主要以测试和本地化为主,所以我在2008年选择了Android阵营,加入了一家基于Android做系统级开发的公司,据我所知,这是当时中国首家。我在这家公司的职责就是做与开发者关系相关的工作,负责运营开发者社区。所以当我看到《安卓传奇》的作者Chet也是做开发者关系布道师的时候,就倍感亲切。
2008年,当我开始接触Android系统时,当时系统代号还是0.9,还没有达到1.0的阶段。至于后来的Cupcake、Donut和Eclair这些以甜点命名的系统代号,都是后来的事情了。
Android的历史是一个持续创新和完善的历史。这也是Android的开发和Motorola等传统手机制造商流程与质量管理有明显差异的地方。
比如,世界上第一部Android商用手机HTC G1带有一个可以侧滑的键盘,同时有触摸屏,而早期的Android手机触摸感受相比同期的iPhone都有明显差距。这背后的原因是早期的Android系统以键盘为最主要的交互界面,这在书中也有记录,而且包含了更多的细节。
Android 0.9版本,甚至还没有中文的输入模块,所以当时我所在的公司为Android开发了独立的中文输入模块。这些代码后续被Android官方的输入法模块所取代。
在Android早期版本上做开发时(印象中,直到Donut版本的推出,Android系统才算基本完善),各手机和系统厂商都会遭遇兼容性的问题。因为没有API的标准且Android系统功能还不完善,所以各路Android开发者在尝试补全Android系统功能的时候,不可避免地会破坏Android的API。大家在尝试安装极为有限的若干Android App时发现了这个问题,这在Android手机诞生之后问题愈发严重,手机厂商和开发者都遭遇了不少困扰。
我的正式职责是负责开发者关系的运营,但在公司的第一项工作却是发现并解决这些兼容性问题。因为我们对系统级的代码修改太多,也修改了很多API。为了遍历所有API层面的差异,我甚至写了一个Python脚本。第一次去谷歌山景城(Moutain View)总部出差,也是为了解决我们定制的系统版本与Android标准版本的兼容性问题。后来Android团队为了解决兼容性问题,干脆推出了CTS(兼容性测试套件)。我拿到第一个版本的CTS时,也是一个实验性的版本。我们和谷歌的印度工程师持续沟通,不断解决碰到的问题,完善CTS本身。
谷歌团队为了维护标准版本的权威性,防止分裂,甚至在OHA(开发手机联盟)的条款更新中也做出规定。一开始是对API,后来还包括对硬件规格的要求。一些在硬件上,尤其是屏幕等关键硬件上追求差异性的厂商,在后续App的兼容性方面吃了亏。印象中,早期魅族有一款手机的屏幕分辨率并非Android系统标准支持,所以App运行的体验就要差一些。虽然Android后来在系统中增加了“自动拉伸”的能力,但部分App运行起来,还是有些怪。当然,现如今非常火的折叠屏手机的最大困扰还是在App生态方面的困难,很多App是标准手机版的拉伸,有些是Pad版本。
上面提到的App兼容性问题从Android诞生的第一天开始就存在,到现在依然没有很好的解决。这也是一个开放系统所要面对的多样性问题,这一点与iOS形成了鲜明的对比。
回到Android诞生之初,我们需要问两个关键问题:Android为何诞生?Android又为何成功?作者Chet做了自己的总结,有一点我很赞成,就是“时机”问题。2007年,iPhone的诞生开启了全新的智能手机时代,而希望进军这个领域的其他手机厂商却因缺乏足够的实力而无法自己研发一套能与iPhone系统(后来被命名为iOS)匹敌的手机操作系统,并运营全球的开发生态。这件事Motorola尝试过、Nokia尝试过、三星也尝试过,甚至先后有若干个手机系统联盟也尝试过,但都没有成功。而Android的诞生恰逢其时,逐渐成为全球手机厂商的“唯一选择”。
这个过程也充满了传奇,比如为了撬动开发者为尚未发布手机的Android系统开发App,谷歌给出了1000万美元的奖金,征集Android App。最早期的App都是一些toy app,而非真正的大制作或者生产力工具。在厂商合作方面,最早愿意与Android真正开展合作的是规模尚小的HTC,后来才有三星和Motorola的加入,对于Android每一个新版本的首发厂商,团队都刻意选择了不同的公司。此外新生的Android系统也引起了乔布斯的怒火,这一点在乔布斯的各种传记中都有体现。Android团队为了克服专利的问题,甚至推动母公司谷歌一举并购了手机巨头Motorola,而核心原因是为了获得Motorola在手机领域的专利(因此谷歌在不久之后又把Motorola出售给联想,而保留了专利资产),这在当时震动了整个科技界。
所以,在我看来,Android的诞生是各种因素综合的结果,是正确的时机、正确的团队、正确的决定和大手笔的投资(想想Motorola的并购案)相乘带来的结果,缺一不可。在这个过程中,Android团队发挥了绝对关键的作用。他们用快速迭代的版本,来解决创新过程中的软件质量与功能缺失问题。这种看似与传统研发流程相悖的实践,却实实在在改变了世界,值得所有人深思。
我们当年在做Android研发时,始终在问一个问题:谷歌为何耗费巨资做这样的移动操作系统,并且是用几乎“免费加开源”的方式与行业合作。当时听到一个说法,讲的是谷歌预见到移动时代的到来,并愿意加速这个时代的到来,因为他们深信,他们可以在每一次移动搜索中获益,而移动搜索的规模,将数倍于PC搜索。虽然他们可以从iPhone的搜索预置中获得分成,但他们还希望看到更多的移动设备能方便地访问移动互联网,这是他们全力推进iPhone的最大动力。
以上,就是我作为Android生态中的一名工程师和开发者关系布道师所能回忆起的最关键细节。而更多的Android开发的历史,还是要靠这本《安卓传奇》来揭示。在我印象中,这是第一本如此全面揭示Android开发秘史的书,而更难能可贵的是,这本书的作者不是一名记者,而是Android早期团队成员。所以,这是实实在在的历史亲历者,再也没有其他人更合适写这本书,除非是Andy Rubbin本尊(Android系统的创始人)。
最后我有一个期待,期待10年后,国内有开发者或工程师愿意用自己的文字记录自己团队的故事。2002年我刚加入Motorola时,曾经希望能用自己的代码影响百万人的生活。后来虽然没有实现这个愿望,却目睹了一个名叫Android的手机操作系统从一个简陋的系统到影响地球上数十亿人生活的过程,其间甚至间接带来若干科技巨头的沉浮。如今,一个新的时代“智能汽车时代”的壮丽画卷正呈现在我们面前,是该我们书写自己的故事的时候了。
张辉 公众号“辉哥奇谭”主理人
曾经在Motorola、百度做手机及自动驾驶开发者生态工作,现在理想汽车战略部工作
2022年10月,于理想L9车中