Android底层开发实战
上QQ阅读APP看书,第一时间看更新

1.2.2 基于Android的嵌入式系统

1.操作系统及引导器选型

嵌入式系统结构分布如图1-19所示。应用程序通过调用嵌入式操作系统实现对以嵌入式处理器为核心的硬件平台的操作。简单嵌入式系统通常不运行操作系统,而是将用户代码直接运行在CPU上。在遇到相对复杂的任务时,选择适当的操作系统可以减少开发的时间。一般来说,运行在单片机上的操作系统有OpenRTOS、FreeRTOS、uc/OS-ii等,这些操作系统的典型特征是简单、不具备动态程序加载的功能,它们与用户程序连接在一起,没有或很少有完整的文件系统,适合于固定的应用环境。

图1-19 嵌入式系统结构分布

相比较而言,高级一些的复杂嵌入式系统则不然。以移动电话为例,软件部分在处理存储等内部请求的同时响应用户的操作。更主要的,用户还要能够安装自定义的应用程序,这使得操作系统必须具有复杂的任务调度、请求处理能力。常见的高级操作系统有GNU/Linux、Windows CE、Windows Phone、vxWorks等,这些系统与前面所述的FreeRTOS等不同,拥有常见的计算机操作系统架构,能处理更加复杂的请求和动态加载代码。

很多处理器上电时仅有部分基本模块工作,为了成功加载操作系统内核,还必须借助引导器。以Linux内核来说,需要使用Grub/Lilo等引导器才能够在x86计算机上运行。同样,在手机等移动设备常用的ARM处理器上,Linux需要U-Boot、vivo、blob等引导器才能启动。引导器通常不需要编写,通过修改原有的代码,使之运行在自定义的平台上即可。

2.中间件选型

中间件是为系统软件和应用软件提供连接的软件,如数据库、Web服务器等均属于中间件。为便于软件各部件之间的沟通,在现代信息技术应用框架中,如Web服务、面向服务的体系结构等,中间件的应用比较广泛。严格来讲,中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache基金会、IBM、Oracle、微软各自发展出了较为完整的软件产品体系。中间件技术创建在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连接器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身,或者分别在不同品牌的不同产品中完成。

在嵌入式系统中,中间件一般不会处理复杂的大型应用。简单来说,嵌入式中间件就是运行在应用程序之下、操作系统之上,联系应用程序与操作系统,或应用程序与其他应用程序的软件。一般情况下,一个典型的系统中,图形用户界面、嵌入式数据库、运行库等都属于中间件。在传统开发过程中,软件通常由开发商自行开发完成。然而,随着嵌入式系统越来越大,功能越来越强,系统中从底层架构到上层需求之间或多或少存在重复,中间件就成为了一种低成本、高质量的选择。好的中间件选型会大幅度减少开发者的工作,同时减少测量、调试的工作。

一个完备的Android嵌入式系统中,成品的中间件几乎包含了支持APK程序的一切,从底层库函数到Java虚拟机,再到第三方的JNI库,最后是各种各样的JAR包。这些大量的中间件大幅度减少了Android系统开发的时间与成本。

3.应用程序开发

作为运行在系统最顶层的程序——应用程序(简称APP),需要直接与用户沟通,因此不仅需要具备完善的功能,还要具备美观大方的用户界面,以及舒适的用户体验。APP开发往往依据常规软件工程的开发流程,在此不赘述。

4.pcDuino的软件配置

pcDuino是联斯普瑞电子科技有限公司发布的一款小巧而强大的PC平台,它结合了ARM架构的迷你PC和Arduino的优势,实现了开源软件Linux和开源硬件Arduino生态系统的完美结合。

pcDuino支持Ubuntu Linux和Android 4.0ICS,采用标准的Android SDK,支持Python、C语言、Java等编程语言。pcDuino的出厂默认设置是将Ubuntu安装在NAND flash里,Ubuntu可以从NAND flash启动,或者通过可启动的Micro SD卡启动。用户可以根据自己的需要将pcDuino的系统更新为最新的系统。

pcDuino&Ubuntu支持Ubuntu Linux 12.04版,该版本是为在具有DRAM限制并且支持NAND flash的ARM Cortex平台上运行而优化的定制版。设备可以通过支持USB接口的鼠标和键盘来操作,具体的支持程序清单如表1-4所示。

表1-4 Ubuntu Linux 12.04版的支持程序

注:系统管理员和密码都是ubuntu。

pcDuino为支持HD-TV的输出显示设备对Android 4.0进行优化,形成定制版Android 4.0。此显示设备需要通过支持USB接口的鼠标和键盘来操作,具体支持的部分程序清单如表1-5所示。

表1-5 Android 4.0定制版支持的部分程序