收藏 分享(赏)

基于Android的课程表提醒程序.doc

上传人:gnk289057 文档编号:4564441 上传时间:2019-01-02 格式:DOC 页数:16 大小:1.06MB
下载 相关 举报
基于Android的课程表提醒程序.doc_第1页
第1页 / 共16页
基于Android的课程表提醒程序.doc_第2页
第2页 / 共16页
基于Android的课程表提醒程序.doc_第3页
第3页 / 共16页
基于Android的课程表提醒程序.doc_第4页
第4页 / 共16页
基于Android的课程表提醒程序.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、安徽工程大学题 目 基于 Android 平台的手机课程表 提醒程序 姓 名 xxx 学 号 309070xxxx 院(系) 计算机科学与技术系 专 业 计算机科学与技术 指导教师 xxxx 2013 年 1 月 10 日目录1 前言 12 Android 系统及开发环境的安装与配置 .12.1 Android 的由来 12.2 Android 系统的优点 12.3 Android 系统的现状及展望 22.4 开发环境的安装与配置 .22.4.1 操作系统及准备工作 .22.4.2 开发环境的安装 23 系统分析 43.1 可行性分析 .43.2 需求分析 .54 系统设计 54.1 概要设计

2、 .54.2 数据存储 .64.2.1 SQLite 64.2.1.1 SQLite 数据库的创建 .64.2.1.2 SQLite 数据表的设计 .64.2.2 Preference.74.3 程序中的主要类 .74.3.1 ClassScheule 类 74.3.2 Addclass 类和 AddPlan 类 74.3.3 DBDataManager 类 74.3.4 AlarmService 类 .85 系统实现 86 总结 10致 谢 11参考文献 111基于 Android 平台的手机课程表提醒程序摘 要:随着无线移动设备的发展,手机也日益普及,Android 系统的推出使手机的发展

3、进入到了一个新的领域。世界上一些知名的移动设备生产厂商对于 Android 智能机的开发热情也日益提高,Android 系统的使用人群正在急速提升, Android 应用程序的多样化对人们快速获取资讯以及方便人们的生活起着不可忽视的作用,近年来 Android 得到了社会更多的认同和应用,本文主要概述了Android 系统的体系结构,Android 应用程序的开发环境和用 JAVA 语言开发手机课程表提醒程序中的一些技术实现方法,这些技术包括:手机课程表提醒程序的用户界面设计,Service 的使用,SQLite 数据库的建立和存储 9。笔者将在文中对各个技术要点进行具体的阐述。关键字:And

4、roid; SQLite;Preference;Service1 前言Android 在英文中愿意是机器人,Google 在 2007 年 11 月 5 日宣布其基于 Linux 平台的开源手机操作系统后,使用其作为该操作系统的名称。Android 号称是首个为移动终端打造的真正开放和完整的移动软件。从软件分层的角度来开,Android 平台由应用程序、应用程序框架、Android 运行时、库、Linux 内核 5 部分构成。采用 Linux 内核是 Android 平台开放性的基础,Linux 内核层为我们在软件层和硬件层间建立了一个抽象层,使得应用程序开发人员无需关心硬件细节,但是如果想要

5、 Android 平台运行到自己的硬件平台上就必须对 Linux 内核层进行修改,通常要做的就是为自己的硬件编写驱动,并且可以自由设计用户操作界面 10。从目前的发展形势来看 Android 系统因为它的开源性得到了很多移动设备生产商以及网络运营商的青睐。2 Android 系统及开发环境的安装与配置2.1 Android 的由来 Android 来源于硅谷著名的极客 Andy Rubin 建立的 Android 公司,Rubin 的最初目标是想把 Android 打造成一个可以对任何软件设计人员开放的移动终端平台。很快这个公司便得到了青睐,很多人表示打算买下他的公司。Rubin 想 Goog

6、le 的创始人之一拉里佩奇提出合伙的意向后,Google 就抢先把他的公司买下。并于 2007 年 11 月 5日宣布与包括摩托罗拉、HTC、LG、三星等 33 家手机厂商、手机芯片提供商、软硬件供货商、移动运营商联合组成开放手机联盟(Open Handset Alliance) ,并发布了名为 Android 的开放手机软件平台 7。2.2 Android 系统的优点与其他手机操作系统相比,Android 有 4 个无可比拟的优点: 开放性:Android 系统同时包含了底层操作系统以及移动电话所需的全部软件,不存在专有权障碍,开发平台允许任何移动终端厂商加入到 Android 联盟中来,并

