BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Android赢家密码(一)——什么是赢家密码

| 作者 高焕堂 关注 0 他的粉丝 发布于 2011年2月10日. 估计阅读时间: 9 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

【编者按】移动开发已经毫无争议地成为软件领域的发展趋势,崭新的领域和模式不仅仅为各个厂商,也会普通的开发者打开了一扇阿里巴巴之门。InfoQ非常荣幸地邀请到台湾知名技术专家,台湾公认的“OO教父”和“Android教父”高焕堂,为InfoQ中文站开辟Android专栏。这个专栏是摘取自高老师尚未出版的第五本Android书籍《Android赢家密码》。

强龙不压地头蛇

自古有言:“强龙不压地头蛇”。这是来自<<西游记>>第 45 回里所写的:

“你也忒自重了,更不让我远乡之僧;

也罢,这正是强龙不压地头蛇。”

强龙不压地头蛇,其意味着:

  • 强龙不会档住地头蛇的财路,
  • 反而会协助地头蛇不断成长。

相对上,木瓜树就是“强龙”角色;而小鸟则是“地头蛇”角色。木瓜免费提供又红又甜的木瓜肉给小鸟吃,让小鸟长得强壮,能飞得更远。此外,还把木瓜种子做很精致的方式包装,让种子既不会伤害小鸟,而且种子也不会被小鸟所伤害(例如被消化掉)。如此,木瓜帮助小鸟长大,愈强壮小鸟就能够将木瓜种子携带到愈遥远的新土地上,大图拓展了木瓜的地盘。强龙与地头蛇形成一个极佳的双赢合作模式:

  • 强龙帮助地头蛇成长壮大。
  • 地头蛇帮助强龙拓展版图。

以 Android 手机平台为例,Google 扮演“强龙”角色;而 AP 开发者则扮演“地头蛇”角色。Google 也尽到强龙的任务:

  • 提供 Android 框架 API 和 Android SDK(含 Android NDK)两道奶水,协助 AP 开发者(即地头蛇)。

AP 开发者也尽到责任:

  • 到了2011年初,全球的Android AP开发者已经替Google强龙开发出超过 10 万支的 AP(即以奶水去养了 10 万个活泼可爱的小孩),让Android手机版图持续扩大,跃升为全世界最畅销的智能型手机了。这也等于帮助 Google 拓展了版图。

以 Android 商业模式为例

Google强龙希望 Android 平台能支撑它在手机、家电产业上的强龙的地位。除了上述的 AP 开发者之外,Google 还有另一种地头蛇:硬件厂。因此,Google身旁有两种主要的地头蛇:AP开发者和硬件厂;其中 AP开发者撰写手机应用软体,而硬件厂则开发手机硬件组件。如下图所示:

图 1-25 Google 的愿望:拥有强龙商业地位

Google为了站稳商业强龙地位,它必须协助两种地头蛇去完成他们各自的任务。于是 Google 开发手机平台软件(即 Android 平台),内含两种框架(含 API):

  • Java 层应用框架(Application Framework),它用来衔接应用子类。
  • HAL(Hardware Abstraction Layer)驱动框架,它用来衔接硬件组件的驱动程序(Driver)。

然后将上述框架当做礼物,分别赠送给 AP 开发者和硬件厂。如下图所示:

Android 框架就是一个完美的范例,主要元素包括:

  • 框架内含基类及主动型 API。
  • 基类里的程序码是鱼饵。
  • 主动型 API 则是鱼钩。
  • 框架是一种极为特殊的礼物。

这种“强龙/地头蛇”商业模式,很类似于大家熟悉的“加盟”体系。Google 开发Android 框架来送人,强力支撑其全球分工和营销的加盟体系,如下图:

图 1-27 Android 框架支撑 Google 的全球加盟体系

强龙必须培养、组织和照顾众多的地头蛇(即加盟者),才能让自己成为盟主(即强龙)。由于大强龙个数不多,条件也高,不是人人都有机会。因此,从“强龙/地头蛇”商业模式再衍生出新型的“强龙/小强龙/地头蛇”商业模式。于各领域中,具有特定领域(例如智能电视、车载地图、网络游戏等)的公司,皆能开发出特殊的领域框架(Domain-Specific Framework,简称为 DSF),就能扮演“领域强龙”角色,而拥有自己的地头蛇了。相对于 Android 大框架,这种 DSF 则称为小框架。做大框架者是大强龙;做小框架者是小强龙(即领域强龙)。小框架可以融合到大框架里,它充实大框架的内涵,让大强龙、小强龙、和地头蛇共三方皆获利,形成“三合”的美好商业模式。于是,三合(即大强龙、小强龙和地头蛇的合作)的巨大效益为:

  • 以手机硬件为例,小框架能有效创造硬件的差异化、多样化,大幅提升附加价值。
  • 就小框架而言,硬件的大量生产,创造小框架的大量复制机会。

