基于Android系统的移动课程表的设计与实现
2014-05-14贾树文杨婷婷
贾树文 杨婷婷
摘 要:随着智能手机的快速普及,智能手机操作系统市场风生水起。为了方便在校学生可以随时随地查看课程,一种高效的办法就是将课程表做成应用程序拓展到用户的终端设备上,并且提供一些辅助功能。因此,智能手机应用软件及其需要的服务将有广阔的开发前景。
关键词:Android;智能手机平台;课程表;开源
中图分类号:TP393 文献标志码:A 文章编号:1673-8454(2014)06-0082-03
一、引言
在智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性的体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图像组件、多媒体支持功能及其强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。
本文在分析讨论Android手机软件开发技术原理的基础上,设计并实现了能为用户提供更好的基于Android平台的课程表。
二、系统需求分析
本应用是一款简单的Android课程表,首先课表支持查看课程的功能,因为数据比较小,采用了XML存储模式。其次,课表具有修改课程的功能,便于课程改变的应对,以及清空课表,为循环使用提供方便。在Title项设计了点击查询当日天气的功能。由此可以得到功能图1,程序流程图2。
三、系统功能模块概述
系统分为4个功能:
1.显示主界面
主界面显示各个按钮,以及动态显示本周的课程,主界面将Title隐藏了起来,取而代之的是自己设计的Title,将他们整合起来。另外,主界面要负责将XML数据调入内存中。
2.修改课程功能
修改课程功能,通过用户点击课程后,弹出一个Dilog,用户可以在Dilog中修改本课程的上课时间、代课老师、课程名称以及备注信息。然后将其重新回写到XML文件中,方便下次启动时,课程被永久修改。
3.清空课表功能
清空课表功能,当用户点击了清空课表,将清除所有科目的上课信息属性,课表将被置空。用户可以重新编辑课表。
4.天气查询功能
天气查询功能放置在Title项中,节省主界面的空间,Title和主界面搭配在一起,设置按钮监听,当Title按钮被点击时,从网上获取今日的天气情况,并显示在Title栏中。
四、实现技术及工具
Android提供了免费且跨平台的整合开发环境。采用JAVA语言结合Android编程的规则来编写程序。开发Android应用,需要以下硬件及软件支持:
1.操作系统。Windows XP ,Mac OS X(一个基于UNIX核心的系统)和Linux三种方式,本文使用了Windows XP的操作系统来开发。
2.JDK 5 或者 5以上版本。JDK是JAVA的开发环境,必须有了JAVA的开发环境才能开发JAVA程序。这里采用了JDK 7这个版本。
3.Eclipse IDE ,一个多用途的开发工具平台。Eclipse功能十分强大,可搭载其他扩成套件来开发其他项目,如网站开发、ERP开发等。Eclipse版本采用了3.7.0版本。
4.ADT, 一款基于Eclipse的扩充套件。
5.Android SDK,Android程序开发套件,包含了Android手机的模拟器,有了它你就可以在虚拟机中查看调试程序,方便很多。
五、应用程序设计
1.数据存储结构设计
数据采用了面向对象的思想去存储数据,因为数据量比较小,采用了XML文件来存储数据。数据以day标签为每一个数据对象,每一个day标签有多个属性,用来记录数据。数据的属性有Teacher、startTime、endTime、index、weekday、valuetext、classname。当程序启动时,把属性封装成对象,完成操作。
2.主视图设计
Android代码的编写,首先编写主界面的布局文件,每一个Activity文件会对应一个Layout的布局文件,由于在Android中表格布局无法分列,布局起来十分困难,而线性布局也可以做成表格,所以,最终选择了用线性布局来布局主视图。布局分为两大块,在一个总线性布局中首先套用了两个小的线性布局,如图3所示。
左侧的小线性布局放置不同的星期按钮,通过点击按钮来修改右边布局中对应星期的课程。右边的布局中,套用一个表格布局来约束各空间的比例,分出来每一行来存放和显示不同的课程、时间信息。再配以背景的美化,预期效果与最终效果对比如图4所示。
至此,主视图的设计完成,再在Activity中配置相应按钮的动作即可。在主视图创建时,程序读取xml数据载入视图中对应的控件,点击左侧的按钮会改变右侧控件的属性,从而查看每天的课程。
3.修改功能设计
修改功能设计时,需要另起一个Activity,与之对应需要另外建立一个Layout的布局文件,这里采用了Dilog的窗口。Activity的相互启动,需要用到Intent(意图)模式,意图中可以存放需要传递的参数。当点击要修改的课程时,程序会触发动作,来生成一个Dilog完成修改操作。根据要修改的属性,Dilog也采用了线性布局,其中包含开始时间、结束时间、课程名称、教师姓名,以及这节课需要的一些备注信息等属性。除了两个时间以外,其他的属性均使用了文本编辑条,而开始时间和结束时间,为了得到更好的用户体验采用了Android提供的Timepicker控件,它是一个时间选择的控件。当控件的时间发生改变,它会调用相应的OnTimeChangedListener()函数,在这里可以接收得到时间参数,并做相应的处理。endprint
4.天气查询功能设计
天气查询功能,为了节约主界面的空间,将其放在自定义的Title中。自定义的Title含有3个控件,一个用于显示接收的天气信息,一个是Spinner控件,用于选择需要查询的城市,以及一个确定按钮。需要注意的是,Title无法和主界面的线程跑在一起,必须要新起一个线程来处理数据,也就是说,整个应用启动的时候,有2个线程同时在跑,一个是主界面的线程,一个是Title线程用来监听是否触发了Title的操作。应用程序的界面是由2个界面构成。而线程之间传数据,也必须用一定的格式来传,Title线程的数据,在主线程中无法直接调用,必须用特定的方式获取。Spinner空间类似于一个listview控件,不同的是,它将弹出一个Dilog用来选取对应的Item。
整个Title的显示效果如图5所示。
图6是点击查询天气按钮后显示的效果。
数据取自www.webxml.com.cn网站,这个网站免费提供一些信息查询的功能,返回的方式都以XML文件的格式返回,接收到返回文件后,只需自己解析读取所需内容即可。
六、应用程序测试
1.视图功能测试
测试环境首先在搭建环境中的虚拟机进行测试,所用虚拟机版本为API 15,即Android 4.0.3的版本,屏幕尺寸为QVGA。测试主视图整体显示效果正常;点击不同星期,显示不同课程,显示正常;点击Title可以切换不同的城市查询天气,显示正常。
2.改课及清空课表功能测试
修改课程功能测试,显示效果正常;测试清空课表功能,课表已被清空成功,功能测试正常。
3.实体机测试
实体机测试选用了两部不同品牌的手机,分别为摩托罗拉ME525,操作系统为Android 4.0,屏幕尺寸3.7英寸,像素为854 x480;和联想A790e,操作系统为Android 2.3.0,屏幕尺寸4英寸,像素800 x 480。经过多次实体机测试,显示功能正常,修改清空功能正常,查询天气功能正常,无发现BUG点。具体如图7所示。
七、结束语
随着更多大规模的公司加入Android市场,应用程序会越来越多,涉及方方面面,这样势必会造成应用程序的逐渐饱和。在这种情况下,应用程序会更多的将目光放在用户体验上,一款应用程序的大面积普及,势必建立在良好的用户体验上。
简洁、易懂、方便操作将会提升应用程序的普及率。本文介绍的Android移动课程表还有许多可扩展功能,它可以和学校教务处结合在一起,从而拓展出更多的实用功能,例如查看喜爱教师的课程,从而可以自由的安排上课时间,查询同学上课安排等等一系列更加生活化的功能。
通过上述Android应用程序的编写,可以切身了解Android开发的各种结构步骤和Android的系统架构模式,从而对Android的软件开发得出如下收获:
Android应用程序开发十分方便易学,在开源的基础上,设计者有了天马行空的设计方式,不会拘泥于固定模式的开发,有助于语言的进步。Android提供的丰富的API使得开发者开发应用程序不用再考虑下层业务,开发起来高效快捷。
Android 应用程序的开发对于有编程经验的人来说十分易懂,从而带动了开发市场的活跃。加之其跨平台的兼容性,开发的便捷性,大大降低了程序对开发人员人数的依赖性,能够节省大量的成本。
而且,Android开发的应用安装在独立设备之上,降低了像Web这样的多设备连接处理时产生错误的可能性,避免了许多不必要的麻烦。多设备连接更多的会出现预测不到的意外情况,而独立设备方便携带,不会产生多设备连接时的信号冲突。搭配更新周期短的硬件设备,Android应用将会占据市场的核心地位。
参考文献:
[1]赵朋飞.智能手机操作系统Google Android分析[J].科技视界,2011(8).
[2]刘平.Android手机访问服务器的一种数据交互方法[J].电子设计工程,2010(9):96-102.
[3]李佐彬等.Android开发入门与实战体验(附光盘1张)[M].北京:机械工业出版社,2010.
[4]韩超,梁泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2011.
(编辑:鲁利瑞)endprint