账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
Android平台软件架构设计
提供台湾一条软硬整合实践之路

【作者: 高煥堂】2009年08月05日 星期三

浏览人次:【12453】

Android平台带来什么机会?


货柜(Container)的启示


最近有一本书(The Box)叙述着货柜的深刻涵义。在许多革命性转折里,经常出现货柜的身影。长荣海运公司总裁张荣发先生深具眼光地大力支持货柜,加速改变了整个运输产业,也改变了人们的生活。回想20多年前的大型IC电路板,它是一种硬件货柜;随之出现的是微软的Windows,它是软件货柜;两者威力的加乘效果影响至今。当年李国鼎先生带动台湾投资建厂,大力支持IC货柜,又支持Windows/.NET软件货柜,让台湾一跃成为亮丽的硅岛。如今,手机、数字化汽车等是移动式的硬件货柜,而Google Android则是移动式软件货柜。如果这个观点是正确的话,谁愿意像当年台湾的李国鼎先生一样,深具眼光又勇往直前,大力支持新兴货柜,则幸运草很可能就会出现在他身旁。



开放(Open)平台的机会


20多年前,硬件规格开放了(如Apple II和IBM PC),带给台湾巨大的机会;然而,Apple麦金塔(Macintosh)计算机硬件封闭了,台湾产业的机会少了。以此观之,国外规格对台湾开放了,台湾产业机会就来了。反之,规格封闭了,台湾产业机会就少了。过去数十年来,国外软件平台规格都没有充分对台湾开放,台湾软件(含嵌入式)产业的机会少了。随然,十年前的Linux平台开放了,不过Linux平台并不完整,无法给予台湾产业足够的养分。开放环境里的Linux角色就相当于微软环境里的Windows,仅限于这个层级的开放是不充分的。因为Windows + .NET框架才是完整的平台;所以Linux + Android框架才是完整而充分的,才能带给台湾巨大的机会。



机会:以Android Netbook为例


Linux与Android是互补的角色。从硬件衔接到Linux,从Linux衔接到Android,然后从Android衔接到应用程序,成为一个完整的平台架构。其中,Android的内部含有领域知识(Domain Knowledge),这些知识以框架(Framework)形式表达于系统里。所以Android是一种特殊领域的框架(Domain-Specific Framework);例如,目前的Android是属于手机领域的框架。由于Netbook与手机的领域知识不尽相同,必须抽换掉Android里的部分领域知识,才能构成Android Netbook商业化产品。基于这个缘故,且台湾拥有最丰富的Netbook领域知识,使得台湾是全球最瞩目的Android Netbook开发基地。因此,就以Netbook产业为例,开放的Linux + Android框架为台湾产业带来蓬勃发展的机会。



Android平台软件架构


大家最常见的Android平台架构如图一所示。




《图一 典型的Android平台架构图》




图一说明了:




  • ●应用程序(Applications):依据用户的期望而将Android框架里的组件及Library组件组合而成的高阶服务。



  • ●应用框架(Application Framework):这是结合Applications与Libraries的幕后主架构。



  • ●Android Runtime:主要是Java虚拟机(Virtual Machine)。



  • ●Libraries:Android已提供了一些C++链接库。例如,SQLite数据库系统、OpenGL 3D绘图系统等。



  • ●Linux核心:Android依赖Linux 来提供核心的服务,例如内存管理、进程(Process)管理、线程(Thread)管理等。





由于图一无法透视出台湾产业的着力点,所以以透视图来表达如图二。



《图二 透视型的Android平台架构图》


这张图有助于解析台湾产业的着力点。兹分析如下:




  • 假设台湾产业的利多是:「软硬整合、以软件加值硬件;硬件包装软件、让软件无限复制。」



  • 那么台湾软件业的着力点在于:链接库层(*.SO)。



  • 基于*.SO,往下衔接到Driver和硬件组件,以*.SO来加值台湾的硬件组件。



  • 基于*.SO,往上衔接到Google支持的Java抽象类和接口,再衔接到成千上万的应用层Java子类别,享受「*.SO + 硬件组件」无限复制的商机。



  • 于是,创造了「软硬整合、无限复制」的美好利多。





Android平台开发要点


「做」出新软件组件


基于上述的解析,台湾产业于Android平台的开发要点是:




  • 开发*.SO发挥台湾硬件组件之特色。



  • 然后,往上嵌入于Android框架层。





兹将之归纳为三个步骤,笔者称之为:「软硬整合三步曲」。