Why,框架 API?

前面已经叙述了,热情地关注 API,即能发现藏在隙缝里的成功密码,成为幸运的赢家。前面也已经说明了,框架就像万里长城,其 API 就像长城的关口(如居庸关等),而且也拿一棵树来做比喻,说明 API 的角色:

  • HAL 框架的 API 就位于树干与树根(即驱动程序)的衔接处。
  • 应用(AP)框架的 API 就位于树干与枝叶(即 AP)的衔接处。

然而,很多人提出疑问:提供API的途径何其多? 为何特别强调“框架”的API呢? 例如,一般程序库(Library)也提供API给开发者使用、网络服务(Web Service)也是一种API,为何只谈框架API呢? 为了回答这问题,必须回顾过去20年来的软件发展经验了。其中有两项重要的事迹:

  • 1980年代后期,CORBA是一项物件导向的服务标准API,实现此项标准的系统中,最著名的商业中间键软件就是Orbix系统。然而,在系统架构上,API是一种制约力量,不是一种礼物,不能用来嘉惠予AP开发者。导致CORBA和Orbix系统架构无法支撑理想的商业模式,而终告消失匿迹。
  • 1990年代中后期,继CORBA之后的是Microsoft公司推出COM/DCOM系统架构,虽然提供了当时先进的物件导向(Object-Oriented)的API,但还是API,仍然是一种制约力量,不是一种礼物,不能用来嘉惠予AP开发者。与CORBA和Orbix一样的系统架构,一样无法支撑理想的商业模式,也终告消失匿迹。

后来,IT业界逐渐发现:API可用来框住应用程序(AP),如同一把利剑;若要获得开发者的青睐,利剑必须搭配面包,就像钓鱼钩必须搭配鱼饵,才能吸引鱼群。于是,Microsoft改变观点,把焦点放在面包上,发现物件导向技术里的抽象类别(Abstract Class)及其提供的预设函数(Default Function)以及其他具体类别,所整合而成的框架(Framework)正式一项极具诱惑力的鱼饵。此外,由框架所提供的主动型 API,也能发挥巨大的控制力。因之,Microsoft于2001推出.NET框架来取代COM/DCOM,由于.NET框架融合了面包与利剑,既能嘉惠广大的开发者,又能有效框住众多的应用程序。.NET框架是Microsoft赠送给广大的开发者的最佳礼物,表达了Microsoft对全球广大第三方开发者关怀和爱心,让他们因.NET而受惠。

到了2007年,Google也依样画葫芦,买来Android框架,当成礼物赠送给全球的手机硬件厂商,也赠送给全球广大的 AP 开发者。由于 Android 框架“礼物”嘉惠予硬件厂商,所以全球的硬件厂商也是受惠者,因而大力支持 Android,也让Android声势扶摇直上。Android框架是面包与利剑的融合体,不仅嘉惠予硬件厂商,也嘉惠予全球数以万计的广大 AP 开发者,同时也主导了这些开发者。

由于 Google 热情投入开发框架 API,并当成礼物来送人,除了嘉惠众多硬体厂商,也嘉惠了全球的 AP 开发者,让人人能拥有“没钱就改版,改版就有钱”的利益。古贤者老子说:“圣人无积,既以为人己愈有,既以予人己愈多。”从历史可知,秦始皇、汉武帝热情投入万里长城的兴建,而成为最大获利者。如今,Google 和微软都热情投入软件框架的开发,而成为幸运的最大赢家。

关于作者

高焕堂,台湾软件架构设计大师,从事IT行业近30年,被称为“台湾OO技术教父级代表人物”。现任MISOO软件开发与管理顾问公司首席架构师,编著过十余本软件技术相关书籍。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

说得真费解,看起来跟google英文翻译出来的差不多 by im Kevin

说得真费解,看起来跟google英文翻译出来的差不多
不就是说你不要光提供一个接口标准,而要提供一个默认的实现。框架无非就是把api的抽象层次提升了一级而已么

Re: 说得真费解,看起来跟google英文翻译出来的差不多 by 冯 希顺

台湾的IT界流行的是这样的风格?
那和大陆差别真是越来越大了。

Re: 说得真费解,看起来跟google英文翻译出来的差不多 by 张 宝华

这是中国传统 道家 的思路来解释事情。咱们大路的听不懂,也许会越来越听不懂,这说明,中国的文化底蕴丧失了。

物件导向 和 面向对象 那个更准确? by Zon Charlie

物件导向 和 面向对象 那个更准确?

Re: 说得真费解,看起来跟google英文翻译出来的差不多 by pei chongjun

道长有礼了

挺好理解的啊!但是比喻跟黑社会似的 by 王 里桂

挺好理解的啊!但是比喻跟黑社会似的

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

6 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT