By 高煥堂
创新不一定要去发明全新的东西,变换一些全新视角(View)来看原有事物,做不一样的联想、以新的连结&组合,做为新产品的独特架构,只要能更贴近用户的需要和口味,就能创造获利机会。
Android设备愈来愈多、百花齐放,提供了无限大的组合创新空间;记得,变换观点、独特组合、贴近用户、努力经营,就能捕捉到好机运;千载难逢的好机会,不要错过。
大家都会希望能愈流畅地变换新视角,但却往往被自己内心深处的假设(Assumption)所局限了。尤其,有许多内心的假设,是连自己都不自觉的、长久以来都信以为真(理)的,未曾质疑过它;从现在开始,试着经常反思内心的假设,审视它、放宽它,新视角就出现了,商机也就浮现出来了。关于反思内心的假设,可参考:”高老师的设计思考三部曲”。

在本文里,将与您一起变换视角;一方面反思你内心深处的假设,一方面变换出十个新视角,来重新看看你已经很熟悉的Android系统架构。这十个新视角如下:
1. API = 话语权
◆ 在Android 的系统架构裡,其API 大多呈现于基類(Super-Class)的抽象函數(Abstract Function)上。这些基類的集合,就成为Android 系统框架的核心要素。所以,我们說,在Android 潮流下,商业成功的钥匙就藏在框架API 的隙缝中。充分而全面性理解框架API,即能拥有成功密码、造就天使,并成为商业竞争下的赢家。
◆ 如今,大家的焦点则转移到API 上,只要对API 拥有主导权,就能在商业上获得主导地位,就会是赢家。
◆ 软件接口(API)就是一种「序」(Order),而定义API 的幕后支柱就是框架(Framework)和基類(Base Class 或Super Class)。这种序可包容繁杂多变的细节,就如同集装箱一般。
◆ 过去,大家经常比较关注于基類的涵义和内容;然而,今天则将采取一个新观点:基類是手段,API 才是目的。也就是說,基類的存在是为了支持API。这只是一个新观点,并非本质,所以没有对错。
◆ API 是目的,它是实的。基類是手段,它是虚的。手段必须保持弹性,目的才会稳定持久。 框架是虚实相依、弹性与永恒的和谐组合体。
◆ API与UI是不一样的
◆ UI:App与用户的交互接口
◆ API包括:
SI:本架构与外部系统之间的整合接口
PI:本架构与内部挿件(Plug-in)之间的接口
一般API:本架构与应用程序(App)之间的接口
2. 应用框架 = 用来框住应用(App)的架构
- 框架基类(Base Class)实现API
- 框架基类是鱼饵,是送人的礼物
- 送越多,市场版图越大
3. 框架调用App,不是App调用框架
- 用户没有直接碰触软件(App)
- 用户碰触的都是硬件
- 硬件通知框架,框架调用App
4. JNI = C调用Java,不是Java调用C
- Java层的框架(基类)是送人的礼物
- 所以关键模块,以及控制点必须放在C/C++层
- 控制点透过JNI控制Java层的框架(基类),基类控制App
5. 重视跨平台设计,才能建立自己平台
- 必须使用别人芯片平台,如何能摆脱别人的牵绊?
- 必须使用Android软件平台,如何协天子(Android)以令诸侯?
- 如何跨越Android的版本升级和碎片化障碍?
- 应用软件如何跨<操作系统>平台(如Android、iOS等)呢?
- 互联网&电信厂商如何追求跨终端平台(如TV, Pad等)?
- 终端产品如何云端(Cloud)平台?
6. 没钱就改版,改版就有钱
- 终端厂商的底层软&硬件模块变动自由度非常重要
- 如此,创造”没钱就改版,改版就有钱”的机会
- 上层模块不能要求底层的稳定不变,而是要处处维护底层变动自由度
7. 软硬整合开发,硬硬结合销售
- 如苹果公司的主(大)硬件种类不多,但其(小)配件总类多达600多种
- 软硬整合能涵盖大、小硬件整合一起销售
- 小配件的短期获利,能调降主硬件售价,扩大市场地盘
8. 质量保证 = 跨平台架构设计+测试
- 系统架构设计与测试两者携手,一起摆脱别人平台的牵绊,然后提高质量,振翅高飞
- 检验别人(平台)软、硬件模块的功能
- 测试您自己(平台)软、硬件模块的功能
- 测试您的软硬整合平台框架&API
- 测试您自己的应用(App)程序代码
- 测试UI体验(look and feel)
9. 项目管理:可以搭配敏捷(Agile)开发
- 为什么敏捷开发与Android是个很好的搭配呢?
- 理由(一):Android有测试框架,可建立TDD测试机制来推动迭代过程
- 理由(二):Android框架内涵是代码,满足敏捷原则:”各项设计必须迅速落实为代码”,这很有利于密切配合敏捷迭代过程,并漂亮地”落地”在Android平台上
10. 未来性:以软件接口包装通信协议
- 通信协议的善变是本质性的
- 软件接口可以包容善变的协议
- 例如,以软件的Socket接口包装Zigbee或Bluetooth的善变性
~ end ~