——感言龙的传人应识变求活

高焕堂老师近照(摄于台湾)

【写在前面】: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.领域框架的共享代码,替上层应用开发者节省大量的工作量,因而加速应用的开发,也提升应用开发者的获利。

于是,我以系统思考图来呈现上述作法的因果关系:

系统思考图强调如何发现影响系统的因子。图中显示有三项重要的外来因子,如果有效强化这些因子,系统会呈现正面循环,即正滚雪球,愈滚愈大。反之,会呈现负循环(如AP数量变少、AP开发利润下降、服务贫乏等)。由此而观之,中移动目前已经相当重视其中的两项:

●积极委外给硬件厂商,增加手机设备款式并促销。

●积极委外给培训机构,训练大量的AP开发者。

然而,对于呈载内容、设计和文化的领域框架部份,中移动尚未呈现积极作为。由于领域框架直接影响到AP开发的成本,是个关键性因子。所以,我建议:中移动积极与内容提供者谈好商业合作,然后积极委外给文化设计者和软件架构开发者,大量发展高质量的应用领域框架,而中移动则专注于框架的整体和谐即可。

四、借Android终端积极发展云计算

开发者社区:目前“云计算”是个热门话题,您认为Android与云计算向怎样结合的方向发展?

高焕堂:云计算概念包含:云服务和端应用。Android是目前最具潜力的移动端平台。我大多从海峡两岸的产业合作来看Android的角色。至今,台湾几乎主导全球所有的IT硬件供应练,大陆则掌握所有硬件生产线;Android的开源和开放架构,正好替两岸带来巨大的软硬整合机会。两岸的巨大硬件产业将百花齐放,各自发挥创意,呈现多样性和差异化。

大陆的通讯和网络服务业规模逐渐称霸全球,可预估,大陆地区的云服务量会迅速成长,Android在移动端的内容呈现角色,愈来愈重要。

因之,在水平方向无远弗届的云端服务商业模式里,Android处于关键地位。在垂直方向深度的软硬整合商业模式里,Android也处于核心地位。目前,Android正与上述的水平与垂直两方向密切结合,同步发展中。

开发者社区:您能否为我们勾画出不远的未来,我们的生活因“云”而变?

高焕堂:龙的传人无不向往着平步青云、飞龙在天。就用户而言,未来3G、4G通讯和移动端设备的迅速发展,用户轻松愉快活在无所不在的云服务之中。例如,电子书能轻松倘佯于全球浩瀚的知识海洋里,也能悠游于开心农场里。就开发者而言,随时开发云服务软件,挂到云里,让全球享用,收取费用。同时,也带动了文化设计产业,创造无限的新奇内容,更丰富了用户的心灵。虽然,诗人徐志摩说:挥挥衣袖,不带走一片云彩。今天,Android却能让徐志摩把云彩放入衣服口袋里,随意带着走。

文章来源:http://dev.10086.cn/news/interview/2470.html

