Android平台下校园信息管理系统客户端的设计与实现-(完整版)_第1页
Android平台下校园信息管理系统客户端的设计与实现-(完整版)_第2页
Android平台下校园信息管理系统客户端的设计与实现-(完整版)_第3页
Android平台下校园信息管理系统客户端的设计与实现-(完整版)_第4页
Android平台下校园信息管理系统客户端的设计与实现-(完整版)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android平台下校园信息管理系统客户端的设计与实现_(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑欢迎下载)

Android平台下校园信息管理系统客户端的设计与实现_(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑欢迎下载)

毕业论文

课题名称:校园信息管理平台下的Android客户端

的设计与实现

学号:

班级:

姓名:

学院:

专业:

指导老师:

摘要伴随着3G时代的到来,移动终端所能完成的功能在各行各业日益广泛和深

I

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端入,移动便携的概念早已深入人心,让人们更加的依赖移动终端。本课题来源于校园内对信息管理系统在移动终端便捷使用的需求。传统学校信息管理系统是采取PC机通过局域网连接服务器端的形式进行操作,缺少对移动端的支持,学生无法随时随地使用该系统。因此本应用基于Android移动平台,让学生可以通过Android移动终端更方便快捷地使用该系统。

学生在XX可以通过浏览器登录Mysise查阅自己个人信息、课程表等内容,本系统是通过Android移动客户端达到同样的效果。

本系统是基于Android平台开发的一个XX校园信息管理系统,主要完成软件的整体设计以及各个功能的实现。在Windows操作系统平台下,搭载Android_2.3.3_SDK开发环境,采用JAVA语言作为主要开发语言,使用Eclipse完成后台代码的编写,使用JSoup技术解析网页获取信息数据,运用多线程技术保证程序性能,结合Photoshop为界面UI美化,从而完成的一个Android客户端。

本论文是以系统的开发为线,介绍了此系统的设计与实现过程,从软件设计的角度对系统的理论基础、系统概要设计以及系统具体实现进行了详细研究。整个过程严格遵循了软件工程的思想和UI视觉享受的理念,保证了系统的实用价值。关键词:Android;Java;JSoup;移动终端

II

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端AbstractWiththeageof3Giscoming,thefunctionsthatmobileshavebecomemorepopularandwidespread.Peoplehadgotusedtotheconvenienceofmobilesandbecomemorerelyonit.Ourprojectisdependontheexistentcampusinformation

managesystem‘MySise’.TheoriginalsystemisbasedonWindowsoperatingsystem,PCistheonlyplatformwecanusedtologinintothesystem.Studentscouldnotusethe

systemeverywhere.SowemakethesoftwarethatrunsonAndroidplatform,letstudentsuse‘MySise’ontheirAndroidPhoneseasily.

Studentscanlogininto‘MySise’systemandchecktheirpersonalinformation,

curriculumcontentsandsoon.OursystemhasthesamefunctionsbutbasedonAndroid.

OursystemisacampusinformationmanagesystemthatrelyonAndroidplatform.Webasicallyfinishedthestructuredesignandfunctions.IntheWindowsoperatingsystemplatform,withtheAndroid_2.3.3_SDKdevelopmentenvironment,usingJAVAlanguageasthemaindevelopmentlanguage,useEclipsetofinishwriting,usingJSouptechnologytoanalysisthewebpageinformation,theuseofmulti-threadingtechnologytoensuretheprogramperformance,usePhotoshopastheUIlandscapingtool,sothatwecompletethesystemonAndroid.

Thisarticleintroducesourdesignofthesystemandtheprocessingofmakingit

happen.Bytheviewofsoftwaredesign,wehaddonedozensofresearchonthebasictheory,thesummaryofthedesign,andtheactualprocessing.ThewholeprocesshadfollowedtherulesofsoftwareengineeringandUIvisualsatisfactionsothatensurethepragmaticvalueofthesystem.

KeyWords:Android;Java;JSoup;Mobiles

III

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

目录

前言VI

1绪论1

1.1项目背景1

1.2Mysise系统简介1

1.3系统的开发意义1

1.4

2课题相关知识介绍3

2.1Android平台介绍3

2.1.1Android系统简介3

2.1.2Android系统的特点3

2.2JSoup简介4

2.3开发工具的选用4

2.3.1Eclipse简介4

2.3.2Photoshop简介4

2.4系统运行环境的搭建5

3系统需求分析6

3.1系统设计的总体规则6

3.2可行性分析6

3.3系统运行环境需求7

3.4用户需求分析7

3.5系统的设计目标8

3.6用例分析与建模8

3.6.1用例1登录8

3.6.2用例2主菜单9

3.6.3用例3查看个人信息10

3.6.4用例4查看课程表信息10

3.6.5用例5查看考试时间表11

3.6.6用例6查看考勤信息11

4系统的功能模块设计13

4.1Mysise系统功能结构图13

4.2系统的功能分析与要求13

4.3系统功能模块的设计14

4.3.1个人信息模块14

4.3.2课程信息模块14

4.3.3考试时间模块15

4.3.4考勤信息模块15

4.4系统用例图16

5系统具体实现—逻辑处理模块实现18

5.1项目结构示意图18

5.2多线程技术在项目上的应用18IV

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

5.3主菜单页面逻辑处理19

5.4个人信息页面逻辑处理22

5.5课程表页面逻辑处理26

5.6考试时间页面逻辑处理29

5.7考勤信息页面逻辑处理31

6系统测试34

6.1使用DDMS34

6.2系统测试34

6.2.1测试用例34

6.2.2单元测试36

6.2.3非功能性测试36

设计总结37

参考文献38

致谢39V

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

前言

现在已经成为了人们生活中不可或缺的移动设备,没有会让人觉得寸步难行。不仅仅拥有传统的打、发短信等基本的功能,而基于智能强大的信息处理能力和可扩展能力,以及3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。

目前,得益于谷歌公司的开源策略,拥有众多优点的Android系统发展迅速,各大产商推出大量搭载Android系统的,Android已经占据了市场的绝大份额。在未来几年必将大放异彩,将极大的推动整个操作系统甚至是互联网乃至软件行业的发展。

与此同时,开源的Android系统让程序员独立开发应用软件成为可能。通过学习与研究,可以将PC电脑上的大量应用移植到Android系统上。而学校的信息管理系统——Mysise系统,目前缺少对客户端的支持,基于此,开发一个Mysise系统Android客户端这样的想法便油然而生。

综上所述,Android系统是移动平台发展的大势所趋,未来将在移动领域扮演一个时代重要的角色。所以,对Android平台进行相关研究并熟悉它是很有必要的,通过了解软件行业,进而把握未来移动互联网的发展趋势。同时可以更好的提升目前掌握的软件开发专业技能,开发出符合社会发展需求的应用软件,从而让生活更加便捷。

VI

1绪论

1.1项目背景

当今社会的生活节奏越来越快,人们对提出的要求也越来越高,由于市场发展迅速,操作系统也出现了不同种类,现在市场上主要有四种操作系统,分别是Windowsmobile,Symbian,Iphoneos以及谷歌的Android操作系统。其中,拥有开放源代码优势的Android系统有着最大的发展前景。

那么能否在上拥有自己编写的校园信息管理系统呢?答案是肯定的,谷歌Android系统就能做到。

1.2Mysise系统简介

Mysise系统,是为XX大学定制的校园信息管理系统,主要包含有教师使用的管理系统与学生使用的信息系统,本项目主要研究的是学生使用的信息管理系统部分。

学生信息管理系统,每个学生都使用唯一的学号作为登录帐号,登录系统后可以查看自己的各种信息或者做需要的操作,主要功能模块有:个人信息、课程表、考试时间表、考勤信息„„等等。可以说,通过网络,学生就可以方便的在客户端上看到自己想要的校园信息。

然而,目前Mysise系统仅提供PC端Windows操作系统的客户端支持。

1.3系统的开发意义

目前Mysise系统缺少在移动设备上的支持,显然已经不能满足当代大学生高效学习便捷生活的需求了。移动设备硬件的发展,使得也可以完成更多的功能需求,Android系统的出现,更是让进入大屏触屏时代,在很多日常应用上,功能已经相当接近甚至替代PC机。而开源的Android系统为开发者移植PC应用程序提供了技术上的支持,因此,在PC上的Mysise系统有理由也有可能被移植到Android系统的移动设备上来。

1

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端本课题是研究如何开发一款Android平台上的Mysise系统客户端,它将拥有同PC端基本一致的基础功能,同步的信息数据,界面简洁美观,操作简单方便。能为XX学生使用该系统带来更多的方便与快捷,也使得学校的教学设备的提供更为全面。

1.4

本人在本课题中承担后台逻辑处理模块的工作。

论文主要结构及内容如下:

第一章绪论,介绍项目背景,阐述项目开发的意义。

第二章相关知识介绍,介绍项目开发的相关技术与知识。

第三章系统需求分析,分析系统开发的各方面需求,为设计做准备。

第四章系统功能设计,介绍系统主要功能模块的设计。

第五章系统功能实现,介绍系统的后台逻辑处理模块的具体实现。

第六章系统测试,通过测试验收产品。

2

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

2课题相关知识介绍

2.1Android平台介绍

2.1.1Android系统简介

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源操作系统的名称。它包括操作系统、中间件、用户界面和应用程序——移动工作所需要的全部软件,而且不存在任何以往阻碍移动产业创新的专业权障碍。目前,最新版本为Android2.3Gingerbread(姜饼)和Android4.0IceCreamSandwich(冰激凌三明治)。

虽然Android是Google公司推出的产品,但更贴切的说法应该是开放联盟的产品。开放联盟是由大约30家公司组成的联盟,致力于将“更好的”和“开放的”推向市场。其网站上的一句话很好的阐述了这一点:“Android是本着成为第一个开放、完整、免费。专门针对移动设备开发的平台这一目标,完全从零开始创建的。”

2.1.2Android系统的特点

1、开放性。Google与开放联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动软件平台,在移动产业内形成一个开放式的生态系统。

2、应用程序无界限。Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。

3、应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。

4、应用程序可以轻松地嵌入网络组件。应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。

5、应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。

3

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

2.2JSoup简介

JSoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。由于JSoup良好的可扩展性API设计,开发者可以通过选择器的定义来开发出非常强大的HTML解析功能。JSoup是基于MIT协议发布的,可放心使用于商业项目。

JSoup的主要功能如下:

1.从一个URL,文件或字符串中解析HTML;

2.使用DOM或CSS选择器来查找、取出数据;

3.可操作HTML元素、属性、文本;

在无法得到学校信息管理系统的数据库数据的情况下,在JAVA编程语言中,使用JSoup来解析网页从而获取所需要的数据,成为了开发此系统必要的技术。

2.3开发工具的选用

2.3.1Eclipse简介

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。利用它我们可以在项目的编码、整合方面极大的提高工作效率,它是功能丰富的Java集成开发环境,包括了完备的编码、调试、测试和发布功能。

简而言之,通过配置Android必要的开发组件和插件,使用Java编程语言,Eclipse将完整支持Android程序的开发。

2.3.2Photoshop简介

Photoshop是平面图像处理业界霸主Adobe公司推出的跨越PC和MAC两界首屈一指的大型图像处理软件。它功能强大,操作界面友好,得到了广大第三方开发厂家的支持,从而也赢得了众多的用户的青睐。

4

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端Photoshop支持众多的图像格式,对图像的常见操作和变换做到了非常精细的程度,使得任何一款同类软件都无法望其颈背;它拥有异常丰富的插件(在Photoshop中叫滤镜),熟练后您自然能体会到“只有想不到,没有做不到”的境界。

2.4系统运行环境的搭建

1、安装Eclipse3.7:

Eclipse3.7是一款了绿色软件,下载后直接解压即可,第一次运行时会提示配置工作空间,我选择的路径是D:\Eclipse_Android_Workspace

2、安装JavaJDK:

JDK(JavaDevelopmentKit)是一切Java应用程序的基。Windows系统下,直接运行.exe文件安装,安装完成后,将安装路径下的bin文件夹路径配置到系统环境变中。

3、下载AndroidSDK:需要先下载Android在Windows平台上的的SDK,官方网站上下载最新2.3版本,解压后点击SDKManager.exe即可下载所需要的SDK版本。然后就要将AndroidSDK路径下的tools文件夹路径配置到系统环境变中。

4、安装Android开发插件ADT:

启动Eclipse,打开Help->SoftwareUpdates,选择AvailableSoftware标签,单击AddSite„,输入“://dl-ssl.google/android/eclipse/”。然后就能看到可安装的插件,看到有AndroidDevelopmentTools和AndroidDDMS,全勾选,install安装,成功,提示重启Eclipse。

5、配置AndroidSDK路径:

重启Eclipse后,点击菜单Window->Preference,打开配置窗口,在左边选中Android,在右边输入AndroidSDK的路径,点击OK即可。

6、创建AVD:为使Android应用程序可以在模拟器上运行,必须创建AVD。在Eclipse中选择Window->AVDManager,点击new,填入Name,选择Target的API,SDCard大小任意(推荐256M),选择分辨率为WVGA800(480*800)。点击CreateAVD即可完成创建AVD。

至此Android开发环境搭建完成。

5

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

3系统需求分析

3.1系统设计的总体规则

本项目的主要设计规则有:

简单性:在实现系统的功能的同时,尽量让平台操作简单,这是非常重要的。美观性:在实现系统的功能的同时,尽量提供给用户较高的视觉享受和操作体验。

针对性:该系统设计是XX信息管理系统的定向开发设计,所以具有专业突出和很强的针对性。

实用性:该系统能完成Mysise系统各个子板块的信息查看功能,具有良好的实用性。

3.2可行性分析

开发新系统的要求往往来自对原系统有更高的要求。由于原Mysise系统仅仅支持PC端的使用,而新系统则是针对移动端的支持,故而有开发的必要。

可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和理论知识得出以下五点的可行性分析:

(1)技术上的可行性。

由于选用的开发平台Android是一个开源的平台,这意味着开发者可以获取绝大部分的开源代码,并且Google提供了一套成熟又全面的API,对于系统的开发,基本上不存在较大技术难点。

(2)数据获取的可行性。

由于开发的系统是一个校园信息管理系统,因为必须存在一个学生信息的数据库。目前的情况将导致我们无法直接得到学校提供的数据库,而我们选用了另外一个方法。因为该系统与PC端的数据一致,而PC端的使用载体是浏览器,这样我们便可以在Android上使用JSoup技术解析网页而获取所需要的信息数据。6

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

(3)运行可行性。该系统需要搭建Android平台开发环境,使用AVD虚拟机,并且能正常连接网络,就可以正常运行。

(4)经济可行性:该平台设计只是作为本人的毕业设计,又因为本人的设计能力有限,其功能还不能完善,所以没有什么经济效益可谈。

(5)法律可行性:该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。

通过以上的可行性分析,我将在Android平台开发环境下,采用Java语言和Eclipse编程工具,对该系统进行研究开发。

3.3系统运行环境需求

1、开发者(PC端):

系统开发工具:Eclipse3.7

运行平台:WindowsXP/Windows7/Linux

运行环境:Javajdk-1.6、Android_2.3.3_SDK、ADT16.01

模拟器参数:Android2.3.3AVD(分辨率480*800、推荐内存256MB)

2、使用者(移动设备端):

移动终端系统需求:Android系统

移动终端硬件需求:屏幕分辨率480*800、CPU主频>=640MHz、运行内存

RAM>=256M、可用内存ROM>=64M

网络需求:WIFI/GSM/WCDMA/CDMA2000

3.4用户需求分析

本课题研究的校园信息管理系统——Mysise系统,主要面向的使用对象是XX大学XX软件学院在校大学生。

每位XX在校学生都拥有Mysise系统帐号(唯一的学号及密码),系统对于学生的学习及生活非常重要。大部分学生拥有Android系统智能或者平板电脑,且习惯使用移动设备来完成可能的日常应用,当然也渴望Mysise系统Android客户端来为其学习生活提供便捷。无论在教学区还是生活区,较好的网络覆盖为其使7

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端用网络应用提供了保障。

3.5系统的设计目标

本课题的设计目标是在Android平台上实现一个校园信息管理系统。要求该系统拥有美观的UI界面,供用户登录、查看信息使用,包括:查看个人信息、查看课程表、查看考试时间、查看考勤信息等功能。系统拥有快速的操作体验,代码编写使用了多线程技术,使得界面显示与网络连接、数据处理可以同时进行。系统信息数据来源取自PC端系统的网络,保证了准确与同步。

3.6用例分析与建模

3.6.1用例1登录

参与者:用户

前置条件:正确学号已经存在。

目的:进入系统

综述:

1.用户填写学号及密码

2.系统验证信息,将用户填写的信息传送到系统验证。

3.登录成功,显示主菜单信息。

替代过程:使用该系统的用户必须先登录,若登录失败,是由于客户输入的帐号或者密码错误,系统允许客户重新输入。

3.1登录模块用例图

8

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

3.2用户登录流程图

3.6.2用例2主菜单

前置条件:登录成功。

参与者:用户

目的:让用户选择要执行的功能

综述:本界面设置4个功能按钮,让用户选择要执行的功能,随后执行响应的操作。

代替过程:如果用户注销登录,则进入用例1。

9

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

3.3主菜单功能用例图

3.6.3用例3查看个人信息

前置条件:于用例2选择了个人信息按钮。

参与者:用户

目的:让用户查看个人信息

综述:

1.查看基本信息:用户进入此功能页面能看到个人基本信息。

2.查看必修课信息:用户进入此功能页面能看到必修课信息。

3.查看选修课信息:用户进入此功能页面能看到选修课信息。

代替过程:

1.该界面下方设置3个功能按钮,可选择查看需要的信息。

2.如果用户返回,则进入用例2。

3.4个人信息功能用例图

3.6.4用例4查看课程表信息

前置条件:于用例2选择了课程表按钮。

参与者:用户

目的:让用户查看课程表信息

综述:查看当天课程表信息

代替过程:

10

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

1.该界面下方设置5个功能按钮,可选择查看星期一到星期五的课程信息。

2.如果用户返回,则进入用例2。

3.5课程信息功能用例图

3.6.5用例5查看考试时间表

前置条件:于用例2选择了考试时间按钮。

参与者:用户

目的:让用户查看考试时间表

综述:查看目前的考试时间安排

代替过程:如果用户返回,则进入用例2。

3.6考试时间功能用例图

3.6.6用例6查看考勤信息

11

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

前置条件:于用例2选择了考勤信息按钮。

参与者:用户

目的:让用户查看考勤信息

综述:查看当前学年学期的考勤信息

代替过程:如果用户返回,则进入用例2。

3.7考勤信息功能用例图

12

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

4系统的功能模块设计

4.1Mysise系统功能结构图

4.1系统功能结构示意图

4.2系统的功能分析与要求

13

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端经过前期的思考和研究,总结出该系统需要完成的一些具体功能,分析如下:

1、能完成网络连接并实现真实帐号登录

2、能完成对板块页面的解析并获取需要的信息数据,通过后台逻辑处理,实现查看信息的显示。

3、使用多线程同步处理前台界面的刷新和后台网络处理。

4、可考虑添加的周边功能,例如XX新闻、XX地图。

4.3系统功能模块的设计

4.3.1个人信息模块

4.2个人信息模块流程图

4.3.2课程信息模块

14

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

4.3课程信息模块流程图

4.3.3考试时间模块

4.4考试时间模块流程图

4.3.4考勤信息模块

15

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

4.5考勤信息模块流程图

4.4系统用例图

4.6用户前台系统用例图

16

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

4.7程序后台系统用例图

17

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

5系统具体实现—逻辑处理模块实现

5.1项目结构示意图

5.1项目结构示意图

5.2多线程技术在项目上的应用

在跳转到每一个功能页面的时候,因为单线程的顺序逻辑执行,会出现这样的情况:只有执行完前一句代码才会执行下一句代码。而我们的程序表现出来给用户的页面信息又是必须先从网络获取数据后再表现出来,这样的网络工作相对来说是比较耗时的,同时也就会使程序跳转后出现黑屏的情况,只有等待网络工作处理完后才出现UI界面。

18

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端有为了让程序避免处理网络工作这样耗时比较长的操作而导致页面刷新缓慢的尴尬现象,我们使用了多线程来分开处理UI刷新跟网络操作。

