本文所提到的AL3003,是一个距离、光线二合一传感器。AL3003拥有I2C接口,与系统所提供的接口方式完全吻合,均基于I2C总线协议。因此,在为AL3003开发I2C驱动的时候可以依据I2C设备驱动程序的开发方式。本篇文章将重点叙述传感器的驱动和在手机解锁软件中的应用。
1。 Android历史及现状
Android操作系统是一个由Google开发的移动设备操作系统,从2007年11月15日发布的第一个版本开始,至今已经发布了多种版本更新。随后Google以免费开源授权的方式公布了Android的源代码,这一举动使Android系统迅速的占领了大量的市场,主要使用于各类移动设备,现在在平板电脑、游戏机等其他便携式设备上也会看到Android系统的身影。2011年,Android的市场销量超过Symbian,跃居全球第一[1]。
2。 相关技术介绍
2。1 Android系统
Android系统作为操作系统和软件搭载平台应用于智能手机上,它采用的形式为软件堆层,由三部分构成:最上层的是由开发人员用Java开发出来的关键应用程序、中间是中间件、位于最下端的是基于Linux的操作系统。
Android系统主要框架如图1所示,其中包含了应用层、应用框架层、内核层、标准库层和硬件抽象层。下面介绍每层的具体内容。
2。1。1 应用层
Google在发布Android的同时,还发布了一些比较核心的应用程序,如通讯录、日历、地图等。开发者可以利用开源代码,使用Java随意开发自己的应用。这与其他智能手机操作系统完全不同,是本文选取Android为搭载平台的主要原因。
Android整合出来四类核心组件,具体作用各不相同,分别为:Service组件、Content Provider组件、Broadcast Receiver组件、和Activity组件[2]。
图1 Android框架图
(1) Activity (活动组件): 在Android应用中,对Activity的管理是通过堆栈的形式进行的,在多个Activity中,每一个Activity都拥有一个独立的窗口。在程序运行的过程中,系统会从堆栈中选取当中一个Activity进行窗口展示,在选取到下一个Activity时,前一个会自动放回堆栈,直至下一次被唤醒。
(2) Service (服务组件): Service属于后台运行程序,没有用户可视化界面。
(3) Content Provider (内容提供组件): 为其他应用程序创建所需的数据,实现不同组件之间的数据共享。
(4) Broadcast Receiver (广播接受组件): 用来进行系统内的信息共享。
2。1。2 应用框架层
应用框架层是为应用程序提供各种编程接口,开发人员可以根据自身需求使用框架来开发应用。应用框架层的主要组件有:
(1) 视图组件:用来构建文本框、表格等应用程序。
(2) 活动管理器:管理应用程序的形态,如创建、暂停、终止等。
(3) 内容管理器:可以使应用程序间相互访问,达到数据共享的目的。
(4) 包管理:管理的对象为Android系统内的程序。
(5) 资源管理器:提供资源访问,与代码无关。
(6) 消息管理器:使部分程序在通知栏显示所需信息。
(7) 窗口管理器:对所有窗口程序进行管理。
2。1。3 标准库层
Android中含有源代码库,我们使用各个组件时可以得到源代码库的支持,从而完成对Android应用框架的操作。
SGL: 2D图形引擎库。
SQ Lite: 可用轻型关系数据库引擎
Bionic系统C库: 里面含有C语言标准库,通过Linux系统进行调用,位于整个系统的最低端。
Web kit: Web浏览器引擎。
3D libraries: 优化3D效果。
多媒体库:能对现有的多种格式的影视作品进行播放,也可录制不同格式的影视作品。