7、允许不同厂商可以根据自己的需求对平台进行定制和扩展,无需任何授权许可费用; 所有应用程序平等:Android 系统中,系统核心应用和第三方应用都是完全平等的,用户可以将手机中的任意应用程序替换成所需的其他应用程序; 应用程序间无界限:开发人员可以吧 Web 上的数据与本地的日历、联系人、位置信息结合起来,应用程序还可声明它们可供其他程序使用; 快速方便的应用程序开发:Android 平台为开发人员童工了大量的实用库及工具,可以让开发人员快速的创建自己的应用 3。22.3 Android 系统的现状及展望Android 系统目前的发展十分迅速,在国内外,Android 都有成熟的消费者,Andr

8、oid 社区也十分红火,全球各大厂商和运营商也纷纷加入了 Android 的阵营,包括美国的摩托罗拉(MOTOROLA) 、韩国的三星(SAMSUNG) 、英国的索尼爱立信(Sony Ericsson) 、中国台湾 HTC、中国移动、中国联通、中兴通讯、华为通讯、联想等大企业。除开手机外,各大厂家也陆续推出了采用 Android 系统的 MID(Mobile Internet Devices)产品。根据 ComScore 公司 11 年第一季度的移动互联网市场研究报告中显示,11 年 2 月份 Android 的市场份额增 33%,位居榜首,RIM 、苹果分别以28.9%和 25.2%的移动市

9、场占有率紧随其后 11,如图 1:图 1 各厂商移动互联网市场占有率虽然 Android 初出茅庐,论个头还不如苹果、RIM ,开放这个趋势的力量使得这颗的新星足够明亮,有媒体预测 Android 的市场占有率将在 2012 年达到 50%并在 2016年确定其移动互联网市场的霸主地位,就目前 Android 的发展趋势来看,这并非一个不可能完成的任务。2.4 开发环境的安装与配置2.4.1 操作系统及准备工作Android 的开发环境在操作系统上并没有太大的限制,它可以使用 Windows XP 及其以上版本、MAC OS、Linux 等操作系统,在该程序的开发中,我选择了 Windows

10、7作为开发操作系统。Android 是以 Java 语言作为开发语言,官方推荐使用 Eclipse 作为开发软件,在搭建开发环境前必须准备 JDK、Eclipse、Android SDK 三个软件,JDK与 Eclipse 都可以在其官方网站上下载到其最新版本,Android SDK 则需要通过Android SDK Setup 来下载安装 1。2.4.2 开发环境的安装1) 安装 JAVA 运行环境在“http:/ 下载和安装 Eclipse在 Eclipse 的官方网站“http:/www.eclipse.org/downloads”下载最新版本的“Eclipse IDE for Java

11、 Developers”下载完毕后解压缩即可使用,无需安装。3) 安装 Android SDKAndroid SDK 因为原下载地址失效,只能通过 Android SDK Setup 这个工具来下载安装,此工具可以在通过“http:/ Setup.exe”即可自动检测下载 Android SDK,如图 2 所示:图 2 Android SDK Setup4) 安装 Eclipse 的 Android 插件使用 Eclipse 作为开发开发工具必须要安装 Android Development Tools(ADT)的外挂,其安装步骤如下: 启动 Eclipse 后,选择“Help ”“Insta

12、ll New Software”打开“Install”窗口; 点击窗口中的“Add”按钮,在“Add Repository”窗口中输入如图 3 所示信息:4图 3 Add Reponsitory 点击 OK 后, “Install”列表中会多出一项“Developer Tools”,勾选后点击“Next”既开始下载 ADT,下载完成后按软件提示操作即可完成安装 ADT。如图 4 所示:图 4 安装 ADT5) 应用 SDK 到 Eclipse选择“Window ”“Preferences”在“Preferences”窗口的左边选中“Android”,在右边点击“Browse”选择 Androi

13、d SDK 所在目录作为 SDK Location,如图 5 所示:5图 5 应用 SDK 到 Eclipse3 系统分析3.1 可行性分析在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,Android 手机凭借其优秀的系统性能以及良好的用户体验迅速得到了高校师生的青睐。在高校中,上课并不像高中时期有固定的教室和固定的时间,高校课程种类繁多,并且上课地点和时间都不固定,一周内极少会出现重复课程,所以要将课程表完整的记忆下来是一项很艰难的事情,很多同学不得不随身携带一张课表来防止遗忘上课,但是还是不能完全避免该问题的发生。基于这些问题,有必要设计一款具有课程

14、提醒功能的手机课表程序,配合上可以让用户自定义上课时间以及地点的功能,从而避免遗忘上课的事情出现。3.2 需求分析手机电子课表在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由设置校历,重复提醒等功能。经过对周边同学的调查研究,普遍认为这款软件方便实用,其主要功能如下: 课程到点闹铃提示; 自定义设置每天课程数量; 设置校历; 能依据校历区分课程单双周; 能依据校历设置学习计划提醒;4 系统设计4.1 概要设计从程序流程来分,用户在第一次进入程序时会进入设置界面,设置一些基本的配置信息以方便数据库管理,然后进入添加课程界面,进行添加课程操作。添加课程除了 UI 展示以外其

15、他的方式都是在操作数据库,在程序中使用 SQLite 以实现校历功能,按天查询功能,单双周功能等。在程序主界面使用用 list 展示记录,从数据表中按当天的时间读取出当天的记录,得到当天每节课的课程 id,再通过课程 id 从 class 表中查询出对应了课程信息,并在主界面中显示。程序的配置信息主要存在 preference 中,该信息在数据显示时读取必要的配置信息,比如读取本学期的第一周星期一是哪一天,用户选择第几周星期几时就可以计算出当6天的日期,再通过日期在数据表表中查询。添加学习计划模块也是采用 preference 中的键值对的方式存储数据,键为计划提醒的时间,值为计划的提示信息。

16、这样在 service中监听系统时间变化,每分钟会收到一个当时时间的消息,通过转换成时间字符串在preference 中去查询,如果能得到计划的值,则说明在此时间有计划,弹出提示信息并播放音乐,用来实现计划提醒和上课提醒功能,如图 6 所示:图 6 程序数据流图4.2 数据存储本程序数据存取方面主要用到了 SQLite 数据库和 Preference 存储机制。其中,SQLite 主要用来存储课程信息,Preference 则主要用来存储配置信息。4.2.1 SQLiteSQLite 数据库是 Android 系统中非常重要的数据存储方法,它是 Android 系统唯一支持的数据库类型,也是

17、Android 应用程序进行持久化存储的三种方式之一。 SQLite 数据库是 SQL 数据库的简化版,支持大部分 SQL 操作。SQLite 是 Android 应用程序中非常常用的一种数据存储手段。 44.2.1.1 SQLite 数据库的创建创建数据库主要用到了 DBHelper 类,该类继承了 SQLiteOpenHelper 类,实现了数据库、数据表的创建。具体方法如下:private static final String DB_NAME = “classschedule.db“;public DBHelper(Context context)super(context, DB_N

18、AME, null, 1);/在 dbhelper 的构造函数中调用父类构造函数,传入数据库名,创建数据库用户主界面Preference SQLite用户设置界面 课程添加界面计划添加界面 Service用户设置信息计划信息 提示时间课程信息课程信息课程时间课程时间74.2.1.2 SQLite 数据表的设计根据对本程序的需求分析,本程序一共需要用到两张数据表,分别为 Class 表和term 表。Class 表主要用来存储已经添加的课程,用户每添加一个课程就会在该表中新增一条记录,并且自动生成一个唯一的 id,用以区别各个课程,同样名称但是分成两次添加的课程会被认为是不同的课程,这样设计的目

19、的主要是为了方便查询。该表结构设计如下:_id: 已添加的课程 id,课程表主键,用来查找课程,获取课程信息_time: 第一节课的开始时间;_startnum: 第一节课的编号;_endnum: 最后一节课的编号;_name: 课程名称;_address: 上课地点;term 表 主要用来记录整个学期的课程。该表结构如下:_date: 日期;_weeknum:周数;_one: 第一节课的 id;_two: 第二节课的 id;_three: 第三节课的 id;_four: 第四节课的 id;_five: 第五节课的 id;_six: 第六节课的 id;_sevn: 第七节课的 id;_eigh