具体代码如下:

//创建子线程来处理网络工作

Threadt=newThread(){publicvoidrun(){//网络工作

netWork();

//启动UI线程

};t.start();//启动子线程}handler.post(updateResults);

//更新UIpublicvoidupdateUI(){„„

}

//网络工作具体实现

publicvoidnetWork(){„„

}//UI线程RunnableupdateResults=newRunnable(){publicvoidrun(){updateUI();}};

虽然取得数据后的UI刷新还是必须等待网络工作netWork()的完成,但那已经是子线程的事了,主线程还是可以顺利地执行下去,先将界面展现给用户,给用户一种程序响应速度很快的感觉。

5.3主菜单页面逻辑处理

系统通过前面的网络连接跟登录验证之后(网络连接模块为同组成员饶泽华的19

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端工作),便来到了主菜单界面。这个部分的}Elementlink=doc.select("td[onclick]").get(i);returnlink.attr("onclick");

为了减少代码的重复,把这部分的实现写成一个方法,只需要传入表示顺序的i值即可得到相应的20

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端到了这一步,infoUrl才是真正的绝对地址,获取个人信息模块的地址工作才算完成。

同理,可以取得其他三个子功能模块的地址,具体如下:

1、课程表部分:

5.3主菜单页面源码(课程表部分)图

定位代码及截取代码,最终取得curriUrl:

StringcurricLinkStr=getLink(1);

curricUrl=baseUrl+curricLinkStr.substring(40,curricLinkStr.length()-1);

2、考试时间表部分:

5.4主菜单页面源码(考试时间表部分)图

定位代码及截取代码,最终取得timeUrl:

StringtimeLinkStr=getLink(2);

timeUrl=baseUrl+timeLinkStr.substring(49,timeLinkStr.length()-1);

3、考勤信息部分:

5.5主菜单页面源码(考勤信息部分)图

定位代码及截取代码,最终取得attendUrl:

StringattendLinkStr=getLink(3);

21

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端attendUrl=baseUrl+attendLinkStr.substring(49,attendLinkStr.length()-1);

5.4个人信息页面逻辑处理

个人信息页面的逻辑处理,主要工作还是使用JSoup技术解析网页,先将基本信息的数据取得,显示出来。

例如获取学号信息,页面源代码如下:

5.6个人信息页面源码(学号部分)图

学号信息是在div标签中的文本,具体实现代码如下:

//抽出div标签中的文本publicStringgetDiv(inti){

}Elementdiv=doc.select("div").get(i);returndiv.text()+"\n";

为了减少代码的重复,把这部分的实现写成一个方法,只需要传入表示顺序的i值即可得到相应的内容。

取得学号的代码:Stringnum="学号:"+getDiv(2);

同理,个人基本信息的其他信息数据也是通过定位,调用getDiv方法来获得,具体实现代码如下:

5.7个人信息页面源码(姓名部分)图

Stringname="姓名:"+getDiv(3);

22

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端Stringgrade="年级:"+getDiv(4);

Stringspecial="专业:"+getDiv(5);

Stringidentity="身份证:"+getDiv(6);

Stringemail="电子邮箱:"+getDiv(7);

Stringteacher="班主任:"+getDiv(8);

Stringcounselor="辅导员:"+getDiv(9);

Stringrequired="必修课已获得学分:"+getDiv(17);

Stringelective="选修课已获得学分:"+getDiv(22);

Stringaccumulate="累计已获得学分:"+getDiv(26);

Stringindispensable="本专业本年级毕业需修满学分:"+getDiv(34);

实际显示效果:

5.8基本信息界面图

本子功能模块还具备了查看必修课信息和选修课信息的功能,我在界面下方设23

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端置了3个按钮,分别设置了对应的操作,会将必修课信息和选修课信息也显示出来,响应速度非常快。当然了,数据的取得还是要解析页面,具体如下:

例如取得必修课信息数据,网页源代码是:

5.9个人信息页面源码(必修课信息部分)图

