By 高焕堂 2012/05/28
多层框架API:软硬整合的新潮视角
1. 观点与机会
大家都知道观点(又称视角)本身是没有对错的,但是观点会影响人们的决策,而决策又会影响行为,然后产生不同的结果。因之,基于<软硬整合>观点而实践策略,会带来赢的机会;反之,则可能会错失大好机会。
2. Android的三层API
在软硬整合开发里,最主要的议题就是,如何让底层硬件的创新性能或功能与上层应用程序(简称AP)的多样化相汇合。在Android平台上,规划上述软硬整合实践策略时,会涉及三层软件接口(泛称API),包括:
- 上层的Framework API:这是位于Java层的AP与框架(Framework)之间。
- 中层的JNI API:这是位于Java框架与C++层Android核心链接库(Library)之间。
- 底层的HAL API:这是位于Android核心链接库与硬件驱动程序(Driver)之间。
俗语说:横看成岭侧成峰。意味着,事物本体只有一个,因为人人观点不同而有不同面貌的呈现。苏东坡<<前赤壁赋>>也写道:“盖将自其变者而观之,则天地曾不能一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎?”即使同一个人,基于不同角度,观察到的现象也不同,因为会影响到人生或其它事物的态度、策略、行为和结果。 [歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
3. 古典IT的观点
这个观点是基于“平台(Platform)”的概念,平台概念让人们联想到房屋的地基,AP就是房屋,而平台就是地基。其地位尊卑顺序是:主人==》AP==》平台,如下图所示:
图1、古典IT观点下的Android三层API
在这观点下,其焦点在于:
- 底层都是提供服务给上层调用,一切以User好用为目标,也就是追求优质的用户体验(User or Client Experience)。
- API成为Façade的角色(可参考Façade Pattern),提供单一接口是实现优质用户体验的重要手段。
- User希望AP稳定不变,AP希望Java框架不变,Java框架期待C/C++模块不变,C/C++模块期待底层的硬件驱动稳定不变。人人都期待脚底下的“平台”是不变的。
4. 中国传统的观点
如果将Android里的三层API对应到中国清朝时期的三层城墙:万里长城、北京城和紫禁城。将可以让我们摆脱古老的IT观点,而得到新潮的观点:中国永恒的智慧 + Android平台 ==》赢家的软硬整合策略。这非常接近清代大臣张之洞所提倡的“中学为体,西学为用”观点。于是,得到下图:
图2、Android平台里的三层API
兹比较图1与图2:
- 地位尊卑顺序相反。在图1里,愈上层的地位愈高。反之,在图2里,愈底层的地位愈高(例如皇帝居住于紫禁城内)。
- 行为决策相反。采取图1观点的国度,人人争先恐后去做 AP,因为(误认为)AP的地位最高。反之,采取图2观点的国度,人人争先恐后去做框架和API,因为(真正)地位最高,必须建造API(城墙)避免敌人来争夺。
- 建API成为最大赢家。Google、微软等公司采取图2观点,微软于2001年推出.NET框架;Google于2007年推出Android框架;两者都成为IT业武林盟主。
- API让底层先获利。基于图2的观点,愈底层的地位愈高,万里长城让观内居民先获利(不是塞外先获利)。所以HTC公司 & Samsung公司专注于开发Android底层硬件和驱动软件(关内部分),成为全球获利最大的Android手机厂商。
5. 结语
掌握软硬整合的新潮观点,始能洞察Android潮流下的产业局势,进而找到有利的赢家定位和策略。如孙子兵法上所说:“故善战者,求之于势,不责于人,故能择人而任势。”因之,如果采取图1的观点,就择人去做 App;反之,如果采取图2的观点,就择人去做框架和API。一旦掌握了新潮观点和策略,至于如何将其落实为可执行的代码,就易如反掌了。◆
[Go Back]