20、t: 第八节课的 id;_nine: 第九节课的 id;_ten: 第十节课的 id;8该数据库设计初衷为保存整个学期的课程,这样实现整个学期的课程排布,包括数据的存储,课程的提醒和查询都比较方便。开始的两列包括日期和周数,从定义的本学期的第一周的星期一开始计算,完全实现自动生成,用户只需要通过选择周数和星期就可以生成日期。表中从第三列开始保存的为课表的 id,通过该 id 可以在 class 表中查询出对应的课程内容。4.2.2 PreferencePreference 是一种轻量级的数据存储机制,它将一些简单数据类型的数据以键值对的形式存储在程序的 Preference 目录中。在 And

21、roid 平台上,可以通过一个 Context 对象调用 getSharedPreferences(String name,int mode)方法传入 Preferences 文件名和打开模式,就可以获得一个 Sharedpreferences 的对象 4。4.3 程序中的主要类4.3.1 ClassScheule 类该类为整个应用的主 Activity, 显示课程表的主界面 2。其主要方法如下: onCreate:Activity 主要重写方法之一,实现程序初始化和 UI 展示; onResume:Activity 重写方法之一,实现在唤醒 Activity 时刷新界面; onCreateO

22、ptionMenu:实现 Option 菜单的创建; onMenuItemSeleted:实现菜单项的点击事件响应; getDayClassRecord:从数据库中获取当天的课程信息; UpdateUI: 在数据发生改变时刷新 UI; removeClass: 从数据库中删除课程;界面设计方面通过 RelativeLayout 实现布局,使用了 TextView,ImageButton 课程列表通过 ListView 实现 UI 展示。该类通过继承 BaseAdapter 还实现了一个名为MyListAdapter 的内部类,用来显示 ListView 中的数据并实现对 ListView 上

23、ImageView控件点击的统一响应 5。4.3.2 Addclass 类和 AddPlan 类AddClass 类为实现添加课程界面的 Activity,主要实现由用户选择和输入课程信息,并将所有的课程信息添加到数据库中。主要方法如下: onCreate: 初始化 UI 控件; SetDefaultData: 设置初始化时默认的数据; SaveData: 将添加的课程保存进数据库中; gettimeString: 将输入的课程信息转换成对应的时间字符串返回;AddPlan 类实现添加计划界面,并将添加的数据存入 Preference 中。主要方法如下: onCreate: 实现初始化 UI

24、控件; onClick: 实现 button 点击事件的响应; setPlan:实现添加计划到 preference 中;94.3.3 DBDataManager 类该类为自定义的重要的数据库处理类,用来管理数据库,对数据库的所有操作都封装在这个类中,实现数据封装。将数据操作和 UI 操作隔离开来。主要方法如下: AddClass: 给 class 表添加记录;db.insert(CLASS_TABLE, null, values);/insert 方法插入一条数据 deleteClass:删除一条 class 记录;db.delete(CLASS_TABLE, “_id = “ + clas

25、sid, null);/delete 方法删除一条数据 initTerm:给 Term 表添加初始数据 addClassToterm:将添加的课程信息正确添加进 term 表中 deleteClassfromterm:从 term 表中删除一次添加的 class 数据 getdayClassRecord: 获得一天课程记录4.3.4 AlarmService 类该类实现定时服务,service 监听系统时间变化,当系统时间和设置的时间相等时,弹出提示信息,并播放音乐,实现提醒功能。主要方法如下:onReceive:监听系统时间变化,实现弹出提示信息和音乐播放,以下代码用来监听系统时间 8:Ca

26、lendar mCalendar = Calendar.getInstance(Locale.CHINA);String dateString = mCalendar.get(Calendar.YEAR) + “-“+ (mCalendar.get(Calendar.MONTH) + 1) + “-“+ mCalendar.get(Calendar.DAY_OF_MONTH) + “-“+ mCalendar.get(Calendar.HOUR_OF_DAY) + “:“+ mCalendar.get(Calendar.MINUTE); 以下代码得到 preference,如果没有对应记录则

