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

移动开发 Android
本文摘取自台湾知名技术专家,台湾公认的“OO教父”和“Android教父”高焕堂尚未出版的第五本Android书籍《Android赢家密码》,希望大家喜欢。

移动开发已经毫无争议地成为软件领域的发展趋势,崭新的领域和模式不仅仅为各个厂商,也会普通的开发者打开了一扇阿里巴巴之门。本文摘取自台湾知名技术专家,台湾公认的“OO教父”和“Android教父”高焕堂尚未出版的第五本Android书籍《Android赢家密码》,希望大家喜欢。

强龙不压地头蛇

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

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

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

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

强龙不会档住地头蛇的财路,

反而会协助地头蛇不断成长。

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

强龙帮助地头蛇成长壮大。

地头蛇帮助强龙拓展版图。

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

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

AP 开发者也尽到责任:

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

以 Android业模式为例

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

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

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

Java 层应用框架(Apppcation Framework),它用来衔接应用子类。

HAL(Hardware Abstraction Layer)驱动框架,它用来衔接硬件组件的驱动程序(Driver)。

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

上述框架

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

框架内含基类及主动型 API。

基类里的程序码是鱼饵。

主动型 API 则是鱼钩。

框架是一种极为特殊的礼物。

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

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

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

以手机硬件为例,小框架能有效创造硬件的差异化、多样化,大幅提升附加价值。

就小框架而言,硬件的大量生产,创造小框架的大量复制机会。

Why,框架 API?

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

HAL 框架的 API 就位于树干与树根(即驱动程序)的衔接处。

应用(AP)框架的 API 就位于树干与枝叶(即 AP)的衔接处。

然而,很多人提出疑问:提供API的途径何其多? 为何特别强调“框架”的API呢? 例如,一般程序库(pbrary)也提供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年,谷歌也依样画葫芦,买来Android框架,当成礼物赠送给全球的手机硬件厂商,也赠送给全球广大的 AP 开发者。由于 Android 框架“礼物”嘉惠予硬件厂商,所以全球的硬件厂商也是受惠者,因而大力支持 Android,也让Android声势扶摇直上。Android框架是面包与利剑的融合体,不仅嘉惠予硬件厂商,也嘉惠予全球数以万计的广大 AP 开发者,同时也主导了这些开发者。

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

关于作者

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

【编辑推荐】

  1. Android开发应用详解
  2. Android 3.0——蜂巢的世界
  3. 读懂Google Android的未来
责任编辑:佚名 来源: infoq
相关推荐

2011-02-17 10:13:32

AndroidAndroid赢家密码

2020-07-09 07:27:15

物联网大数据技术

2014-03-07 09:26:46

PaaSCloud Found

2018-11-02 09:16:05

数据存储磁带

2011-06-28 09:46:39

云计算私有云IaaS

2010-05-19 10:28:55

虚拟化

2009-03-24 17:01:38

戴尔IBMSun

2016-05-13 14:42:44

冠军人生赢家苹果

2011-08-10 23:37:56

激光打印机行情

2013-04-22 09:47:04

VMwareOpenStackAWS

2016-07-29 14:08:55

编程语言IEEE SpectrScala

2013-10-29 10:12:15

Linux数据中心Unix

2018-01-12 15:00:00

Linux MintUbuntuDebian

2012-08-07 09:24:11

虚拟化

2015-11-21 10:54:36

高升科技天翼极速互联网

2016-01-08 10:03:07

硅谷通吃互联网

2011-05-03 13:21:56

苹果iPhoneAndroid

2013-07-11 11:02:20

FedoraUbuntu

2022-09-01 11:48:45

JavaScript框架

2018-12-13 12:43:37

物联网革命物联网IOT
点赞
收藏

51CTO技术栈公众号