Android深度解读-“安致”移动信息处理的未来
的路线图,与朋友分享世界。如此多的网络应用,你完全可以将其看做一款放在手中的移动接入因特网终端,而绝非用于打电话、收发短信和邮件的基本手机。
对于Google来说,推出Android而不是推出之前大家猜测的Gphone无疑是更为明智的举动,iPhone再强,也不可能实现对智能手机市场半数以上份额的统治,而这恰恰是开放性的Android系统所极有可能达到的。Google也许在做一个很大的布局,近年来,由于云/端计算与网络服务的兴起,全球云计算市场逐渐成为众多IT厂商争夺的焦点,美林证券预计未来五年全球云/端计算市场规模将达950亿美元,Gartner预测,2010年有80%的《财富》500强企业会使用各式不同的云/端计算服务,因此如此庞大的商机让各大科技公司纷纷跨入云端计算市场领域,意图抢占商机。
借用中科院计算所刘军发博士关于云计算和端计算的研究:云计算+手机=神奇的东西,那么Google开发Android就是在抢占端市场,如果能借此掌控半数以上的智能手机终端,又同时拥有了出色的云计算服务,属于Google的未来肯定比现在Google已经创造的更神奇。当然,真正要走到云计算这个阶段,Android必然会将Google所倡导的网络化进行到底。
Android软件平台及开发要点
Android作为软件平台标准,需有硬件提供各种运算能力才能形成完整系统。Android软件平台包含Java应用程序、Application Framework、Libraries、Runtime与Linux OS等层。每一层内含多个独立组件完成不同功能,Android在各组件与层之间订出标准界面。因此 Android系统可以像积木堆栈一般,不同应用产品可以依功能需要加入软件或硬件组件整合成不同产品。
以往在智能手机软硬件供应链上属于单纯的垂直产业链,其产业模式如图2右侧,手机上关键软硬件,如操作系统、中介软件、人机接口的软件组成、核心SoC与平台设计等关键技术,大多掌握在国外大厂手中。以HTC的3G手机为例,手机上大部分软件包含操作系统都是Microsoft所提供,由于Microsoft不公布原始码,HTC仅能针对有限的软件部分进行定制化设计;关键的SoC则由TI或是QualComm(高通)提供芯片,平台所需的驱动程序已由SoC厂商或Microsoft提供,系统厂商不需要作太多开发;系统厂设计挑战着重在电磁干扰、安全规范、测试、甚至降低成本等,此种商业模式对多数规模无法与大公司竞争之厂商而言,要切入十分困难。
Google提出的Android软件平台采取开放源码,可以让不同软件层的厂商清楚地看到与其它层接口,就其专精部分深入开发,其研发成果可以再挂回Android平台作功能展示。对于不同硬件或是模块厂商,通过定义清楚的标准接口,可以直接与Android软件进行开发,再以模块的方式整合在Android系统,创造差异化嵌入式产品。Android的开放性,将使移动装置软硬件供应链产生进一步的垂直分工,如图2左侧所示,犹如PC产业一般。
Android平台软件架构
应用程序(Applications):依据使用者的期望而将Android框架里的组件及Library组件组合而成的高阶服务。
应用框架(Application Framework):这是结合Applications与Libraries的幕后主架构。
Android Runtime:主要是Java虚拟机(Virtual Machine)。
Libraries:Android已提供了一些C++链接库。例如,SQLite数据库系统、OpenGL 3D绘图系统等。
Linux核心:Android依赖Linux 来提供核心的服务,例如内存管理、进程(Process)管理、执行绪(Thread)管理等。
对于软件开发者的着力点在于:链接库层(*.SO)。基于*.SO ,往下衔接到Driver和硬件组件,以*.SO来提升硬件的价值。基于*.SO,往上衔接到Google支持的Java抽象类别和界面,再衔接到成千上万的应用层Java子类别,享受"*.SO + 硬件组件"无限复制的商机。基于上述的分析,Android平台的开发要点是:开发*.SO发挥自身硬件产品的特色;然后,往上嵌入于Android框架层。整个过程如图3所示。
由于IT产业的开发人员对于硬件、BIOS和Linux(Driver)三者极为熟悉,但是对于Android的框架(Framework)部分非常陌生。于是,可以分三步让开发人员能"知己知彼",从自己熟悉的"硬件、BIOS和Linux"衔接到还很生疏的"Android框架"。
第一步:熟悉上层Java应用组件(如Activity、Service、Broadcast Receiver和Content Provider)之间的互动模式。
第二步:以C/C++开发Android的本地(Native)共享类库(Shared Library, 即Linux里的*.SO组件),并衔接(或调用)到自己熟悉的硬件、BIOS和Linux(Driver)。
第三步:撰写Hook类,将共享类库(*.SO)向上嵌入到上层的Java应用框架结构里。
此过程(如图4)的焦点不在
- 华为拟明年推基于Android及Symbian智能手机(10-08)
- Palm明年发售Linux智能手机 面向消费者(11-21)
- 联发科技 MT6573 引领中国智能手机迈进平价时代(09-18)
- 瑞萨通信技术推出首款用于全功能智能手机的集成LTE三模平台(01-28)
- Marvell全力支持天语推出首款中移动TD智能手机(04-22)
- 异构网络:以最高的效率满足用户对移动宽带的期望(05-01)