Android操作系统此前主要被用于智能手机和平板等移动设备,现在它将进入更多市场。ARM处理器开发者倾向于利用Android的灵活性、性能和多功能性。基于开源Linux内核的Android系统依然保留了开源软件的很多特性,即便在Google收购Android以后,它也只是蜕变为混合模式——鉴于开源和商业之间的操作系统。Android1的优势在于没有授权费而且可以免于开源社区的索取。Android已经预配了强大的功能,Google定义了该操作系统的中间件、多媒体框架以及关键系统固件,这和需要开发者自行集成功能至开源内核的其它Linux系统不一样。
截至2011年10月,Android智能手机应用数量已经突破40万个,体现出它的强劲增长。Android版本的快速更新以及未来路线图展现出该系统的持久性。最新发布的Android 4.0(又名Ice Cream Sandwich)将该系统的智能手机和平板版本合二为一。
Android的新边疆
Android已经在手机领域取得大量市场份额,并开始向类似市场进军。这些市场包括平板、瘦客户端个人电脑、无线视频会议系统以及采用GoogleTV的电视机。
智能手机顺滑的触屏界面非常流行,以至于开始渗入日常家用、商用产品。得益于其灵活性,Android也已经进入耐用型PDA个人数字助理、智能家电、医疗诊断用户界面甚至工业系统。
从功能性的角度,上文提及的大部分应用都有共性。所有这些都重视多媒体内容,并且主打健壮、以图形为中心的流畅触控用户界面以及通信组建——都是Android的强项!
这些新产品的设计师在考虑将现有应用与Android环境整合时应该注意Linux和Android的区别。这两个系统有很多相近的功能,比如多媒体处理、文件系统响应、cocs、驱动补丁以及其它软件模块。但它们并不相同,即便Android构筑于Linux内核之上。设计师在从Linux向Android迁移的阶段需要重新编码。
为ARM内核优化
Android操作系统完全为ARM处理器内核优化,特别是ARM Cortex-A系列内核,包括ARM Cortex-A8。该处理器拥有上网本级别的功能以及低功耗特性,非常适合移动嵌入式系统。ARM Cortex-A8设备通过被称为NEON的ARM高级SIMD技术进行编码或图形操作加速,相比直接ARM或THUMB编码性能提升显著。德州仪器的ARM设备集成了NEON高级SIMD引擎。ARM9内核被广泛用于嵌入式系统,但Android并未针对这些内核进行优化。它可以用于ARM9设备,但性能表现会严重缩水。
Android系统通常主打多媒体应用,开发者应该注意系统对视频、音频和图形的处理方式。Android预装了很多低分辨率的多媒体编解码器,这是ARM Cortex-A8通用内核的基础。不过很多业界的处理器,例如德州仪器的OMAP、DaVinci视频处理器以及C6000 DSP + ARM 处理器合并了ARM内核与DSP。这么做可以帮助DSP分担ARM内核的处理任务,提供更强的多媒体处理能力。
Android开发工具
Android向开发者提供Java和C/C++开发语言。Java方面利用Android SDK(软件开发包)和针对移动设备优化的Dalvik虚拟机。Java可以运行于任何支持Java的环境。AndroidNDK(本地开发包)则采用C/C++编码,将编码限定于特定的CPU架构。不过由于绝大部分Android设备都基于ARM,这算不得什么严重限制,对想用Android的x86厂商才是大问题。纯Java应用可以正常运行,但利用NDK代码开发的ARM应用就需要手动移植到x86设备。
开发者在评估Android设备时可以在搬上实体设备前先利用完整的虚拟环境构筑应用。该环境可以在 http://developer.android.com/sdk 下载到,能够运行于苹果、Linux或Windows个人电脑。
图1,框架应用程序编程接口(API),调式代码以及Android SK的工具和输出完成后的代码。德州仪器的Code Composer Studio v.5 IDE支持Google Android开发工具(ADT)插件。
Google提供的Android开发工具(ADT)插件支持流行的Eclipse整合开发环境(IDE)。Eclipse被捆 绑在很多工具上以实现快速展开项目、应用界面开发、增加基于Android Framework API的组件和调式代码、Android SK的工具以及输出完成代码。德州仪器的Code Composer Studio v.5 IDE(图1)基于Eclipse,并拥有高级调试功能(例如Linux Aware Debug)、硬件调试、仿真等功能。开发者采用Code Composer Studio和ADT插件,就能直接在同一个IDE调试Android Java和C/C++代码、Linux内核、DSP代码等等。开发者也可以通过Code Composer Studio和ADT插件运行Android虚拟机。