1、毕业设计 开题报告 计算机科学与技术 基于 Android 模拟考试系统 一、选题的背景、意义 1、 选课的历史背景: 智能手机发展以及 3G 技术发展 2009 年 1 月 7 日,工业和信息化部位中国移动、中国电信和中国联通发放 3 张第三代移动通信( 3G)牌照,词句标志着我国正式进入 3G 时代。中国 3G 正式商用和规模建网,App 商店在全球被运营商和终端厂商热捧;中国移动 App 商店不久上线,这些背景,共同决定了中国基于 Android 的应用程序开发将在未来处于一个爆发和蓬勃成长时期,这也为软件开发者提供了一个淘金的好机会,也促使大量此前 不熟悉 Android 开发的程序员
2、要迅速进入此领域,以便在经历了单机计算时代和传统互联网时代之后,能在移动互联网时代的元年开始赶上这趟快车,成为了许多程序员的愿望 1。 根据时代背景,智能手机的出现,是人类发展史上一个里程碑,随着它的不断研发、日益普及,且基于 Intenet 的产生、网络化,手机在人们日常生活中所扮演的角色越来越不可缺少也越来越重要。智能手机全球化时代,人们已经不能满足于从电话、书籍、口头等日常方式来获取他们所需要的信息,更多的是通过便携的手机,这个无形的、巨大的载体,甚至不仅仅局限在信息的获 取,更多的是要求获取信息时的便捷性、时效性、速效性等。 移动电话( Mobile Phone)的原本含义是和固定电话
3、对应的,是一个通信工具,其主要功能是通过移动网络进行通信。然而经过 20 年的发展,移动电话的功能已经远远超过了语音通信工具的功能。目前,随着 3G 技术的发展,移动电话正向着智能化的方向迈进,未来的移动电话将成为多种工具的功能载体。 其包含:通讯工具、网络工具、媒体播放器、媒体采集设备、多类型连接设备、信息感知终端、视频通话和电子付费终端等高度集成的一个设备。 着眼于自身发展背景,对于在计算机科学与技 术专业的近四年的学习中,通过理论课程的学习、实践环节的编程等方式,一定程度上丰富了自身的计算机应用知识和能力,在此利用毕业设计环节,在导师的指导下,通过编写一个综合性的系统程序,及对它的开发,
4、将自己所学知识进行有机的串联,以项目为基础,稳固计算机相关知识,并通过实用性系统编程,使自己的专业技能水平更具竞争力。 基于系统的面向群体,众多的学生是高新科技普及走在较前列的群体之一。在校的学生每天面对着形形色色的各种考试,对于能够更好的更加有效率的复习所学知识,测试知识的掌握程度,一个智能手机的模拟考试系统能非常 便携高效的完成,做到随时随地。该模拟考试系统以 Eclipse 3.6 + JDK 1.6 + Android SDK 2.2为开发环境利用 Android手机操作系统实现相关试题联系、模拟测试、随机测试等功能,并且为系统提供评判功能。 介于对该系统研发的可行性分析和成熟的技术路
5、线保障,确定了毕业论文选课: 基于Android 模拟考试系统。 2、 发展趋势 随着 Android 系统的持续火爆,运行 Android 系统的智能手机将不断增加,人们肯定会越来越多跨入 Android 的阵营,而模拟考试系统也必定会越来越广泛的被使用。 二、研究的基本内容与拟解决的主要问题 1、 研究的基本内容: 研究的基本内容从技术角度而言,包括:基于 Android 技术的相关应用; Eclipse 3.6 开发环境的运用; SQLite 轻便型数据库的使用。 2、 解决的主要问题 Android 的相关知识的研究与学习: 下图显示的是 Android 操作系统的主要组件。每一部分将
6、会在下面具体描述。 Android 系统架构由 5 部分组成, 分别是: Linux Kernel、 Android Runtime、 Libraries、 Application Framework、 Applications。 Eclipse 平台的相关知识的研究和学习: Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一代 IDE 开发环境, 2001 年 11 月贡献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金会 ( Eclipse Foundation)管理。 Eclipse 的基础是 富客户机平台 ( Rich
7、 Client Platform,即 RCP)。 RCP 包括下列组件: 1、 核心平台(启动 Eclipse,运行插件) 2、 OSGi(标准集束框架) 3、 SWT(可移植 构件工具包 ) 4、 JFace(文件缓冲,文本处理,文本编辑器) 5、 Eclipse 工作台(即 Workbench ,包含视图( views)、编辑器( editors)、视角( perspectives)、和向导( wizards) Eclipse 采用的技术是 IBM 公司开发的( SWT),这是一种基于 Java 的窗口组件,类似 Java本身提供的 AWT和 Swing窗口组件;不过 IBM声称 SWT比
8、其他 Java窗口组件更有效率。 Eclipse的用户界面还使用了 GUI 中间层 JFace,从而简化了基于 SWT 的应用程序的构建。 Eclipse 的插件机制是轻型软件组件化架构。在富客户机 平台上, Eclipse 使用插件来提供所有的附加功能,例如支持 Java 以外的其他语言。 已有的分离的插件已经能够支持 C/C+( CDT)、 PHP、 Perl、 Ruby, Python、 telnet 和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。 Eclipse 的设计思想是:一切皆插件。 Eclipse 核心很小,其它所有功
9、能都以插件的形式附加于 Eclipse 核心之上。 Eclipse 基本内核包括:图形 API (SWT/Jface), Java 开发环境插件( JDT),插件开发环境( PDE)等 2。 SQLite 的相关知识的研究和学习: SQLite,是一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、 C#、 PHP、 Java 等,还有 OD
10、BC 接口,同样比起 Mysql、 PostgreSQL 这两款开源世界著名的数据库管理系统来讲, 它的处理速度比他们都快。 SQLite 第一个 Alpha 版本诞生于 2000 年 5 月 . 至今已经有 10 个年头, SQLite 也迎来了一个版本 SQLite 3 已经发布。 SQLite 特性 : 1. ACID 事务 2. 零配置 无需安装和管理配置 3. 储存在单一磁盘文件中的一个完整的数据库 4. 数据库文件可以在不同字节顺序的机器间自由的共享 5. 支持数据库大小至 2TB 6. 足够小 , 大致 3 万行 C 代码 , 250K 7. 比一些流行的数据库在大部分普通数据库
11、操作要快 8. 简单 , 轻松 的 API 9. 包含 TCL 绑定 , 同时通过 Wrapper 支持其他语言的绑定 10. 良好注释的源代码 , 并且有着 90%以上的测试覆盖率 11. 独立 : 没有额外依赖 12. Source 完全的 Open, 你可以用于任何用途 , 包括出售它 13. 支持多种开发语言 ,C, PHP, Perl, Java, ASP .NET,Python 三、研究的方法与技术路线、研究难点,预期达到的目标 1、 研究的方法与技术路线 1) 应用程序框架( Application Framework) 普通的开发者可以使用 Android核心应用程序使用的系统
12、 API。 Android中的应用开发框架设计的非常巧妙,通过这套应用框架,各种组件可以被用户的应用重复利用,各种服务也可以被各种应用重复利用。 下边列举了每一个应用程序有可能会使用到的应用框架的部分。 一组 Views( UI组件)。这些 UI组件包括列表( List)、文本框( textbox)、按钮( button)等。通过这些 UI组件,可以构建应用程序的视图部分,这部分也就是用户能看到的部分。 Content Providers。通俗的理解 Content Provider就是提供 了一种机制,通过这种机制,应用程序可以实现数据的互访和共享。 Resource Manger。它负责管
13、理非代码的访问。如本地的图片资源、涉及布局的 XML文件及国际化的字符串等。 Notification Manager。它能让程序将自己的警示信息显示在状态栏上,例如,当有短信的时候,可以再状态栏上显示出新短信的信息。 Activiy Manager。它管理着应用的生命周期,并且提供了应用页面退出的机制。在 Android应用中,每一个应用一般是由多个页面组成的,而每个页面的单位就是 Activity,在通俗一点讲,可以认为 Android的应用是由多个 Activity的交互构成的(当然有些应用只有一个 Activity)。 库( Libraries)和运行环境( RunTime) 这部分已
14、经开始设计底层。 Android包含一些 C/C+库,这些库能被 Android系统中不同的组件使用,它们通过 Andorid应用程序框架为开发者提供服务,以下是一些核心库。 系统 C库。一个从 BSD继承来的标准陈希同函数库( libc),它是专门为基于嵌入式 Linux的设备定制的。 媒体库。基于 PacketVideo OpenCORE,该库支持 多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4、 H.264、 MP3、 AAC、 AMR、 JPG、 PNG。 Surface Manager。对显示子系统的管理,并且为多个应用程序提供了 2D和 3D图层
15、的无缝融合。 LibWebCore。一个最新的 Web浏览器引擎,用来支持 Android浏览器和一个可嵌入的 Web视图。 SGL。底层的 2D图形引擎。 3D libraries。基于 OpenGL ES 1.0 APIs实现,该库可以使用硬件 3D加速(速度可用),这使用高度优化的 3D软加速 。 FreeType。位图( bitmap)和矢量( vector)字体显示。 SQLite。一个对于所有应用程序可用,功能强大的轻型关系型数据库引擎。 Android包括了一个核心库,该核心库提供了 Java编程语言核心库的大多数功能。 每一个 Android应用程序都在它自己的进程中运行,都拥
16、有一个独立的 Dalvik虚拟机实例。 Dalvik被设计成一个设备,该格式文件针对小内存使用坐了优化。同时虚拟机是基于寄存器的,所有的类都经由 Java编译器编译,然后通过 SDK中的“ dx”工具转化成 dex格式,由虚拟机执行。 Dalvik虚拟机依赖于 Linux内核的一些功能,例如,线程机制和底层内存管理机制, Android的核心系统服务依赖于 Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。 Linux内核也同时作为硬件和软件栈之间的抽象层。 3 2) SQLite 数据库 每个应用程序都要使用数据, Android应用程序也不例外, Android使用
17、开源的、与操作系统无关的 SQL数据库 -大名鼎鼎的 SQLite。 SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可 能只需要几百 KB,这也是 Android 系统采用 SQLite 数据库的原因之一 。 SQLite有如下几个特点: 轻量级 : 使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。 独立性 : SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的 “安装 ”。 隔离性 : SQLite 数据库中所有的信息 (比如表、视图、触发器等 )都包含在一个文件夹内,方便管理和维护。
18、 跨平台 : SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行 ,比如: Android。 多语言接口 : SQLite 数据库支持多语言编程接口。 安全性 : SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。 2、 研究难点 通过系统程序开发前的问题定义、可行性研究、需求分析等阶段的摸索,预计了在系统研发过程中可能出现的难点,现说明如下: ( 1)模拟考试系统题库数据库的设计。模拟考试系统题库数据库的整理是实现系统功能必须要克服的难点,数据录入、读取的正确性
19、,直接反映了系统设计的 可靠性能,也是整个系统最基本的功能。其难点在于:要对数据库有全面体统的掌握,对 SQLite 和 Java 语言编程方法要掌握。 ( 2)模拟考试系统 UI 设计。一个好的系统应该要有一个人性化的 UI 界面,才能让使用者有比较良好的用户体验。软件设计的初衷是给用户使用,人性化的界面设计是系统的基本要求。 ( 3)考试答案评判。习题答案的正确性的评判是本系统的重要组成部分。其评判的正确性直接影响到本系统的实用性。 ( 4) Android 系统应用程序框架的掌握和使用。 3、 预期达到的目标 通过 Eclipse 的平台,开发一个基于 Android 的模拟考试系统,具
20、备以下功能 : 1、可以完成试题的维护,并可以进行随机练习、顺序练习、模拟测试等基本功能。 2、完成试题随机抽取功能与组卷功能 。 3、具备评判功能以及正确答案显示功能。 四、论文详细工作进度和安排 第七学期第 10 周至第 18 周( 2011 年 01 月 06 日前): 文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外文翻译; 第八学期 第 1 周 至第 3 周( 2011 年 03 月 11 日前): 撰写论文提纲,完成毕业论文(设计)初稿、需求分析和概要设计; 第八学期 第 4 周 至第 12 周( 2011 年 05 月 13 日前): 详细设计、系统调试、和毕业论文
21、(设计)完成定稿; 第八学期第 13 周( 2011 年 05 月 20 日前): 完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩; 第八学期第 14 周: 参加毕业论文(设计)答辩。 五、主要参考文献: 1 (美 )伯内特 著 ,张波等译 .Android 基础教程 M . 北京 : 人民邮电出版社 ,2006 2 (美 )罗杰 等著 ,李耀亮 译 . Android 应用开发 M.北京 :人民邮电出版社 ,2010 3 杨丰盛 著 . Android 应用开发揭秘 M. 北京 :机械工业出版社 ,2010 4 E2EColud 工作室 编著 .深入浅出 Goog
22、le AndroidM. 北京 : 人民邮电出版社 .2009 5 张利国 ,代闻 ,龚海平 编著 .Android 移动开发案例详解 M. 北京 : 人民邮电出版社 .2010 6 靳岩,姚尚朗 编著 Android 开发入门与实战 M. 北京 : 人民邮电出版社 .2009 7 余志龙 陈昱勋 郑名杰 陈小凤 郭秩均 著 Google Android SDK 开发范例大全 M. 北京 : 人民邮电 出版社 .2010 8Edtited by Susannah Davrdson Pfalzer Hello, Android Introducing Googles Mobile Develop
23、ment Platform, 3rd EditionM Ed Burnette 9 Edtited by Sayed Y. Hashimi Satya Komatineni Dave MacLean Pro Android 2 MApress 10 A Fast Mobile Face Recognition System for Android OS Based on Eigenfaces Decomposition M Appress 11 Edtited by Reto Meier Professional Android 2 Application Development 12 Edtited by Mark L.Murohy Beginning Android 2 M Appress 13 吴亚锋 苏亚光 编著 Android 2.0游戏开发实战宝典 M 人民邮电出版社 .2010 14 杨丰盛 编著 Android 应用开发揭秘 M 机械工业出版社 .2009 15 汪永松 编著 Android 平台开发之旅 M 机械工业出版社 .2010