由于台湾IT产业的开发人员对于硬件、BIOS和Linux(Driver)三者极为熟悉,但是对于Android的框架(Framework)部份非常陌生。于是,这三步曲让开发人员能「知己知彼」,从自己熟悉的「硬件、BIOS和Linux」衔接到还很生疏的「Android框架」,而达到百战不殆之境界。所谓三步曲就是:



第一步


熟悉上层Java应用组件(如Activity、Service、Broadcast Receiver和



Content Provider)之间的互动模式,如图三所示。



《图三 Android应用框架之结构》


第二步


以C/C++开发Android的本地(Native)共享类库(Shared Library, 即Linux里的*.SO组件),并衔接(或调用)到自己熟悉的硬件、BIOS和Linux(Driver)。如图四所示。



《图四 *.SO向下嵌入到自己的独特硬件里》


第三步


撰写卡榫(Hook)类,将共享类库(*.SO)向上嵌入到上层的Java应用框架结构里。



《图五 *.SO向上嵌入到Android应用框架里》


此焦点不在于Android商业应用系统开发(Application Development),如Google Map的应用等等。而且假设Android系统能在你的环境里执行,起步的「移植」(Porting)已经不是你的焦点了,如何进一步迈入产品商业化,才是你目前的焦点所在。基于上述的三步曲,就能逐步「做」出新的商业化产品。



「做」出Android-like整个新平台


刚才已经说明过,本文是从「做」Android软件组件为出发点。因为这样对台湾产业最有利了。君不见,20多年前,台湾的IT前辈们不只是想要「用」当时的Apple II或IBM PC,而是想要趁着PC硬件规格开放之潮流,赶快「做」PC的主板、零组件或整部PC。经过20多年后的今天,台湾业界不要仅仅将Android视为另一种「平台」(Platform),而善加利「用」一番;反而,要趁着Android软件规格开放之潮流,赶快「做」Android平台里的*.SO软件组件,甚至「做」出整个新版的Android-like框架来安装于Netbook、各式各样的家电产品里,甚至应用于所有的传统产业的产品里。



摆脱「被外人掐着脖子走」的枷锁


以「做」的心境来迎接Android软件规格开放潮流,会有意想不到的效果:让台湾硬件业摆脱「被外人掐着脖子走」的枷锁。台湾IT产业的前辈简明仁先生就形容台湾硬件业「被外人掐着脖子走」,这种感觉对台湾业者而言再熟悉不过了。但是大多数人皆知其然,而不知所以然。即使知其所以然,也各自观点不同,归因也不相同。当笔者将这些不同观点汇集起来,却得到一个另一个观点:




  • 「台湾嵌入式软件开发人员,不积极掌握软件控制(Control)点。」





为什么这样说呢?从软件技术的发展历史可嗅出一些味道。回想1995年时,为何美国软件业会放弃当时被视为先进的CORBA标准呢? 其理由很简单,就是:CORBA是一群软件服务(Software Service)的集合,都是被动的,准备好并等待应用层级的程序来呼叫它们。这种思维,仍然是当今台湾众多嵌入式开发者撰写驱动程序(Driver)的主流思维,所撰写的软件都是一群被动的软件服务之集合。数十年来,似乎未曾想过要去改变一下观点,因而未能长久未能掌握软件的控制点,同时连累了台湾的硬件业,让硬件业者及其产品长期处于被控制的地位。



有许多人会说到:像Linux的服务功能也是被动的呀,嵌入于Linux(或其它OS)的各种驱动程序当然也是属于被动型的软件服务呀,这有甚么错呢? 这种观点只看到问题的一部份而已。就如同说:我的左手只能被动防御别人的攻击,这是事实呀,没办法的事呀。



然而,就是因为左手只能被动防御,所以会想到使用右手去主动控制别人。就像Windows操作系统(OS)是被动的服务居多,所以像微软等软件业者,放弃CORBA等被动型的软件服务平台,转而致力开发COM/DCOM及后来的.NET应用框架去反向呼叫(即控制)应用层级的软件程序。同样地,台湾产业也得学习发展自己的系统框架,透过框架来有效掌握软硬整合系统的控制点。于是:




  • 「框架(Framework)是一种绝佳的工具,让台湾厂家能有效掌握软件控制点。」





所以Google公司想逐鹿手机软件市场时,其首要的策略就是大力推出:




  • 「积极主动的Android框架+被动服务型的Linux OS」=右手+左手





