【写在前面】:2010年3月4日8时18分50秒,在台湾高雄县、屏东县交界发生6.7级地震。正是上班时间所以新闻传播很快,我在第一时间想到在台北的高焕堂老师,在网上找到他询问可好,他这样告诉我:很小、很习惯了,摇得很舒服,最近常常摇。我提醒他要小心,他说:不怕,吉人自有天相!
 
【访谈背景】:
2007年11月Android诞生,自诞生之日起Android就引发了手机操作系统的“开源”与“封闭”之争。Android作为后起之秀以其独特的魅力在2年多时间里表现出非凡的成长力和活跃度。然而最近有些言论表示出对Android开源的怀疑及对其平台不兼容性的自我毁灭之说,究竟我们是不是应该继续看好Android?Android的未来发展又将如何兼容用户、开发商和更多方的需求?开发者社区特邀请Android教父高焕堂老师来与大家共同探讨。
高焕堂老师为我们围绕四个方面进行话题阐述:Android的发展史、客观看待Android发展中问题、中移动如何推动Android良性发展、借Android终端积极发展云计算,现将观点呈现,供广大开发者借鉴。
 
一、Android的发展史标志全球手机操作系统“开源史”
 
Android诞生2年多时间,以其迅猛的发展速度,不禁令行业老大Symbian和Windows Mobile瞠目,而从它诞生之日起就引发了手机操作系统的“开源”与“封闭”之争,甚至刮起了全球的“开源风”。
开发者社区:您认为谷歌推出基于Linux平台的Android手机操作系统,其主要原因是什么?
高焕堂:因为Linux容许多样化发展,Google有机会在Linux基础树干上,开花结果。
开发者社区:Android操作系统的最大优势有哪些?
高焕堂:Android的架构非常漂亮,结合Java层、C++服务层与HAL驱动层,形成三层框架的美好架构。基于稳定的框架接口,包容了底层Linux的弹性多变和百花齐放。非常符合软件架构设计的最根本原则:开放/封闭原则(OCP,Open Closed Principle),基于这个原则,才能替底层Linux驱动软件和硬件族群带来“没钱就改版,改版就有钱”的IT产业赚钱原则。
开发者社区:iPhone和Symbian在Android诞生初期是否看好这个操作系统,他们又是如何表现的?
高焕堂:从欧美企业的角度比较难以看出Android的潜在生命力,所以在Android诞生初期,他们并不太在意。iPhone继续发展其崭新独特的商业模式;Symbian也只是开始考虑开放其平台而已。然而,从亚太地区产业就能看出Android诞生带来的特殊意义。这层意义,我在2008年元月份的<<程序员>>杂志(在Android上市刚满月),曾经指出Android将在海峡两岸下起巨大的“幸运草种子”雨,带来全新的产业。
开发者社区:Nokia苦于Symbian的封闭,一直向开源而努力,曾推出Maemo,虽以失败告终,但最近又与Intel共同推出了Meego,这是否表明开源已是大势所趋?
高焕堂:开源只是手段,开放才是目的。要开放给所有人来参与,尤其是提供免费框架(Framework),开放框架的API给应用开发者,才是关键。开源只是必备条件,但并非充分条件。
开发者社区:据今年3月的报导,谷歌和RIM移动互联网流量份额增长iPhone份额下滑,但差距仍很大,分别为苹果64%、Android15%、RIM份额约9%,对此数据您如何来分析?
高焕堂:手机只是Android的应用环境之一,非手机的应用更是Android在亚太地区蓬勃发展的巨大潜在空间。尽管如是,我预估Android的市场占有率将以每个月增加0.5% ~ 1.5%继续成长。成长速度超过iPhone和RIM。
开发者社区:嵌入式操作系统,应该开源还是封闭?这个话题广为热议却始终未有定论,您站在开源立场,能否为我们举出原因?
高焕堂:我常拿桌子来比喻软件架构。桌子包含桌上(的东西)、桌面和桌脚三部分。桌上和桌脚要开放但不一定开源。桌面尽量不开放但要开源。例如,Android/OPhone的应用程序是桌上的东西,开放给所有人去开发。Android/OPhone的应用框架层式桌面宜开源,有限度开放,由Google或中移动主导其稳定性。框架之下的内库(Library)是桌脚,开放但不一定开源。以上是从Android角度看的。如果从嵌入式操作系统(如Linux)看,Android框架和应用都是桌上的东西,而Linux本身则是桌面,至于驱动软件则是桌脚。所以Linux本身宜开源而有限度开放;驱动软件则开放而不一定开源。
 
二、客观看待Android发展中问题龙的传人应识活求变
 
“善变本是常态,是生命活力,不变是死亡,龙就是变的代表;我是龙的传人,我爱生命活力。”——高焕堂
 
开发者社区:开源,不一定会成功,封闭,也不一定会失败,近期有人怀疑Android开源的正确性,对此您的看法呢?是开源必胜还是二者并存?
高焕堂:开源而不开放,并无法带来商业利益。开放不一定要开源,也能带来商业利益。所以焦点不在于开源,而在于开放。例如,Android/OPhone虽然开源,但其AP市集的开放程度就有些不同,在手机设备上加载应用软件或底层程序库的开放程度也大不相同。此外,我也鼓励AP开发者大力开发软件框架和底层软件模块,然后打包成共享库(Shared Library),然后封闭起来销售而不开源。这也符合Android的一贯路线。同样地,我也一直建议OPhone要开放给所有人来贡献和充实其应用框架和底层内库,但这些内库可以不开源。
开发者社区:Android发展过快,也引发了版本不兼容导致用户升级受阻和软件开发商要开发多个版本软件的繁冗工作,甚至有分析称Android已成大量不兼容设备的起点,这是杞人忧天还是庸人自扰?对于拥护Android的开发者来说应该如何进行抉择?
高焕堂:开发一个软件系统就如同制造一部汽车。如果我们期待一部完整的汽车(如同一个完整可执行的Android应用软件)能在沙滩上面跑,也能在街道上面跑,也能在高山雪地里跑,这是非常不务实的愿望。所以,期待一支Android应用软件能跨平台,在所有的Android软硬件平台上跑,也非求实求是的态度。看来,这个问题似乎无解,其实非常容易。将汽车轮胎摘掉,只留下×××接口就行了。在计算机硬件上,将许多外围设备(如鼠标、USB碟等)拔掉,留下USB、RS232等接口),就得到主机板(Motherboard)。在计算机软件上,许多应用子类(Subclass)拔掉,留下基类(Base Class或Super Class),就得到软件框架(Framework)。基于这个理由,自从2008年4月份我出版第一本Android书籍,其书名就是应用框架原理,唯有兼顾应用程序(Application开发和应用框架(Framework)开发的同步进展,才能化解上述的困扰。
开发者社区:对于新投入到Android开发队伍中的新人来说,应该怎样着手开展学习?期待您能够为他们指点迷津!
高焕堂:在亚太地区,目前投入到Android软件开发最多的有三个族群:1)熟悉Linux(驱动)族群、2)熟悉J2ME族群、3)熟悉iPhone族群。他们已经不是开发和技术的新人,只是Android的新人而已。所以适合从Android的整体架构展开学习,包括:Android的UI架构、进程和IPC通讯机制、线程模式、JNI接口、HAL(驱动)接口等。如此达到知己(已经熟悉的部份)又知彼(Android架构),两者结合后,再仔细浏览Android框架里的各项服务(如蓝牙、电话、SMS、MMS、WebView等)。至于,都没有编程经验的纯粹新人,我建议心理上先有所准备:Java和C/C++都将是必需学习的。既然Android是开放开源平台,Android的上、中和底层一起学习,让自己的未来出路能往上发展做应用(云端)服务,也能往下发展做软硬整合,岂不美哉!
 
三、中国移动宜发挥手机应用推动Android良性发展
 
自古,千里马遇到伯乐,传为佳话;今天,OPhone平台框架是千里马;我们,要爱马、知马和养马的伯乐。——高焕堂
 
开发者社区:Android自发布至今2年多的时间,取得了哪些成绩,请您为我们简要概括?
高焕堂:就亚太地区而言,Android带来机会,给人人都有机会参与Android产业链的各个环节。就教育而言,开源和开放带来深度(如Android内部结构)而自主的研发和创新机会。例如,在台湾的100多所大学里,都各自建立了Android手机实验室,将硬件、软件与内容(Content)设计的各领域学生汇集一堂共同研发。就业界而言,全球的IT大厂已经纷纷推出众多Android手机(如台湾HTC、大陆华为、韩国三星、日本Sony Ericsson、美国Motorola等。除了手机之外,各式各样的Android手持设备(如电子书、机顶盒等)也纷纷上市。在软件上,目前Android Market应用商店中免费和付费应用的数量已经达到3万多款。
开发者社区:目前Android已有多少个版本?还存在哪些问题困惑着广大开发者?
高焕堂:目前大家熟悉的有Android 1.5、1.6、2.0和2.1四种版本。版本的快速更替,本身没有好与坏,甚至是活力十足的现象。开发者是否会被其所困惑决定于其心境了。Android架构设计之美就在于处处确保底层系统(服务、驱动和硬件)的变动自由度。Android整体系统如同一棵树一般,上层应用像树叶、应用框架像树干、类库和驱动像树根。树根部分的弹性成长,是有机成长的自然现象。凡是务实或热爱自然的开发者,都会以欢喜心来迎接改变与成长,何来困惑自己呢?易经第一挂:干挂,代表“天”,以龙为象征物。易经的“易”就是变,龙则见首不见尾。龙的传人识变求活,乐于包“容”改变(即“易”),则事事无所困惑、轻松“容易”。
目前困惑广大开发者的是:模仿苹果App Store的Android App Market是不是有效的商业模式。这是销售面的问题,而版本更替的烦恼是生产面的问题,如果只关注于生产,而不用心寻找新的商业模式,显然是舍本逐末了。
开发者社区:如果把Android比作是Google投出的一颗球,那么您认为在这之后,台湾、中国移动和日本应分别担当什么角色?
高焕堂:亚太地区是Android推展的主要力量。就像打棒球一样,2007年底美国Google投出一颗球(Android)。2008年底台湾HTC挥出第一棒。2009年底大陆中移动挥出第二棒。Google的软件、HTC的硬件、中移动的通信,结合起来支撑Android的茁壮成长。但是,这样还不够,因为这些只是平台而已。只有舞台是不够的,还必须有剧本、演员等才能演京剧,不是吗?无论剧本或演出都需要文化、设计与艺术,才有精湛的蕴涵。在Android平台上,应用软件和内容(Content)就如同演员和剧情,都需要文化、设计与艺术。这十多年来,台湾和大陆地区在软硬件与文化设计整合上鲜少用心,而日本设计一直都举世闻名(如Wii系统),韩国对设计极为用心,成效直逼日本。因此,在我看来,由日韩企业挥出第三棒的可能性极高。
开发者社区:中国移动发展自己的OMS系统并推出OPhone手机,这与Android是否相辅相乘,互为利好?
高焕堂:基于开源Android的优越架构,很容易衍生出OPhone平台(OMS),这也是Android旺盛生命力的表现。可预期的,OPhone平台将会有独特性的发展,但会尽量与Android保持兼容。在前面,我已经提过,不要期待Android应用程序能完全不修改而能在Android手机和OPhone手机上跑。反而,要包容底层类库、驱动的多样化,替OPhone而量身订做底层类库、驱动,以充分发挥OPhone平台的特色和差异化。同样地,替各厂家的Android手机而量身订做底层类库、驱动,来充分发挥其特色和差异化。以软件发挥硬件的多样化和差异化,以硬件去创造软件的大量复制,就是我一直提倡的“软硬整合”的真谛。Android以框架做为中间层,它将上层的应用程序与底层的类库(和驱动)分隔开来,以确保底层类库和驱动能有变动的自由度,才能有效发挥硬件的差异化。这些差异化的独特功能就是硬件开发者的创新,必须表现于中间框架层,所以框架工程师必须去扩充Android的框架层,但尽量维持兼容性。于是,上层应用开发者就能享受框架层所扩充的创新API了,因而带动应用程序的多样化和差异化。唯有差异化和独特性才能带来高获利;反之,迷失于跨平台的乌托邦里,只能创造均贫的产业。君不见,无论是Facebook、Twitter、Apple等无不依赖独特性和差异化而获得高利润,才能出类拔萃,平步×××。
开发者社区:中国移动应如何进行自身定位并扮演好现有角色?
高焕堂:我是非常支持中移动努力发挥Android的开放特性,创造出OPhone的独特性;其致力结合硬件,推广在3G的各项服务和应用。在教育上,也积极推动大量相关人才的培训计划。目前,其自身定位,我认为是可圈可点的。但是,这些只是踏出美好的第一步而已,未来加速发展的方向才是更加重要的。至今,中移动致力于OPhone平台软件的发展,但对于应用软件开发用心方向,还有必要大幅调整。中移动必须表现出对应用开发者的贴心和爱心,要积极与内容(Content)提供者谈合作,因为个别的应用开发者是没有能力去与内容提供者谈出有利的商业合作条件。其作法如下:
1.中移动积极与各领域的内容提供者(含相关通路商)谈合作。
2.结合更多文化设计工作者来对各个特定领域内容(Domain-Specific Content)进行创意加工。
3.结合软件架构工程师,将各个特定领域内容进行抽象(Abstraction),抽离出领域内共通的部份,并表现于中间层的领域框架(即Domain-Specific Framework)。其差异部份留给上层应用程序开发者去加工。
4.领域框架的共享代码,替上层应用开发者节省大量的工作量,因而加速应用的开发,也提升应用开发者的获利。
于是,我以系统思考图来呈现上述作法的因果关系:
Android教父高焕堂谈Android“开源”与“兼容”——川科创新_开源
系统思考图强调如何发现影响系统的因子。图中显示有三项重要的外来因子,如果有效强化这些因子,系统会呈现正面循环,即正滚雪球,愈滚愈大。反之,会呈现负循环(如AP数量变少、AP开发利润下降、服务贫乏等)。由此而观之,中移动目前已经相当重视其中的两项:
●积极委外给硬件厂商,增加手机设备款式并促销。
●积极委外给培训机构,训练大量的AP开发者。
然而,对于呈载内容、设计和文化的领域框架部份,中移动尚未呈现积极作为。由于领域框架直接影响到AP开发的成本,是个关键性因子。所以,我建议:中移动积极与内容提供者谈好商业合作,然后积极委外给文化设计者和软件架构开发者,大量发展高质量的应用领域框架,而中移动则专注于框架的整体和谐即可。
 
四、借Android终端积极发展云计算
 
开发者社区:目前“云计算”是个热门话题,您认为Android与云计算向怎样结合的方向发展?
高焕堂:云计算概念包含:云服务和端应用。Android是目前最具潜力的移动端平台。我大多从海峡两岸的产业合作来看Android的角色。至今,台湾几乎主导全球所有的IT硬件供应练,大陆则掌握所有硬件生产线;Android的开源和开放架构,正好替两岸带来巨大的软硬整合机会。两岸的巨大硬件产业将百花齐放,各自发挥创意,呈现多样性和差异化。
大陆的通讯和网络服务业规模逐渐称霸全球,可预估,大陆地区的云服务量会迅速成长,Android在移动端的内容呈现角色,愈来愈重要。
因之,在水平方向无远弗届的云端服务商业模式里,Android处于关键地位。在垂直方向深度的软硬整合商业模式里,Android也处于核心地位。目前,Android正与上述的水平与垂直两方向密切结合,同步发展中。
开发者社区:您能否为我们勾画出不远的未来,我们的生活因“云”而变?
高焕堂:龙的传人无不向往着平步×××、飞龙在天。就用户而言,未来3G、4G通讯和移动端设备的迅速发展,用户轻松愉快活在无所不在的云服务之中。例如,电子书能轻松倘佯于全球浩瀚的知识海洋里,也能悠游于开心农场里。就开发者而言,随时开发云服务软件,挂到云里,让全球享用,收取费用。同时,也带动了文化设计产业,创造无限的新奇内容,更丰富了用户的心灵。虽然,诗人徐志摩说:挥挥衣袖,不带走一片云彩。今天,Android却能让徐志摩把云彩放入衣服口袋里,随意带着走