目
录
1. 应用背景........................................................................................................................ 1
1.1 嵌入式领域的开发.................................................................................................................................. 1
2.系统所用技术................................................................................................................. 2
2.1 ANDROID 介绍 ..................................................................... 2
2.2 ANDROID 的组件 ................................................................... 6
2.3 SQLITE 轻型数据库................................................................................................................................8
2.4 JNI 技术................................................................................................................................................. 8
2.5 ANDROID 系统的有点............................................................................................................................ 8
3. 系统分析....................................................................................................................... 9
3.1 可行性分析........................................................................................................................................... 9
3.2 需求分析................................................................................................................................................ 9
4. 系统设计...................................................................................................................... 10
4.1 概要设计............................................................................................................................................. 10
4.2 数据存储............................................................................................................................................. 10
4.2.1 SQLite..............................................................................................................................................10
4.2.2 Preference ........................................................................................................................................ 11
4.3 程序中的主要类...................................................................................................................................11
4.3.1 ShowActivity 类............................................................................................................................... 11
4.3.2 DataBaseDao类........................................................................................错误!未定义书签。
5. 系统的实现................................................................................................................. 12
6. 系统测试..................................................................................................................... 13
6.1 单元测试............................................................................................................................................. 13
6.1.1 单元测试简介.............................................................................................................................. 13
6.1.2 单元测试工具............................................................................................................................ 13
6.1.3 单元测试结果............................................................................................................................ 13
6.1.4 单元测试作用............................................................................................................................ 14
结束语................................................................................................................................. 15
参考文献............................................................................................................................. 16
I
1. 应用背景
步入 21 世纪以来,随着国际互联网(Internet)的迅猛发展和世界经济
一体化的加速,网络信息急剧膨胀,国际交流日益频繁,如何克服语言障碍已
经成为国际社会共同面对的问题。由于人工翻译的方式远远不能满足需求,利
用语言信息处理技术协助人们快速获取信息,已经成为必然的趋势。
Android 是 Google 推出的基于 Linux 内核的软件平台和操作系统。Google
已经与 Sony Ericsson、HTC、NTT DoCoMo、KDDI、Motorola 等世界通讯领域
34 家公司于免费提供达成一致,今后对于移动通讯的影响势必会进一步体现出
来。 [1 ]
本课题为“基于 Android 的宿舍管理系统的设计和开发”,为 Android 设
备提供了一个本地及在线处理多国信息的解决方案。
1.1 嵌入式领域的开发
随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广
泛。嵌入式系统将向网络化、智能化、规范化、集成化方向发展。在与各个行
业的具体应用相结合的过程中,嵌入式系统将对国民经济进行全方位的渗透,
在我国国家现代化进程中发挥巨大推进作用。
随着技术进步的不断加速,我们有理由相信计算机还将继续快速发展并进
一步改变我们的生活,让计算变得“无所不能”、“无处不在”。其中“无所
不能”将是人工智能技术和超级计算机的结合,而“无所不在”则是嵌入式技
术应用的广阔天地。现在普通消费者已经可以从市场中买到数码相机、移动电
话、打印机等众多的数码产品、航空设备、ATM 机、计算机网络设备等电子产
品中都用到了嵌入式系统。
当今,嵌入式系统已成为一个时髦的名词,嵌入式系统的开发也成为了一
个炙手可热的行业。在嵌入式系统开发的领域中,手机系统的开发尤为热门。
目前,市场上使用的较多的智能手机操作系统包括 Symbian,Palm OS,windows
1
Mobiles 等,而 Google 基于 Linux 的 Android 手机操作系统一度被业内视为最
有希望的移动平台 [2 ]。Android 由于其开放性、不受运营商束缚、丰富的硬件
选择性、不受限制的开发和无缝结合的 Google 应用等几大特性牢牢地占据了
手机系统开发的主导地位。Android 的诞生不但给 Linux 带来了新的生机,也
加剧了 Linux 移动平台内部的竞争。 [3]
2.系统所用技术
2.1 Android 介绍
Android 一词的本义指“机器人”,同时也是 Google 于 2007 年 11 月 5
日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中
间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完
整的移动软件。目前,最新版本为 Android 2.4 Gingerbread 和 Android 3.0
Honeycomb。 [6]
Android 的系统结构由四个层组成,分别为 Linux 内核层、系统运行库层、
应用框架层和应用层组成。Android 系统的整体构架如图 1 所示。
2
图 1 Android 系统的整体架构
Applications(应用层)
应用是用 Java 语言编写的运行在虚拟机上的程序,即图中最上层的蓝色
部分,如图所示。其实,Google 最开始时就在 Android 系统中捆绑了一些核心
应用,比如 e-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联系人管
理程序,等等。
Application Framework 应用框架层
这一层即是编写 Google 发布的核心应用时所使用的 API 框架,开发人员
同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的架构设
计,但是必须遵守其框架的开发原则。从图中可以看出 Android 提供了如下系
统特色组件:
丰富而又可扩展的视图(Views):可以用来构建应用程序,它包括列表
(lists)、网格(grids)、文本框(text boxes)、按钮(buttons), 甚
至可嵌入的 Web 浏览器。
3
内容提供器(Content Providers):它可以让一个应用访问另一个应用
的数据(如联系人数据库), 或共享它们自己的数据。
资源管理器(Resource Manager):提供非代码资源的访问,如本地字符
串、图形、和布局文件(layout files)。
通知管理器 (Notification Manager):应用可以在状态栏中显示自定
义的提示信息。
活动管理器(Activity Manager):用来管理应用程序生命周期并提供常
用的导航退回功能。
窗口管理器(Window Manager):管理所有的窗口程序。
包管理器(Package Manager):Android 系统内的程序管理。
Libraries、Android Runtime(系统运行库层)
当使用 Android 应用框架时,Android 系统会通过一些 C/C++库来支持我
们使用的各个组件,使其能更好地为我们服务。
Bionic 系统 C 库:C 语言标准库,系统最底层的的库,C 库通过 Linux 系
统来调用。
多媒体库(MediaFramework):Android 系统多媒体库,基于 PackerVideo
OpenCORE,该库支持多种常见格式的音频、视频的回放和录制,以及图片,比
如 MPEG4、MP3、AAC、AMR、JPG、PNG 等。
SGL:2D 图形引擎库。
SSL:位于 TCP/IP 协议与各种应用层协议之间,为数据通信提供支持。
OpenGL ES 1.0:3D 效果的支持。
SQLite:关系数据库。
Webkit:Web 浏览器引擎。
FreeType:位图(bitmap)及矢量(vector)。
在 Android 操作系统中,每个 Java 程序都运行在 Dalvik 虚拟机上,其只
能执行.dex 的可执行文件,当 Java 程序通过编译后,最后还需要通过 SDK 中
的 dx 工具转为成.dex 格式才能正常在虚拟机上执行,Java 虚拟机运行的是
Java 字节码,而 Dalvik 虚拟机运行的则是其专有的文件格式 dex(Dalvik
Exceutable)的文件。
Dalvik 虚拟机有如下几个主要特征:
4
1.专有的 dex 文件格式。
2.dex 的优化,dex 文件的结构是紧凑的。
3.基于寄存器。
4.一个应用,一个虚拟机实例,一个进程。每一个 Android 应用度运行在
一个 Dalvik 虚拟机实例中,每一个虚拟机实例都是一个独立的进程空间。
Linux Kernel(Linux 内核层)
Android 的核心系统服务基于 Linux2.6 内核,如安全性、内存管理、进程
管理、网络协议栈和驱动模型等都依赖于 Linux2.6 内核。Linux 内核同时也作
为硬件和软件栈之间的抽象层。
Android 更多的是需要一些与移动设备相关的驱动程序,主要的驱动如下
所示:
显示驱动(Display Driver):基于 Linux 的帧缓冲(Frame Buffer)驱动。
键盘驱动(KeyBoard Driver):作为输入设备的键盘驱动。
Flash 内存驱动(Flash Memory Driver):基于 MTD 的 Flash 驱动程序。
照相机驱动(Camera Driver):常用的基于 Linux 的 v4l2(Video for Linux)
驱动。
音频驱动(Audio Driver):常用的基于 ALSA(Advanced Linux Sound
Architecture)的高级 Linux 声音体系驱动。
蓝牙驱动(Bluetooth Driver):基于 IEEE 802.15.1 标准的无线传输技
术。
WiFi 驱动(Camera Drive):基于 IEEE 802.11 标准的驱动程序。
Binder IPC 驱动:Android 的一个特殊的驱动程序,具有单独的设备节点,
提供进程间通讯的功能。
Power Management(能源管理):比如电池电量等。
5
2.2 Android 的组件
Android 应用程序由 4 个模块构造而成:Activity、Intent、Content
Provider、Service。由于本系统中主要用到的是 Activity,这里就着重介绍
一下 Activity。 [7]
Activity 是最基本的模块,一般称之为“活动”,在应用程序中,一个
Activity 通常就是一个单独的屏幕。简单理解,Activity 代表一个用户所能
看到的屏幕,主要用于处理应用程序的整体性工作,例如监听系统事件,为用
户显示指定的 View,启动其他 Activity 等。所有应用的 Activity 都继承于
android.app.Activity 类,该类是 Android 提供的基层类,其他的 Activity
继承该父类后,通过父类的方法来实现各种功能。
在 Android 中,Activity 拥有四种基本状态:Running、Paused、Stoped
和 Killed。
Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶
端,此时它处于可见并可和用户交互的激活状态。
Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖
时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所
以它仍然可见,但它已经失去了焦点故不可与用户交互。
Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时
处于 Stoped 状态。
Killed Activity 被系统杀死回收或者没有被启动时处于 Killed 状态。
当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它
在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。图 2 是
Android 官方文档中 Activity 的生命周期及其 4 个状态间的转换时机。
6
图 2 Activity 的生命周期及其 4 个状态间的转换时机
7