Android教父高焕堂谈Android“开源”与“兼容”相关推荐

  1. android 换行乱_浅谈Android textview文字对齐换行的问题

    今天忽然发现android项目中的文字排版参差不齐的情况非常严重,不得不想办法解决一下. 经过研究之后,终于找到了textview自动换行导致混乱的原因了----半角字符与全角字符混乱所致!一般情况下 ...

  2. [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析

    作者:泥沙砖瓦浆木匠 网站:http://blog.csdn.net/jeffli1993 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 36523458 ...

  3. 硅谷产品教父Marty Cagan 谈产品经理领导力 | 全球产品经理大会

    走进硅谷产品教父 硅谷产品大师Marty Cagan 和他的代表作<启示录>,对很多产品经理来说,是一个教科书式的存在.不仅如此,Marty本人在互联网产品领域更是有着诸多奠基性的贡献.在 ...

  4. android 清屏函数,浅谈android截屏问题

    做了几个月的截屏开发,稍微了解了一下这方面的知识,于是拿来分享一下,也许对你有一些帮助吧. 我是基于android2.3.3系统之上的,想必大家应该知道在android源码下面有个文件叫做screen ...

  5. 卸载工具Android,教你轻松卸载/删除Android手机内置游戏/软件

    每年3.15晚会似乎都会引起一场轰动万分的揭秘大行动,今年Android手机应用似乎成为了揭秘行动的焦点内容. 对于那些内置的流氓软件,用户们做了一个艰难的决定--想方设法卸载掉. 但是很多内置的东西 ...

  6. android 获取父容器的背景,Android笔记--Fragment获取父Activity的控件并修改内容demo...

    1.首先在Activity里动态加载Fragment, BlankFragment blankFragment = new BlankFragment(); FragmentManager fragm ...

  7. android invalidate 不刷新,浅谈Android invalidate 分析

    1. invalidate 和 postInvalidate 的关系 postInvalidate 是通过 Handler 切换回到主线程,然后在调用 invalidate 的,源码: public ...

  8. Android伸手党系列之六:Android开发进阶

    这是android伸手党知识收集系列的第六篇,来整理android开发进阶相关知识:Window,View,事件分发,NFC,蓝牙等. Android View 简介 View的简介 那些你应该知道却 ...

  9. 移动周刊第 182 期:谈 Android 开发技巧、 iOS 系统框架实践

    写在前面 移动周刊第 182 期如约而至.如果你有好的文章以及优化建议,请发送邮件至mobilehub@csdn.net,在技术探索的道路上我们共同进步. YouTube 推出 VR 视频和 360 ...

  10. android 存储空间监控,浅谈 Android 内存监控(中)

    前言 在上篇 浅谈 Android 内存监控(上) 中,我们聊了 LeakCanary,微信的 Matirx 和美团的 Probe,它们各自有不同的应用场景,例如,在开发测试环境,我们会偏向用 Lea ...

最新文章

  1. 这款AI语音模型让派大星承认自己是钢铁侠,造假小扎对口型,火到挤爆服务器|在线可玩...
  2. Java Web - EL表达式和JSTL标签库
  3. 学计算机选电脑,大学准备学计算机,选怎样配置的电脑好?
  4. 机器学习经典论文/survey合集
  5. ASP.NET使用母版页后动态加载JS/CSS
  6. 批量生成销售订单、退货订单
  7. qlabel文本改变信号_周明:NLP进步将如何改变搜索体验
  8. 从200多篇顶会论文看推荐系统前沿方向与最新进展
  9. Boost:宏BOOST_NO_EXCEPTIONS的使用实例
  10. 一维数组反转c语言_C语言实现数组的循环左移,右移,翻转的示例
  11. 弱监督深度学习图像分割综述
  12. 再好好聊聊 HTTP 里的 Cookie | 实用 HTTP
  13. openssl以及openssh升级
  14. PAT-乙级-1035 插入与归并
  15. cad插件制作教程_画图必备的CAD超级工具箱插件下载(含gif教程)
  16. Graphics2D画图
  17. 【图文】实操更换系统盘
  18. linux qt 扫雷,qt制作扫雷
  19. 考研一年到底需要花多少钱?这个你必须要知道!!!
  20. java生成树形Excel_poi从excel中读取父子关系型(树形)数据结构到数据库

热门文章

  1. 地图 Api 使用小记 (use 51ditu)
  2. pycharm画图出现Font family [‘Micro- soft YaHei‘] not found. Falling back to DejaVu Sans.的错误
  3. java版我的世界MITE怎么下_MITE纯新手向教程 - [MITE]MC实在是太简单了 (Minecraft Is Too Easy) - MC百科|最大的Minecraft中文MOD百科...
  4. How、what...like的疑问代词_19
  5. python第一章测试题_python 第一章 初探Python课后练习题
  6. python eml解析_使用 python eml-parser 对 eml文件进行格式化
  7. Cacti监控华为交换机不显示端口解决办法
  8. 中证500-小盘股预警2015.4.2
  9. 农民工看完都学会了!Android开发岗还不会这些问题,跳槽薪资翻倍
  10. github100天python_GitHub - jazeyoung/Python-100-Days: Python - 100天从新手到大师