这种策略,其实跟微软的”.NET框架+Windows OS” 策略是一致的。于是,台湾产业应该化被动为主动,积极掌握软件的控制点。此时,制「做」Android-like软件框架是台湾产业摆脱「被外人掐着脖子走」苦楚的不二法门。



如果上述「做」Android-like软件框架是台湾产业前途的一座灯塔。那么有没有安全可靠的航线呢?答案是肯定的。台湾软件业发展软件框架时,经常陷入共识难求的困境里,这并非单靠精致的软件技术所能解决的。例如,Message Queue、Thread model等都是常常出现公说公有理、婆说婆有理的困境里。甚至,将整个Spring框架纳入自己的框架里,导致无法满足高效率的需求,引来众多人的质疑,更陷入无共识的深渊里。如今,极为完整又开放的Android免费来到台湾,其含有Java应用层和C++系统服务层,前者崇尚简约之美,后者追求及高效率,即使在资源有限的小小手机里,都能表现出力与美兼具特色。于是,台湾业界有了逻辑清晰完整的、可执行测试的Android开放原始程序,可做为台湾嵌入式软件领域(包括手机、电信产业)最具有代表性的框架开发样本。因此,以往台湾开发框架的不利因素已经不复存在了。台湾软硬产业终于可以大力发展Android-like框架,掌握控制点,振翅高飞,翱翔天际了。



结论和建议


欲实现本文所叙述的台湾产业前景,最大的阻碍就在于人们的观点了。例如,台北许多软件业者基于从天空鸟瞰的「从上而下」的观点(请见图二),希望在Android平台上开发许多行动应「用」软件系统,但是对于「平台之内」及「平台之下」的部分皆视为黑箱而莫不关心。当我们从台北搭乘高速铁路到新竹,就会发现新竹许多硬件业者,持着由下而上之观点,只关心着工研院所研发来搭配Android的双核心PAC Duo多媒体处理器,可为国内IC芯片业者省下授权金并加速Android行动装置上市。其对「平台之内」及「平台之上」的部分也视为黑箱而无太多关怀。如图六所示。



《图六 两个观点之间的黑暗鸿沟》


虽然从台北到新竹的距离仅约一百公里,但是40年来无论两个观点是如何地明亮和先进,都无法看清两者之间的黑暗鸿沟。很可能是这道心智观点的扭曲而造成的鸿沟,让台北的应用软件业日益式微,也让竹科的优势日益消失。即使当今极为先进的Android出现了,两地业者仍然以旧观点去看待它,则黑暗鸿沟将依就逐渐加深与扩大。那么,何不加个新观点:把Android视为白箱,打开了Android平台之后,会发现Android像一张桌子,含有桌面与桌脚,如图七。



《图七 两个观点之间的黑暗鸿沟消失了》


当台北观点涵盖了桌面,而新竹观点涵盖了桌脚时,黑暗鸿沟就消失了。竹科和工研院不再以提供新型PAC Duo处理器及其BSP为满足了。因为提供PAC Duo处理器只是必备条件,还需要充分条件:提供BSP与Android框架之间的桌脚部份。并且善用Android的桌面与桌脚之间的「卡榫」(Hook)软件机制,才能将桌脚配到桌面,成为完整的桌子。



基于桌面与桌脚之间的「卡榫」机制,就能随时抽换桌脚,来发挥底层硬件组件之特色,也让台湾硬件组件能不断推陈出新。于是,Android不仅提供给台湾一条软硬整合的实践之路,同时,也如同「货柜」曾经带给海运业和陆地运输业无限蓬勃发展一般,将给予台湾无限繁荣之机会。



--作者为台湾Android论坛主席、同时也是远联科技嵌入式软件技术顾问---



相关文章
MacBook领军USB Type-C普及加速
多功能嵌入式系统新未来:从Android到Raspberry Pi 3
传统、创新并存 Apple Pay颠覆金融圈
Android装置多核心系统设计策略
比手机还多的「心机」
comments powered by Disqus
相关讨论
  相关新闻
» 宜鼎独创MIPI over Type-C解决方案突破技术局限,改写嵌入式相机模组市场样貌
» 鼎新电脑串连生态系夥伴 数智驱动智慧低碳未来制造
» 鼎新电脑携手和泰丰田解缺工 以数位劳动力开启储运新时代
» Fortinet SASE台湾网路连接点今年落成 全台巡??落实云地零信任资安
» Ansys模拟分析解决方案 获现代汽车认证为首选供应商


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84R9H9P8CSTACUKX
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw