【编者按】移动开发已经毫无争议地成为软件领域的发展趋势,崭新的领域和模式不仅仅为各个厂商,也会普通的开发者打开了一扇阿里巴巴之门。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开发者撰写手机应用软体,而硬件厂则开发手机硬件组件。如下图所示:

Android赢家密码(一)——什么是赢家密码_第1张图片

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

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

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

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

Android赢家密码(一)——什么是赢家密码_第2张图片

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

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

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

Android赢家密码(一)——什么是赢家密码_第3张图片

图 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软件开发与管理顾问公司首席架构师,编著过十余本软件技术相关书籍。

更多相关文章

  1. android流媒体框架介绍
  2. 关于Android的自动化测试,你需要了解的5个测试框架
  3. Robolectric框架概述
  4. Android组件及UI框架大全

随机推荐

  1. android启动一个应用工具类
  2. 你好,Android 11
  3. android jni 调用static native void met
  4. android sensorsimulator使用介绍
  5. Android(安卓)SDK 离线下载安装
  6. android 9.0 收到通知消息亮屏
  7. android 设置标题
  8. 移动端区分安卓系统和ios系统
  9. Android(安卓)Retrofit 2.0框架上传图片
  10. 查看已經下載好ANDROID源碼是什麽版本號