27、planstring 会等于 null,如果不等于null 就执行提醒。SharedPreferences preference = context.getSharedPreferences(“ClassSchedule“,Context.MODE_PRIVATE);String planString = preference.getString(dateString, null);preference 中存计划是就是以提醒时间为键值,当得到当前时间等于键值时就执行提醒,启动 MusicService 这个服务player = MediaPlayer.create(this, R.raw.sh

28、angkele);/创建播放器player.start();/开始播放105 系统实现在完成系统设计以后,即可在 Android 虚拟机中运行程序,运行效果如下:软件设置界面,该界面为用户第一次进入程序所显示的界面,往后的使用中,用户可以通过“Menu”“设置”的操作步骤来进入该界面。在此界面,用户可以设置第一周开始时间,每学期的周数以及课程数量和持续时间,如图 7 所示:图 7 软件设置界面设置本学期的第一周的周一,该界面由点击软件设置界面中的“本学期第一周的周一”后的日期弹出,在此界面可以设置当前学期校历的第一周的初始时间,如图 8所示:11图 8 设置本学期的第一周的周一程序主界面,该界

29、面是用户非第一次进入程序所显示的界面,此界面主要显示用户所添加的课程的信息,可以通过删除按钮来实现删除课程的操作,如图 9 所示:图 9 程序主界面12添加课程界面,该界面通过“Menu”“添加课程”操作进入,在该界面用户可以根据自己的需求来添加课程,如图 10 所示:图 10 添加课程添加计划界面,该界面通过“Menu”“添加计划”操作进入,在此界面用户可以添加一个计划提醒,如图 11 所示:图 11 添加计划6 结论本文通过对一款基于 Android 平台的手机课程表提醒程序的实例开发,较为详细的阐述了 Android 系统的数据存储方式,以及用户界面的设计,该过程包括了 SQLite数据

30、库的设计与创建,用户界面的创建。在此过程中,除使用 DBDataManager 类对数据库执行操作外,还一并使用了 preference 存储课程的时间信息,以方便提醒模块查询,另外程序还通过 MusicService 调用 MediaPlayer 来播放音乐提示。通过对 Android 界面设计的布局方式的掌握,SQLite 数据库难点的克服,以及 preference 存储方式的熟悉,程序得以顺利开发完成。13致 谢:非常感谢王以杰老师在我毕业论文写作及设计阶段对我的悉心指导,从最初的定题,到资料收集,到写作、修改、定稿,他给了我耐心的指导和无私的帮助。为了指导我们的毕业论文,他放弃了自己

31、的休息时间,这种无私奉献的敬业精神令人钦佩,在此我向他表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助!参考文献1Jerome(J.F.)DiMarzio.Android 程序员指南MUSA:McGraw-Hill 公司, 2008, 2135.2靳岩,姚尚朗Google Android 开发入门与实践M 北京:人民邮电出版社, 2009,3759.3杨丰盛Android 应用开发揭秘M北京:机械工业出版社,2010,44109,1517.4E2EColud 工作室深入浅出 Google AndroidM北京:人民邮电出版社,2009,178194.5余志龙,陈昱

32、勋,郑明杰,陈小凤,郭秩均Google Android SDK 开发范例大全M北京:人民邮电出版社,2009,4253.6 印旻,王行言. Java 语言与面向对象程序设计M(第 2 版).北京:清华大学出版社,2007,4457.7 Jeff Friesen.Learn Java for Android DevelopmentM.USA:Apress.2010,221.8 Marziah Karch.Android for work:productivity dor professionalsM.USA:Apress.2010,97114.9张仕成. 基于 Google Android 平台

33、的应用程序开发与研究J .电脑知识与技术.2009,28:54-66.10 陈璟,陈平华,李文亮. Android 内核分析J .现代计算机(专业版).2009,11:32-44.11财经日报.二月份谷歌 Android 移动市场占有率 33%扩大优势 EB/OL.http:/.hk/a-20110405-113764/uygtrMobile Phone Timetable Reminder Program Based on Android Platform14Abstract: With the development of wireless mobile devices, mobile p

34、hones have been increasingly popular, and the introduction of Android system has promoted the development of phones into a new area. Some of the worlds leading mobile device manufacturers have also shown great enthusiasm for the exploitation of Android intelligent machines. Beside, diversified Andro

35、id application programs play a significant role in peoples quick access to information and facilitation of peoples life. Therefore, customers of this system are rapidly increasing In recent years. This paper outlines the architecture of Android system, its development environment and some technical

36、implementation of phone timetable reminder program based on JAVA language. These technologies include the design of user interface of phone timetable reminder program, system calls of API, and establishment and storage of SQLite database. The author will elaborate each technological point specifically in this paper.Key Words:Android;SQLite

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报