实际上,必修课信息是存放在页面第7个table下的,我通过遍历第7个table标签下的tr标签、td标签可以取得所有必修课信息,而在屏幕上显示,我觉得有一些相对鸡肋的信息可以不显示出来,因此只选用了课程代码、课程名称和成绩,这样3个信息已经足够代表一门课程,让界面简洁易看,也让处理速度更快。

具体实现代码:

//解析网页,取得必修课信息

publicvoidgetRequired(){

inti=0;Strings[]=newString[10];//获得第7个table标签Elementtable=doc.select("table").get(6);//获得第7个table标签下的tr标签Elementstrs=table.select("tr");if(trs!=null){//遍历第5个table标签下的tr标签for(Elementtr:trs){//获得第5个table标签下的tr标签下的td标签Elementstds=tr.select("td");if(tds!=null){//遍历第5个table标签下的tr标签下的td标签for(Elementtd:tds){}if(s[1]!=null){24//将每个td标签的文本存入字符串数组ss[i]=td.text();i++;

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

}}}}i=0;//按照格式输出requiredStr=requiredStr+s[1]+":"+s[2]+"[成绩:"+s[8]+"]\n";}

同理,选修课信息的数据取得,也跟必修课是一样的,只不过必修课信息是存放在页面第10个table标签下的。具体代码实现如下:

//解析网页,取得选修课信息

publicvoidgetElective(){

}inti=0;Strings[]=newString[9];//获得第10个table标签下Elementtable=doc.select("table").get(9);//获得第10个table标签下的tr标签Elementstrs=table.select("tr");if(trs!=null){}//遍历第10个table标签下的tr标签for(Elementtr:trs){}//获得第10个table标签下的tr标签下的td标签Elementstds=tr.select("td");if(tds!=null){}//遍历第10个table标签下的tr标签下的td标签for(Elementtd:tds){}if(s[1]!=null){}i=0;//按照格式输出electiveStr=electiveStr+s[0]+":"+s[1]+"[成绩://将每个td标签的文本存入字符串数组ss[i]=td.text();i++;"+s[7]+"]\n";

25

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端实际显示效果:

5.10必修课信息与选修课信息界面图

5.5课程表页面逻辑处理

课程表页面的逻辑处理,主要工作还是使用JSoup技术解析网页,获取完整的课程表,然后获取当天的日期,将当天的课程信息显示出来。

取得系统当天日期,网页源代码是:

5.11课程表页面源码(日期信息部分)图

只需要找到带有face属性的font标签即可,实现代码:

//取得font标签中含有face属性的文本内容,即是当天日期

Elementfont=doc.select("font[face]").first();

26

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端Stringdate=font.text();

这样,字符串data就是我们需要的当天日期。

取得完整的课程表,网页源代码是:

5.12课程表页面源码(课程表部分)图

先仔细观察源代码,课程表信息是存放在页面第7个table中的,解读存放内容的规则:横向看,第一行是标题,可以得知每行8个单元格的内容是对应一周7天的课程信息,第二行起是每一个时间段的课程;纵向看,第一列是时间段标题,然后后面7列则是对应了一周7天。这样的一个表格,从解析上来讲,应该从横向来解析,因为每一行是一个tr标签,而每一行的tr标签包含了8个td标签,即每一行的每个单元格。在每取得一行数据后,使用5个字符串数组来存放周一到周五的课程数据,这样再解析完成后,我们所需要的课程信息就在这5个字符串数组中了,且顺序对应了每一天的每一个时间段。

具体代码实现如下:

//解析网页,取得所有课程信息

publicvoidgetCurrics(){

inti=0;intj=0;Strings[]=newString[8];//获得第7个table标签Elementtable=doc.select("table").get(6);//获得第7个table标签下的tr标签Elementstrs=table.select("tr");27

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

}}}}thursday[j]=s[4];//表格每一行的第5格//遍历第7个table标签下的tr标签for(Elementtr:trs){//获得第7个table标签下的tr标签下的td标签Elementstds=tr.select("td");if(tds!=null){for(Elementtd:tds){}i=0;monday[j]=s[1];//表格每一行的第2格内容存入monday字符串数组tuesday[j]=s[2];//表格每一行的第3格内容存入tuesday字符串数组wednesday[j]=s[3];//表格每一行的第4格内容存入wednesday字符串数//将每个td标签的文本存入字符串数组ss[i]=td.text();i++;

跳转页面的最初会显示当天对应的课程,当然了,如果是周末则会显示无课程。随后在界面下方设置了5个按钮,分别对应了星期一到星期五,可供用户查看一周的课程,点击则会显示相应内容,响应速度非常快。

实际显示效果:

28

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

5.13课程表界面图

5.6考试时间页面逻辑处理

考试时间表页面的逻辑处理,主要工作还是使用JSoup技术解析网页,获取完整考试时间信息,显示出来。

这个页面稍微有些特殊,因为当不存在考试时间的时候,是没有那个存放考试时间信息的表格的,这样,我们就必须先来一个判断,当存在第5个table标签的时候,第5个table就是存放考试时间信息的表格,而如果不然,则是系统还没给出考试时间表。

而对于这个表格的解析,也是比较简单,每一行代表了一个考试课程的信息,将每一个单元格的内容取出,就能组合成我们需要表现出来的考试信息。

具体代码实现如下

Strings[]=newString[8];

inti=0;

29

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端Elementstables=doc.select("table");

//当有科目的考试时间存在时

}if(tables.size()>=5){//获得第5个table标签Elementtable=doc.select("table").get(4);//获得第5个table标签下的tr标签Elementstrs=table.select("tr");if(trs!=null){}textViewStr="目前没有需要考试的科目!";//遍历第5个table标签下的tr标签for(Elementtr:trs){}//获得第5个table标签下的tr标签下的td标签Elementstds=tr.select("td");if(tds!=null){}//遍历第5个table标签下的tr标签下的td标签for(Elementtd:tds){}if(s[0]!=null){}i=0;//按照格式输出textViewStr=textViewStr+"课程代码:"+s[0]+"\n课程名称:"+s[1]+"\n考试日期:"+s[2]+"\n考试时间:"+s[3]+"\n考场名称:"+s[5]+"\n考试座位:"+s[6]+"\n\n";//将每个td标签的文本存入字符串数组ss[i]=td.text();i++;}else{

实际显示效果:

30

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

5.14考试时间界面图

5.7考勤信息页面逻辑处理

考勤信息页面的逻辑处理,主要工作还是使用JSoup技术解析网页,获取完整考勤信息,显示出来。

这个页面与考试时间表页面类似,也会出现没有考勤的情况,当用户该学期没有课程的情况下将不存在考勤信息。

取得完整的考勤信息,网页源代码是:

31

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

5.15考勤信息页面源码图

当存在第7个table的时候,遍历第7个table下的tr标签、td标签,从而取得考勤信息。

具体代码实现如下:

//获得第7个table标签

Elementtable=doc.select("table").get(6);

//获得第7个table标签下的tr标签

Elementstrs=table.select("tr");

Strings[]=newString[3];

inti=0;

if(trs!=null){

}

if(textViewStr.contains("课程信息")){

textViewStr="本学年学期暂无课程信息!";//遍历第7个table标签下的tr标签for(Elementtr:trs){//获得第7个table标签下的tr标签下的td标签Elementstds=tr.select("td");if(tds!=null){}//遍历第7个table标签下的tr标签下的td标签for(Elementtd:tds){}if(s[0]!=null){}i=0;//按照格式输出textViewStr=textViewStr+"课程编号:"+s[0]+"\n课程名称://将每个td标签的文本存入字符串数组ss[i]=td.text();i++;"+s[1]+"\n详细信息:"+s[2]+"\n\n";}

32

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端}

实际显示效果:

5.16考勤信息界面图

33

XX大学XX件学院软件工程系XXX毕业论文—校园信息管理平台下的Android客户端

6系统测试

6.1使用DDMS

在Eclipse中,带有DDMS可视化调试界面,我们使用DDMS中的LogCat来捕捉程序运行中的信息。例如:

1、网络连接时,连接是否成功,使用多少时间,发送接收多少数据包。

2、一旦程序有任何不安全警告或者是运行错误,都会被LogCat捕捉,并且精确的告知是何出错信息,在程序那个类的第几行,行遍我们差错。

3、我们还可以自定义捕捉信息,比如捕捉带有System.out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论