2024年8月24日发(作者:伯文康)
基于Android学生基本信息管理的设计与开发
摘 要
随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户
能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到
手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。
因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。 在如今这个智能手
机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作
系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系
统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,
即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具
有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、
多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有
无限的吸引力。
本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为大学学生
提供更好的基于Android的学生信息管理软件。
关键字
:
Android;学生基本信息
Based on the Android's design and development of students' basic
information management
ABSTRACT
With the rapid proliferation of smart phones, smart phone operating system market,
wind and water. In order for smart phone users to check the Internet anytime, anywhere
services provided an efficient way to expand the function of the system will be applied to the
mobile phone terminal, the mobile phone to Internet access via mobile networks, and variety
of Web sites and process business. Therefore, the smart phone applications and the need for
the service will have broad prospects for development. In today's smart phone system when
disputes warlords, 2008, Google introduced a smart phone called the Android open source
operating system, which uses Linux kernel, Open Handset Alliance (OHA) members can be
free to use and modify the SDK package, the system It has a good open-source nature of the
expansion of. The software includes the operating system, user interface and applications that
need to work smart phones all the software. Android's biggest feature is its open architecture,
not only has a very good development and debugging environment, but also supports a
variety of scalable user experience, including rich graphical components, multimedia support,
and powerful browser. Therefore, for software professionals is, Android platform has
unlimited appeal.
In this paper, the analysis and discussion Android mobile phone software development
technology on the basis of the principle, developed to provide students with better platform to
students' basic information management based on Android meteorological software.
Key Words: Taiyuan University of Technology; Android; information management
目 录
摘 要 ........................................................................................................................................ I
ABSTRACT ..............................................................................................................................II
1 绪论 ....................................................................................................................................... 1
课题背景 ......................................................................................................................... 1
系统内容及开发意义 ..................................................................................................... 1
2 Android平台及相关技术简介 ............................................................................................. 2
Android现状及发展 ....................................................................................................... 2
Android系统特点 ........................................................................................................... 2
Android的功能特征 ....................................................................................................... 3
Android架构分析 ........................................................................................................... 4
应用程序框架 ......................................................................................................... 4
类库 ......................................................................................................................... 5
运行环境 ......................................................................................................................... 6
操作系统 ................................................................................................................. 6
Android开发变量及其配置 ................................................................................... 6
Android开发环境搭建 ................................................................................................... 6
计算机配置 ............................................................................................................. 6
安装JDK ................................................................................................................. 6
安装Eclipse ............................................................................................................ 6
安装SDK ................................................................................................................ 7
安装ADT ................................................................................................................ 7
设置Eclipse ............................................................................................................ 7
创建AVD ................................................................................................................ 7
HTTP协议 ...................................................................................................................... 8
JSOUP ............................................................................................................................. 9
简介 ......................................................................................................................... 9
文档输入 ................................................................................................................. 9
解析并提取 HTML 元素 ...................................................................................... 9
修改数据 ................................................................................................................. 9
HTML 文档清理 .................................................................................................. 10
3 Android应用程序结构剖析 ............................................................................................... 11
Android的API ............................................................................................................. 11
Android应用程序结构解析 ......................................................................................... 12
活动 ....................................................................................................................... 12
意图接收器 ........................................................................................................... 13
服务 ....................................................................................................................... 13
内容提供者 ........................................................................................................... 13
Intent的详细解析 ......................................................................................................... 13
Intent的抽象描述 ................................................................................................. 13
Android中 Intent的使用 .................................................................................... 14
Android活动的生命周期 ............................................................................................. 15
活动的生命状态 ................................................................................................... 15
活动的运作流程 ................................................................................................... 17
4 需求分析 ............................................................................................................................. 18
背景 ............................................................................................................................... 18
假定条件下的约束限制 ............................................................................................... 18
硬件约束 ............................................................................................................... 18
用户约束 ............................................................................................................... 18
系统目标 ....................................................................................................................... 18
先行组织机构及业务现状 ........................................................................................... 18
功能需求 ....................................................................................................................... 19
性能需求 ....................................................................................................................... 19
界面友好 ....................................................................................................................... 19
快速响应 ....................................................................................................................... 19
数据安全 ....................................................................................................................... 19
数据需求 ....................................................................................................................... 19
5 系统概要设计 ..................................................................................................................... 21
系统功能模块 ............................................................................................................... 21
系统实现流程图 ........................................................................................................... 21
网络传输模块概要设计 ............................................................................................... 22
设计思路 ............................................................................................................... 22
数据获取 ............................................................................................................... 23
网络连接 ............................................................................................................... 23
6 系统详细设计与实现 ......................................................................................................... 24
登录模块 ....................................................................................................................... 24
成绩查询模块 ............................................................................................................... 26
本学期课表查询模块 ................................................................................................... 28
修改密码模块 ............................................................................................................... 30
分享模块 ....................................................................................................................... 32
7 测试用例 ............................................................................................................................. 33
设计过程中出现的问题 ............................................................................................... 33
目标 ............................................................................................................................... 33
运行与测试环境 ........................................................................................................... 33
功能测试 ....................................................................................................................... 33
登录模块测试 ....................................................................................................... 33
用户选择模块测试 ............................................................................................... 33
各大功能模块测试 ............................................................................................... 34
非功能测试 ................................................................................................................... 34
实时性测试 ........................................................................................................... 34
安装/反安装测试 .................................................................................................. 34
兼容性测试 ........................................................................................................... 35
用户界面测试 ....................................................................................................... 35
总 结 ..................................................................................................................................... 36
参考文献 ................................................................................................................................. 37
致 谢 ..................................................................................................................................... 38
附录一 英文文献原文 ........................................................................................................... 39
附录二 中文译文 ................................................................................................................... 44
1 绪论
1.1 课题背景
随着科学技术的发展,计算机网络技术的普及和对办公效率的要求越来越高,很多
高校开始网络化办公改革,将更多的平常工作(入通信联系,发放通知,传递文件等)
通过网络这个平台来完成。经过一段时间的发展,网络在搞笑日常锅里中实现的功能越
来越多,数字化校园管理系统应运而生。
我们学校是采用浏览器/服务器(b/s)模式,这种模式想对最初的人工管理方便了
许多,不在需要大量的人力,学生要登陆并操作管理系统也不再需要排队和拥挤,更不
会因为在系统上的操作会耽误正常的教学任务(问卷调查等)。b/s模式的校园信息系
统只需要一台能访问网络的浏览器即可。只要信息系统服务器端提供个人信息,考试成
绩,课程表等等业务模块,在客户端的浏览器视窗中就能进行相应模块的功能管理。这
种b/s模式的信息管理系统具有不限时间,地点等优势,然而随着移动互联网的发展这
种b/s模式的信息管理系统也存在很多不足,比如你想要进行相关操作,就必须坐在电
脑前,而且课程开设的通知等等也是要通过上网才知道,对于一些不常上网的同学可能
会错过很多有用的消息,比如说课程调整,成绩发布等等。而这些缺陷都可以通过移动
终端来解决。
1.2 系统内容及开发意义
综上所诉,在平时的校园生活中,教务系统给予各系的同学许多方便,学校缴费,
选课调课,查询考试,报名考证等等,都可以通过电脑登录教务系统来得到解决。而为
了让教务系统变得更加便利,我们有必要开发一个基于Android平台下的学生信息信息
管理系统。同学们就可以通过安装有Android系统的只能手机来登陆和操作信息管理系
统,并随时随地查看信息系统的信息。
同时对于软件工程系的我而言,这是见证我们四年所学的最佳机遇。这一次的软件
开发过程,给了一个让我发挥的平台。
2 Android平台及相关技术简介
Android现状及发展
Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、
用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移
动产业创新的专有权障碍。Google与开放手机联盟合作开发了 Android,这个联盟由包
括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的
领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层
次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内
形成一个开放式的生态系统。
Android 作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提
供信息"这一企业目标的实现。我们发现,全球为数众多的移动电话用户从未使用过任
何基于 Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于
这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全
球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,
并推广这些产品。
开放手机联盟的成立和 Android 的推出是对现状的重大改变,在带来初步效益之
前,还需要不小的耐心和高昂的投入。在2012年,,%的市场份额。在2013年,、%,这
是一个相当惊人的数字。
不过,这些数字当中,还蕴含了一些有趣的部分。比如在2013年第四季度,25%的
Android手机并未包含谷歌服务,以亚马逊、国内的小米等厂商为主。显然,这种现象
说明了即使Android极受欢迎,但碎片化则十分严重。
再来看看Android版本的分布情况。目前,最新的Android ,Android ,Android %,%
则是老旧的Android 。显然,双核/四核处理器已经向低端产品普及,越来越多的手机
都能够搭载更新版本的系统版本,但碎片化依然是谷歌需要考虑的课题。
2.2 Android系统特点
Android系统最震撼人心之处在于其开放性和服务的免费性方面。Android是一个
对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了
iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile(现叫Windows
Phone)、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省30%
的成本。Android平台的手机以及平板电脑具有以下5大特点:
1、开放性。在优势方面,Android平台首先就是其开放性,开发的平台允许任何
移动终端厂商加入到Android联盟中。显著的开放性可以使其拥有更多的开发者,随着
用户和应用的日益丰富,一个崭新的平台也将很将走向成熟,苹果的IOS系统封闭;
无向任何厂商提供,Windows Phone系统封闭,厂商需要花高价购买;Nokia的Symbian
之前也一直是封闭,现在已经末落了。
2、挣脱运营商的束缚。在过去很长的一段时间,特别是在欧美地区,手机应用往
往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从
Android上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA
这些2G至3G移动网络的逐步过渡和提升,手机随意揍人网络已不是运营商口中的笑
谈。
3、丰富的硬件选择。这一点还是与Android平台的开放性相关。由于Android的
开放性,众多的厂商会推出丰富多彩、各具特色的多种产品。功能上的差异和特色却不
会影响到数据同步、甚至软件的兼容性。好比用户从诺基亚的Symbian(塞班)风格手
机一下改用装载Android(安卓)系统的手机,同时还可将Symbian中优秀的软件带到
新手机上使用,联系人等资料更是可以方便地转移。
4、不受任何限制的开发商。Android平台提供给第三方开发商一个十分宽泛、自
由的环境,因此不会受到各种条条框框的阻挠,可想而知,这样会有多少新颖别致的软
件会诞生。但这也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给
Android开发人员的难题之一。
5、无缝结合的Google应用。如今Google在互联网领域已经走过十多年历史,从
搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户
和互联网的重要纽带,而Android平台手机将无缝结合这些Google应用。
2.3 Android的功能特征
(l)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程
序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。
(2)Dalvik虚拟机器:在Android平台上所使用Java虚拟机,不是Sim公司的标准
Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面
的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
(3)集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览引
擎为基础所开发成的。WedKit是一个开源浏览器网页排版引擎,目前使用WebKit引擎
的浏览器主要有:Safari,Midori,Epiphany等。配合Android手机的功能,可以在浏览
网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。
(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D与3D两个方面。在2D
方面,Android提供了一套特有的类库(SGL;(openGL for Embedded systems)规范的类
库。它们是一种非常快的图形引擎,并且支持硬件加速。
(5)SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,
它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常
低。它能够支持Windows/Linux/U nix等主流的操作系统,同时能够跟很多程序语言
相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它
的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完
整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的
SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite
也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上
使用。
(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放MP3
或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”
(Note:URI即是统一资源识别地址)模式—在网络上直接播放的流媒体。另外支持各种
通用的静态图像格式,例如:JPG、PNG、GIF等格式。
(7)GSM技术:Global System for Mobile Communications,即全球移动通讯系统,
俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其
开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能
行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发Android应用程序时可
以突出的特点之一。
(8)蓝牙、EDGE、3G及Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连
接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate
for GSM,Evolution),即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G
的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操
作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空
间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。Wi-Fi(WirelessFidelity),
即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。,
该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,。这些通讯能力也
是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。
(9)GPS: Global Positioning System,即全球定位系统,它是一个由覆盖全球的24
颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4
颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时
等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬
体方面的体现,也是在开发Android应用程序是可以突出的特点之一。
2.4 Android架构分析
2.4.1 应用程序框架
在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限应用程
序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序
所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、
置换组件。目前所有的应用程序是由服务及系统来组成,包含有:
(l)一套强大和可扩展的视图系统:用来建构一个应用程序的基本组件,包了在开发
系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。
(2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者
共享它们自己的数据。
(3)资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本字符串、
图形文件或排版相关的布局文件。
(4)通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。
(5)活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:
启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。
(6)视窗管理器:用来管理所有启动程序的视窗。
(7)位置管理器:用来管理地图服务的相关功能。
(8)电话管理器:用来管理用户拨打与接听电话的相关功能。
(9)包管理器:管理所有安装在Android系统内的包。
2.4.2 类库
在Android中包含一些C/C++的类库,这些类库能被Android系统中不同的组件来
使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:
(1)surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能,
在[显示]与[存取操作]间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整
合。例如:在2D、2D显示上的合成、叠合动作。
(2)3Dlibraries:。该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最
佳化的处理显示。
(3)SGL:主要是处理有关显示2D方面的绘图引擎。
(4)Media Frame work:主要是以packetVideo公司的OpenCORE为基础所发展的多
媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:MPEG4、、
MP3、AAC、AMR、JPG、PNG、GIF等格式
(5)Free Type:主要是用来显示点阵图和处理向量字形的。
(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出
的基于WEB应用的安全协议,。SSL协议指定了一种在应用程序协议(如HTTP、Telenet、
NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接
提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于
Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各
种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL
Record Proto col):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、
压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在
SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密
算法、交换加密密钥等。SSL协议提供的服务主要有:①认证用户和服务器,确保数据
发送到正确的客户机和服务器;②加密数据以防止数据中途被窃取;③维护数据的完整
性,确保数据在传输过程中不被改变。
(7)SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量
级的关系数据库引擎。
(8)web Kit:是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的
web视图,也可以让开发者利用这个引擎来做不同的应用。
(9)lib c:就是一个BSD标准C类库。但是,针对Linux嵌入式装置进行过最佳化
的调整。
2.5 运行环境
2.5.1 操作系统
Windows XP或者Vista
Mac OS X 或者更高版本(仅支持x86)
Linux(Linux Ubuntu Dapper Drake)
2.5.2 Android开发变量及其配置
(Europa),(Ganymede)
Eclipse JDT 插件(大多数的Eclipse IDE包包含)
WST(可选,但Android编辑器的功能需要,他被包含在most Eclipse IDE packages
中)
JDK 5或者JDK 6(中有JRE是不够的)
Android Development Tools 插件(可选)
不兼容GNU Java编译器
2.6 Android开发环境搭建
2.6.1 计算机配置
开发Android应用所用到的开发工具较占内存,尤其是模拟器。官方并未给出最低
配置要求,根据个人实际体会,在本人Intel Core i7-2630QM 四核处理器及8G内存
的情况,能流畅使用。另外还需有600MB以上的剩余磁盘空间(官方文档中的说明)。
2.6.2 安装JDK
由于Android开发是基于Java的基础上的,所以我们必须得安装JDK(JDK下载
地址:)。安装过程中应对系统的环境变量做出相应的设置:
1.右击计算机---属性---高级系统设置---高级---环境变量,新建“系统变量”,
设置变量名:“java_home”。变量值: “C:Program FilesJava”(视个人安装路径而
定)。
2.找到变量名为path的项,双击,在变量值后面添加:“;%JAVA_HOME%bin;”,
3.新建“系统变量”变量名:“classpath”,变量值:
“.;%JAVA_HOME%lib;%JAVA_HOME%lib;” 配置完成后,重启可以在cmd下输
入java或者javac测试。
2.6.3 安装Eclipse
Eclipse是我们以后在Android开发时使用的开发平台,它集成了很多功能以及插
件,在开发的过程中便于我们使用,在官网()可以下载到对应系统以及功能的安装包,
在安装提示安装完成后并且完成了JDK的安装后即可正常使用。
2.6.4 安装SDK
SDK(Software Development Kit)初始包中有开发Android程序所要用到的工具,
它包括了从编译到运行Android应用程序所需要的各种工具。安装时可以根据自己的需
求选择安装相应的版本。(SDK下载地址:)
2.6.5 安装ADT
,就可以开始开发Android应用程序了,但是为了更高效地进行开发,Android团
队推出了Android Development Tools (ADT) 。ADT是目前开发Android应用最有效
的工具,它是一个Eclipse插件,支持Eclipse 。以Eclipse (Galileo)为例,安装过程
如下:
(1)打开Eclipse,选择 Help > Install New Softare。
(2)在Available Software 对话框中,点击。
(3)在弹出的Add Site 对话框中,任意填写一个名字到Name一栏。在Location
一栏,则填入这一URL:“”,然后确认返回。(注意:如果在后续的步骤中发现无法安
装插件,可以试着把URL中的https换成http。)
(4)返回到Available Software 窗口后,就能看到列表中出现了"Developer
Tools" ,选中它前面的复选框,再点击“Next”,就会开始下载安装ADT的各种组件
了。
(5)安装完毕后将弹出窗口显示ADT相关的各种信息以及许可协议,点击“Finish
“即可完成安装。
(6)重新启动Eclipse。
2.6.6 设置Eclipse
(1)选择"Window > "打开偏好设置
(2)从左侧边栏中选择"Android"一栏。
(3)单击SDK Location一栏边的Browse按钮,选择刚刚下载的SDK保存的路
径。
(4)点击Apply,OK,设置生效。
至此,Android的开发环境就已经搭建完毕,可以使用了 。
2.6.7 创建AVD
在安装好JDK,Eclipse,SDK,ADK之后我们就可以进行Android项目开发了,
但是在开发的过程中我们经常需要运行、调试我们所开发的软件,这就需要用到AVD
(Android Virtual Device),也就是Android虚拟机。
1. 打开Eclipse。
2. 点击Opens the Android Virtual Device Manager图标按钮。
3. 在弹出的窗口中点击New新建一个Android虚拟机。
4. 在弹出的新建虚拟机窗口中Name一栏填上虚拟机的名称(一般与虚拟机的
版本号相同,便于区分)。
5. 在Target一栏选择一个Android虚拟机版本()。
6. 在SD Card下的Size一栏填上我们要设定的SD卡容量大小。
7. 点击Create AVD,这样我们的一个Android虚拟机就创建好了。
2.7 HTTP协议
超文本传送协议 (HTTP) 是一种通信协议,它允许将超文本标记语言 (HTML) 文
档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些
文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,
并获得关于链接项的附加信息。
HTTP工作在TCP/IP协议体系中的TCP协议上。
客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收 HTML 文档并进
行交互。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分
布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和
扩展。前一段时间用的是HTTP/,现在WWW中使用的是HTTP/。而且HTTP-NG(Next
Generation of HTTP)的建议已经提出。
主要特点可概括如下:
支持客户/服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法
和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系
的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很
快。 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加
以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户
的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 无状
态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态
意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数
据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
发出的请求信息包括以下几个:
请求行,例如GET /images/ HTTP/,表示从/。
(请求)头,例如Accept-Language: en
可选的消息体 请求行和标题必须以
行)。空行内必须只有
都是可选的。
请求方法:
HTTP/(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:
OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web
服务器发送’*’的请求来测试服务器的功能性。
HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这
一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信
息。
GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作
中,例如在web 。其中一个原因是GET可能会被网络蜘蛛等随意访问。
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被
包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 向指定资源位置上传其最新内容。
DELETE 请求服务器删除Request-URI所标识的资源。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
2.8 JSOUP
2.8.1 简介
JSOUP是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内
容。它提供了一套非常省力的API,可通过 DOM,CSS以及类似于jQuery的操作方法
来取出和操作数据。
JSOUP的主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或 CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
JSOUP是基于MIT协议发布的,可放心使用于商业项目。
2.8.2 文档输入
JSOUP可以从包括字符串、URL地址以及本地文件来加载HTML文档,并生成
Document对象实例。
2.8.3 解析并提取 HTML 元素
这部分涉及一个HTML解析器最基本的功能,但JSOUP使用一种有别于其他开源
项目的方式——选择器
2.8.4 修改数据
在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,例如我们可以
为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。
2.8.5 HTML 文档清理
JSOUP在提供强大的API同时,人性化方面也做得非常好。在做网站的时候,经常
会提供用户评论的功能。有些用户比较淘气,会搞一些脚本到评论内容中,而这些脚本
可能会破坏整个页面的行为,更严重的是获取一些机要信息,例如XSS跨站点攻击之
类的。
3 Android应用程序结构剖析
3.1 Android的API
Android API主要包含了以下几个部分:
(1)
,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务
(Service),意图接收器(Intent Receiver)和内容提供者(Content Provider))。举例来说,
控制文件就是把活动和要接收的意图(Intents)连接在一起的“胶水”。
(2)活动
活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工
作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。
(3)视图
视图可以将其自身绘制到屏幕上。Android的用户界面由一系列的视图树构成。接
口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法
来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界
面)。
(4)意图
意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要
显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览
这个URI。系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行
之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。
(5)服务
服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应
用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过
远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的
界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音
乐还继续播放着。
(6)通知
通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常
见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知
事件。
(7)内容提供者
内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来
访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可
以定义自己的内容提供者来向其它应用提供数据访问服务。
3.2 Android应用程序结构解析
通常由以下四个组件来构建一个完整的Android应用程序。
①活动
②意图接收器
③服务
④内容提供者
然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的
一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,,这是一个
XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配
置文件是每个Android应用程序所必需的。
3.2.1 活动
活动是以上四个组件中最常用的一个。每个活动都是Activity的子类,并实现了一
些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个
用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:
一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置
界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界
面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一
个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个
照片文件。
当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以
使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。
默认情况下,Android会为每个应用程序保留从主界面开始的历史堆栈。
Android通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图
描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构:动
作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动
作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个
意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。
除此之外,还有一个被称作意图过滤器(IntentFiher)的相关类。当发生一个有效的
目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要
正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要
被在界面上显示时,知道如何处理它们。。从一个界面跳转到另一个界面是由解析各种
意图实现的。例如:一个活动使用startActivity(myIntent)来调用其他活动时,系统会查
找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配myIntent意图的活
动。随后,这个新的活动接收到意图(myIntent)的通知并开始运行。当startActivity方
法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点:
活动可以通过一个以意图形式产生的请求来重用其他组件的功能。
活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。
3.2.2 意图接收器
当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并
不显示UI界面,它是通过NotificationManager来通知用户他们感兴趣的事件发生了。,
()来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用
程序。
3.2.3 服务
服务是具有长生命周期并且没有用户界面的代码。
3.2.4 内容提供者
在Android中,每个应用程序都是有自己的userID及在自己的进程中执行。这样做
的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每
个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用
程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实
现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供
者处理过的数据。
3.3 Intent的详细解析
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考上一节的内
容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的
Android应用。在这些组件之间的通讯中,主要是由意图协助完成的。意图负责对应用
中一次操作的动作、动作对应的数据、附加数据进行描述,Android则根据此意图的描
述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起
着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被调用
者之间的解耦。
例如,在一个联系人维护的应用中,当在一个联系人列表屏幕(假设对应的Activity
为listActivity)上,点击某个联系人后,希望能够调出此联系人的详细信息,为了实现
这个目的,listActivity需要构造一个Intent,这个Intent用于告诉系统,要做“查看”
动作,此动作对应的查看对象是“某联系人”,然后调用startActivity(intent intent),将
构造的Intent传入,系统会根据此intent中的描述,。系统会调用找到的Activity,即为
detailActivity,最终传入Intent,detailActivitv则会根据此Intent中的描述,执行相应的
操作。
3.3.1 Intent的抽象描述
在Android参考文档中,对意图的定义是执行某操作的一个抽象描述。该抽象描述
的具体内容如下:
首先,它是要执行的动作的一个简要描述,如查看、修改等,Android定义了一套
标准动作。此外,还可以根据应用的需要,定义自己的动作,并可定义相应的活动来处
理自定义的动作。
其次,是执行动作要操作的数据,Android采用指向数据的一个URI方式来实现。
另外,除了动作和数据这两个重要属性外,还有一些附加属性:
类别:被执行动作的附加信息。例如LAUNCHER_CATEGORY表示意图的接受者
应该在Launcher中作为顶级应用出现;而ALTERNATIVECATEGORY表示当前的意图
是一系列的可选动作中的一个,这些动作可以在同一个数据上执行。
数据类型:显式指定意图的数据类型。一般意图的数据类型能够根据数据本身进行
判定,但是通过设置这个属性,可以强制采用指定的类型。
组件:指定意图的目标组件的类名称。通常Android会根据意图中包含的其它属性
的信息,比如动作、数据/数据类型、类别进行查找,最终找到一个与之匹配的目标组
件。
附加信息:是其它所有附加信息的集合。使用附加信息可以为组件提供扩展信息,
比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在
附加信息里,传给电子邮件发送组件。总之,动作、数据/数据类型、类别和附加信息
一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类
的短语。随着应用不断的加入到系统中,它们可以添加新的动作、数据/数据类型和类
别来扩展这种语言。应用也可以提供自己的活动来处理已经存在的这样的“短语”,从
而改变这些“短语”的行为。
3.3.2 Android中 Intent的使用
在应用中,可以以两种形式来使用Intent:
(l)直接意图:指定了组件属性的意图。通过指定具体的组件类,通知应用启动对应
的组件。
(2)间接意图:没有指定组件属性的意图。这些意图需要包含足够的信息,这样系统
才能根据这些信息,在所有的可用组件中,确定满足此意图的组件。对于直接意图,
Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接
意图,通过解析,将意图映射给可以处理此意图的活动、意图接收器或服务。
,最终找到匹配的意图。在这个解析过程中,Android是通过意图的动作、数据类
型、类别这三个属性来进行判断的,判断方法如下:
如果意图指明定了动作,则目标组件的意图过滤器的动作列表中就必须包含有这个
动作,否则不能匹配。
如果意图没有提供数据类型,系统将从数据中得到数据类型。和动作一样,目标组
件的数据类型列表中必须包含意图的数据类型,否则不能匹配。
如果意图中的数据不是content:类型的URI,而且意图也没有明确指定它的数据类
型,将根据意图中数据的格式(比如http:或者mailto:)进行匹配。同上,意图的格式必
须出现在目标组件的格式列表中。
如果意图指定了一个或多个类别,这些类别必须全部出现在组建的类别列表中。比
如意图中包含了两个类别:
LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目标组件
必须至少包含这两个类别。
3.4 Android活动的生命周期
Android平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随
时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而
且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大
多已习惯使用多工的作业系统(如windowsMobile),可以在用手机听音乐的同时,执行
其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应
用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序
过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳
定。为了解决这个问题,Android引入了一个新的机制—生命周期。
Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接
控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法,都会占据一个
进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者
或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,
本节主要介绍活动的生命周期。
一个活动类别除了onCreate方法之外,还预先定义了onPause(暂停)、onResume(继
续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串
的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,
就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状
态、恢复状态、传送资料等工作。
3.4.1 活动的生命状态
Android的虚拟机是使用堆栈管理。主要有四种状态:
(l)活动状态
活动状态是指用户启动应用程序或活动后,活动运行中的状态。在Android平台上,
同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是
暂停的状态。
(2)暂停状态
暂停状态是指当活动暂时暗下来,退到背景画面的状态。当警告对话框或电话来了
时,都会让原来运行的活动退到背景画面。新出现的警告对话框等界面元件盖住了原来
的活动画面。活动处在暂停状态时,用户无法与原活动互动。
(3)停止状态
停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。
通过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还
可以通过通知来唤醒。
(4)已回收或未启动状态
已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状
态。要手动终止活动,可以在程序中调用finish方法。如果是被系统回收,可能是因为
内存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内
存回收。
Adroid活动生命周期如图3-1所示:
图3-1 Android活动生命周期
图3-1所示的七个状态又可以归纳成三组:
(l)资源分配(创建/销毁)
完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资源,销毁时
释放资源。
(2)可见与不可见(启动/重新启动/停止)
当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到
停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先
到重新启动状态,再到一般的启动状态。
(3)用户取得屏幕的控制权(继续/暂停)
当有个警告对话框、短信、电话等信息进入时,原来的活动会进入暂停状态,暂时
放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事件。当这些优先级高的
事件处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。
3.4.2 活动的运作流程
由实际运行来看,我们可以归纳出所有Android应用程序都遵循的运作流程:
(l)一般启动
启动一个活动的基本流程为onCreate一>onstart一>onResume。该流程首先分配资
源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,
取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。
(2)调用另一个活动
调用另一个活动的基本流程为onPause(l)一>onCreate(2)一>onStart(2)
一>0nResume(2)一>onStop(l)。该流程首先冻结原来的活动,再交出屏幕控制权;直到
活动2完成一般启动流程后,活动1才会被停止。
(3)回到原来活动
回到原来活动的基本流程为onPause(2)一>onRestart(1)一>onStart(l)
一>onResume(1)一>onStop(2)一>onDestroy(2)。另外按返回键也可以回到原来的活动。
(4)退出结束
退出结束的基本流程为onPause一>onStop一>onDestroy。如果程序中有直接调用
finish方法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。
(5)回收后再启动
回收后再启动的基本流程为onCreate一>onStart一>onResume。如果被回收掉的活
动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法。
当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启
过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换
时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时
将资料读出来。
4 需求分析
4.1 背景
软件开发提出者:太原理工大学软件学院。
开发者:李铭凯。
用户:太原理工大学全体学生。
用户特点:只存在在校就读学生一类用户,不需项目经费。
软件适用范围:所有基于Android操作系统的智能触屏手机。
4.2 假定条件下的约束限制
4.2.1 硬件约束
表4-1 硬件约束表
需求名称
软件硬件要求
软件系统平台
4.2.2 用户约束
摸屏功能
详细要求
支持Android操作系统的嵌入式平台,支持wifi功能,带触
表4-2 用户约束表
需求名称
太原理工大学学
生
会简单的触摸屏操作
详细要求
4.3 系统目标
基于Android平台的学生管理系统开发的意图是为便于学生对本人成绩和课表的
查询以及对教务系统密码的修改。
4.4 先行组织机构及业务现状
太原理工大学教务系统,是学生查看个人信息和学校信息的主要途径,在电脑上应
用改系统,机动性不够,限制多(停电,网络出现问题等)。
4.5 功能需求
本系统扮演着提供用户直接查询业务的重要角色,它主要提供友好的,方便的用户
操作界面,接受用户的各项查询以及密码的修改。具体的功能如下:
成绩信息的查询:数据由教务系统提供。可以通过本系统查询本学期成绩,及格成
绩和不及格成绩。
课程信息的查询:数据由教务系统提供。可以通过本系统查询本学期的课表。
密码的修改:可以将密码提交到教务系统进行密码的修改。
4.6 性能需求
手机应用程序需要提供良好的用户体验。良好的用户体验体现在以下三点:
4.7 界面友好
我们的用户界面非常的简洁美观,并且易于操作。
我们的软件能快速处理用户的输入或查询,对于有些需要较多时间的应用程序,我
们会在他处理时,给用户一个数据正在处理的提示,让用户知道程序还在运行中。
4.8 快速响应
我们的软件能快速处理用户的输入或查询,对于有些需要较多时间的应用程序,我
们会在他处理时,给用户一个数据正在处理的提示,让用户知道程序还在运行中。
4.9 数据安全
本系统采用二级安全保障
第一级:依赖于网络本身对用户使用权限的规定。
第二级:在程序模块上通过使用密码控制功能对用户使用权限加以限制。
4.10 数据需求
本系统采用二级安全保障
第一级:依赖于网络本身对用户使用权限的规定。
第二级:在程序模块上通过使用密码控制功能对用户使用权限加以限制。
太原理工大学教务系统为数据提供者。所有内容需要院方先对所有学生有相关资料
存储,再通过登录认证,方可查询相关业务。
5 系统概要设计
系统功能模块
Android平台的学生管理系统是一个集web、数据库、移动终端一体的应用系统。
经过考虑,我选取了本学期成绩查询、及格成绩查询、不及格成绩查询、本学期课表查
询以及密码修改这几个试用率最高的这几个功能,具体的功能模块设计如图5-1所示:
成绩查询
课表查询
登录模块
选择模块
其他功能
本
学
期
成
绩
及
格
成
绩
不
及
格
成
绩
密
码
修
改
分
享
检
查
更
新
图5-1 系统功能模块示意图
5.2 系统实现流程图
启动系统之后,会进入到登陆界面,通过输入正确的账号密码,会直接进入到成绩
查询界面,通过点选选项,可以进入到课表查询和其他功能界面。系统实现流程图如图
5-2所示:
图5-2 系统实现流程图
5.3 网络传输模块概要设计
5.3.1 设计思路
在网络传输功能中, 我们是把手机设为client端。太原理工大学的教务系统作为
server端来使用。手机端向server端发送请求或者发送数据,server端接收请求并返回
结果。在软件中,每一个功能模块都需要用到网络传输功能,建立连接,保持通信,获
取和传递信息等等,可以说网络传输功能贯穿了我们整个管理系统。客户端与服务器端
的关系如图5-3所示:
Server发送数据
Client 接收
图5-3 Client端与server端关系图
Client 发送请求
Server接收
5.3.2 数据获取
刚开始想的时候,我想到了院方提供现成的数据库,直接获取数据库上的信息,再
通过无线网络传输到手机。但院方的数据库不对外开放。经过思考,我最终决定使用
jsoup来解决这一问题。
5.3.3 网络连接
在解决了数据获取的问题之后,我开始着手网络连通的问题上。为了保证可以持续
会话,必须将登录后的cookie保存起来,当每次访问教务系统时候就在请求体中加上
保存好的cookie。在cookie的有效期内,都可以通过这个cookie进行各项功能的实现。
当cookie过期后,会跳到登录界面,登录后会将新的cookie保存。
6 系统详细设计与实现
6.1 登录模块
因为我们的数据提供者是太原理工大学教务系统,在获取账号密码后,提交到,向
server端发送请求,验证账号密码正确。在登录模块中运用了HTTP协议post请求方法。
使用了Jsoup包来获得hidden数据。
获取输入框中的学号和密码:
String number = ().toString();
String password = ().toString();
登录前对网络状态进行判断:
ConnectivityManager connectivityManager = (ConnectivityManager)
();
if (connectivityManager == null) {
return false;
} else {
NetworkInfo[] info = ();
if (info != null) {
for (NetworkInfo network : info) {
if (() == ) {
return true;
}
}
}
}
return false;
以post方式提交请求:
String html = + "?" + "zjh=" + account + "&mm="
+ password;
(html);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(html);
HttpResponse response = (post);
获取到登陆成功后的cookie:
HttpEntity entity = ();
(entity);
cookies = ((AbstractHttpClient) client).getCookieStore().getCookies();
SharedPreferences pre = getSharedPreferences("tyut",MODE_APPEND);
登录成功后将学号和密码保存起来:
Editor editor = ();
("number", number);
if (()) {
("password", password);
} else {
}
();
().remove("password").commit();
登录界面效果图如图6-1所示:
图6-1 登录界面效果图
6.2 成绩查询模块
成绩查询模块是对学生的成绩信息进行查询,包括了本学期成绩、及格成绩和不及
格成绩。这三个模块的功能实现原理是一样的,只是对返回数据的解析会有一些区别。
三个选项是通过一个popwindow实现,点选popwindow中的选项,listview中的数据会
发生改变。该模块还添加了下拉刷新,通过下拉刷新,对成绩信息进行刷新操作。
定义popwindow的关键代码如下:
if (mPopupwinow == null) {
mPopupwinow = new PopupWindow(llyPopView,
// ,
getScreenWidth() / 2, ,true);
(new ColorDrawable(
0x00000000));
(new OnDismissListener() {
@Override
public void onDismiss() {
// TODO Auto-generated method stub
();
});
}
判断网络状态后执行异步任务操作的代码:
if ((getApplicationContext())) {
getFirst = new GetGradeFirst();
();
} else {
(getApplicationContext(), "当前无网络",
}
).show();
异步任务获取成绩信息后对数据处理的代码:
if (() > 0) {
mPullToRefreshListView
();
.setAdapter(new SimpleAdapter(,
result, , new String[] {
"courseName", "credit", "grade" },
new int[] { , , }));
} else {
(, "暂无成绩信息", )
();
}
.show();
成绩查询界面效果图如图6-2所示:
图6-2 成绩查询界面
6.3 本学期课表查询模块
本学期课表查询模块通过模拟登录获取到教务系统的本学期课表页面并对页面进
行解析。获取到的课表数据通过一个开源的表格框架来显示,可以上下和左右滑动来查
看。
对表进行配置的代码:
table = (this, 8);
(titles);
(contents);
(cellTypes);
(cellWidth);
(rowHeight);
(rowTextSize);
(tableResource);
(rowTextColor);
if ((this)) {
CourseAsync course = new CourseAsync();
();
判断网络状态后执行异步任务操作的代码:
}else{
(this, "当前无网络", ).show();
}
异步任务获取课表信息后对数据处理的代码:
//判断执行结果是否为空
if (result != null) {
list = new ArrayList
for (int i = 0; i < (); i++) {
if (i != 0 && i != 33 && i != 34 && i != 67 && i != 68) {
}
((i));
}
course_list = new ArrayList
for (int j = 0; j < (); j++) {
}
for (int a = 0; a < (); a += 8) {
for (int b = a; b < a + 8; b++) {
}
String[] data1 = new String[] { aa, bb, cc, dd, ee, ff, gg,hh };
if (b == a) {
aa = (b);
map = new HashMap
map = (j);
((String) ("courseInfo"));
} else if (b == (a + 1)) {
bb = (b);
} else if (b == (a + 2)) {
cc = (b);
} else if (b == (a + 3)) {
dd = (b);
} else if (b == (a + 4)) {
ee = (b);
} else if (b == (a + 5)) {
ff = (b);
} else if (b == (a + 6)) {
gg = (b);
} else if (b == (a + 7)) {
}
hh = (b);
}
();
}
(data1);
课表信息查询界面效果图如图6-3所示:
图6-3 课表信息界面
6.4 修改密码模块
密码修改功能是模拟教务系统网页进行密码的修改。在手机端将旧密码和新密码输
入以后提交到教务系统服务器端的url。然后通过解析返回的网页来判断是否修改成功。
修改成功后将新的密码保存,旧密码被取代。
修改密码功能的关键代码如下:
//将修改密码需要提交的数据添加到指定url中
String html1 = + "?newPass1="
+ newPass1 + "&newPass2=" + newPass2 + "&oldPass="
+ oldPass + "&yhlbdm=01&zjh=" + account;
HttpClient client2 = new DefaultHttpClient();
((AbstractHttpClient) client2)
.setCookieStore(((AbstractHttpClient) client).getCookieStore());
HttpPost post2 = new HttpPost(html1);
HttpResponse response2 = (post2);
//根据返回结果判断是否登录成功
if (().getStatusCode() == 200) {
("修改成功");
return 1;
}
修改密码界面效果图如图6-4所示:
图6-4 修改密码界面
6.5 分享模块
通过intent可以将文字和图片分享到手机中安装好的应用当中。分享功能的代码如
下:
Intent intent = new Intent();
("text/plain");//设置分享类型
(, content);//设置分享内容
();//设置打开方式
startActivity(intent);
分享界面效果图如图6-5所示:
图6-5 分享界面
7 测试用例
设计过程中出现的问题
本软件的开发比预期中延迟了一个星期。原因主要是对编码阶段所需的时间估计不
准确。这主要由于在某些技术上的问题在设计过程中没有考虑到,导致在编码过程中需
要花一些时间去考虑所遇到技术的问题延迟了完成的时间。
其次编码的不熟悉,经常要查资料,花费时间巨大。
7.2 目标
完善软件。对各个模块进行测试,确保各个模块正常运作。
7.3 运行与测试环境
运行环境:。
测试环境:已成功安装本软件的Android手机以及一学生教务系统账号。
7.4 功能测试
7.4.1 登录模块测试
表7-1 登录模块测试用例表
7.4.2 用户选择模块测试
用例目标
需求描述
步骤
1
操作
测试登录模块是否正常运作
正常登陆
输入数据
账号:2011000169
密码(不公开)
预期结果
顺利进入用户选择界面 输入账号密码
表7-2 用户选择模块测试用例表
用例目标
需求描述
步骤
1
操作
测试用户选择模块是否正常运作
正常显示各功能界面
输入数据
无
预期结果
顺利进入各个功能界面 点击功能选择按钮
7.4.3 各大功能模块测试
表7-3 其他功能模块测试用例表
用例目标
需求描述
步骤
1
2
3
4
5
6
操作
测试各大功能模块是否正常运作
正确显示该模块信息
输入数据
无
无
无
无
旧密码和
新密码
无
预期结果
顺利显示本学期成绩(无本学期成绩为空
白)
顺利显示及格成绩
顺利显示不及格成绩(无不及格成绩为显
示上次操作后的数据)
顺利显示本学期课表(无课表信息则只显
示表结构)
顺利修改密码
顺利将编辑好的信息分享给好友
点击进入成绩查询
界面
点击进入及格成绩
查询模块
点击进入不及格成
绩查询
点击进入本学期课
表查询
点击进入密码修改
点击进入分享
7.5 非功能测试
7.5.1 实时性测试
通过用户的点击操作,一般在两妙内能实现。
7.5.2 安装/反安装测试
在用户手机上进行安装和反安装正常,反安装是删除所有安装内容。
7.5.3 兼容性测试
在引用本软件时,能与其他软件同时正常工作,不会引起兼容性问题。
7.5.4 用户界面测试
表7-4 用户界面测试表
测试内容
窗口切换
各个界面元素的文字显示
各个界面元素支持点击操作
名利执行顺序合理性
反
映
正常
正常
正常
正常
界面元素布局合乎统一的约定 正常
界面元素形状合乎统一的约定 正常
界面上的字体合乎统一的约定 正常
图片合乎统一的约定 正常
总 结
在毕业设计的三个月时间里,收获很大,做毕业设计的整个过程中彷徨过,动摇过,
但最后都挺过来了,因为我知道所有的疑惑必须用行动才能解决,整个毕业设计每遇到
问题,我都提醒自己从时间出发去解决问题,空想是不会解决人和问题的。在软件开发
的各个阶段我遇到了各种各样的问题,通过自己的努力,在老师的帮助下,所有的问题
都迎刃而解,因为天道酬勤。整个毕业设计给我的启示如下:
路是要一步一步的走。任何问题的解决都不是一朝一夕的事情,如果一个问题一秒
钟能够解决的话,那么这也就不再是一个问题了。在系统编码和测试阶段的时候还会因
为一些小问题而大费周折,有时候因为一些很棘手的问题而寸步难行,这些时候我们最
需要的是冷静,路要一步一步的走,不能一口吃一个胖子。耐心的象征解决办法是解决
问题的最快方法也是唯一方法。耐心一点。将遇到的问题一个一个解决,系统就会一点
一点的完善,慢慢的一个完整系统就实现了。不要着急,耐心一点,再耐心一点,是毕
业设计给我的最大启示。
任何问题都不是问题。只要你毅力足够,意志足够,任何问题都不是问题。由于之
前对于JAVA了解不是很多,但是整个软件主要就是用JAVA语言进行开发,而且对于
Android这个系统一点都不了解,毕业设计最初感觉无从下手,但是安心读了几本关于
Android编程的书,自己联系了10多个小程序之后对于Android就有了一些了解,慢慢
的找到了解决问题的方式。事实证明,只要认真努力,没有不可能的事情,没有永远是
问题的问题。
学习思路要开阔。这里指的是学习的方法方式途径。比如,我们要注意身边的人学
习,别人的某些经验可能有些时候对于自己来说是非常宝贵的,我们小组的另外两个成
员对于JAVA和Android都有比较多的认识,很多时候遇到很多问题,询问他们都会得
到一个很好的答案。而网络上也有很多资料,有些是初学者自己学习过程中遇到的为难
题以及自己的解决方式,跟初学者一起交流探索,让我学到了很多以前没有接触过的东
西。对于开阔思路来说非常重要。
做事要三思而后行。做什么事情之前都一定要做好规划,切记盲目,否则,否则,
就违背了软件工程思想。软件各个生命周期的文档时提供给我们做软件规划的,我们一
定要利用好,否则,文档就白写了。
综上所述,通过毕业设计我学到的不仅仅是单纯的知识,更需要的是我掌握了处理
问题是应该具备的心理素质,人的心态决定人的成就,相信毕业设计对我的人生会产生
巨大的影响。
参考文献
[1] Joshua Bloch. Effective Java中文版(第二版). 杨春花,俞黎敏译. 北京:机
械工业出版社,
[2] 杨丰盛. Android技术内幕系统卷. 北京:机械工业出版社,2011
[3] Shane Conder,Lauren Darcey. Android移动应用从入门到精通. 张魏,李卉译.
北京: 人民邮电出版社,2010
[4] Haseman Chris. Android Essentials[M]. Apress. the Expert’s Voice,
[5] Ed Burnette. Hello Android Introducing Google’s Mobile Development PlatForm,
3rd Edition. Pragmatic Bookshelf,2010
[6] 谢希仁. 计算机网络(第五版). 北京:电子工业出版社,2010
[7] 黄宏程,胡敏,陈如松. Android移动应用设计与开发. 北京:人民邮电出版
社,
[8] DevDiv移动开发社区. 移动开发全平台解决方案. 北京: 海洋出版社,
[9] 李刚. 疯狂Android讲义(第二版). 北京: 电子工业出版社,
[10] 韩超,梁泉等. Android系统原理及开发要点详解. 北京: 电子工业出版社.
2010
[11] 余志龙,郑名杰等. Android SDK开发范例大全. 北京: 人民邮电出版社.
2009
致 谢
我在设计(论文)期间都是在胡老师全面、具体指导下完成进行的。胡老师渊博的
学识、敏锐的思维、民主而严谨的作风使学生受益非浅,并终生难忘。
感谢赵涓涓老师在毕业设计工作中给予的帮助。
感谢我的学友和朋友对我的关心和帮助。
附录一 英文文献原文
Android introduction and development environment construction
This barrier to application development began to crumble in November of 2007 when
Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a
group of hardware and software developers, including Google, NTT DoCoMo,Sprint Nextel,
and HTC, whose goal is to create a more open cell phone first product to be released under
the alliance is the mobile device operating system, Android.
Android, as a system, is a Java-based operating system that runs on the Linux system
is very lightweight and full applications are developed using Java and can be ported rather
easily to the new platform.
One of the more exciting and compelling features of Android is that, because of its
architecture, third-party applications—including those that are “home grown”—are executed
with the same system priority as those that are bundled with the core is a major departure
from most systems, which give embedded system apps a greater execution priority than the
thread priority available to apps created by third-party developers. Also, each application is
executed within its own thread using a very lightweight virtual machine.
The Android system is a widely optimistic about an open source phone system, the
system provides a basic operating system, a middle ware application layer, a java
development tools and a system Application collector (collection of system applications). The
Android the SDK since 2007 on the release of the first Android phone in October 2008 before
the birth. Google opened since then on his own time, Taiwan's HTC, the manufacturer of the
T-Mobile G1 estimate G1 shipments have more than one million at the end of 2008.
According to industry insiders expect the G1 mobile phone sales in 2009 continue. Many
other mobile phone suppliers in the near future plans to support this system.
Around an Android and a huge developer community has been established, while a lot
of new products and applications on the Android. Android's main selling point is that it
enables developers to seamlessly expand online services to mobile phones. This is the most
obvious example is Google's tightly integrated with Gmail, Calendar and Contacts Web
applications through the system. Users only need to provide an Android user name and
password, the phone automatically sync with Google services. The other vendors are quickly
adapt their existing instant messaging, social networking and gaming services. Android and
many companies find new ways to integrate their existing business to the Android.
Aside from the very generous SDK and the well-formed libraries that are available to us
to develop with, the most exciting feature for Android developers is that we now have access
to anything the operating system has access to. In other words, if you want to create an
application that dials the phone, you have access to the phone’s dialer; if you want to create
an application that utilizes the phone’s internal GPS (if equipped), you have access to it. The
potential for developers to create dynamic and intriguing applications is now wide open.
On top of all the features that are available from the Android side of the equation,Google
has thrown in some very tantalizing features of its own. Developers of Android applications
will be able to tie their applications into existing Google offerings such as Google Maps and
the omnipresent Google Search. Suppose you want to write an application that pulls up a
Google map of where an incoming call is emanating from,or you want to be able to store
common search results with your contacts; the doors of possibility have been flung wide open
with Android.
Now begins your journey to Android development.
1、Downloading and Installing Eclipse
(1)Selecting a development environment
In keeping with the Open Handset Alliance’s theme of truly opening the mobile
development market, Eclipse is one of the most fully featured, free, Java IDEs available.
Eclipse is also very easy to use, with a minimal learning curve. This makes Eclipse a very
attractive IDE for solid, open Java development.
(2)Downloading Eclipse
Navigate to the Eclipse Downloads page at (79MB) and should download fairly quickly.
(3)Installing and configuring Eclipse
Expand the package and run the file. Eclipse installs to your User directory by default
(under Microsoft Windows).Once the Eclipse installation commences, you will be prompted
to create a default workspace, or folder. Just as in most development environments, projects
are created in, and saved to, a workspace. The default path for the workspace is your User
directory. To select a different location, click Browse and navigate to you select a location
for your workspace, click OK.
At this point, your development environment is downloaded and installed. While the
installation of Eclipse seemed deceivingly quick, you still need to do some configuration
work before you can create your first Android project. Much of the configuration work that
you need to do centers on the Android SDK and the Android plugin for Eclipse.
2、Downloading and Installing the Android SDK
(1) Downloading the Android SDK
The Android SDK is easily accessible from the , click the Download the SDK link under
Getting Started. After you agree to the terms of the Android SDK License Agreement, you
will see the Download the Android SDK page. The Android SDK is downloaded in a
79MB(for Windows) package and it should download fairly quickly. Click the package name
for your operating system to begin the is no “setup” or installation process to speak of for
the Android SDK; rather,you must follow a series of steps to associate the SDK with your
Eclipse development environment. The first of these steps is to obtain the Android plugin for
Eclipse, after which you will configure it.
(2) Using the Update feature of Eclipse
(3) Downloading, installing, and configuring the Android plugin for Eclipse
Installing:
1) Open the Eclipse application. You will download the Android plugin for Eclipse from
within the Eclipse IDE.
2)Choose Help | Software Updates | Find and Install.
3)In the Install/Update window, which allows you to begin the process of downloading
and installing any of the plugins that are available to you for Eclipse, click the Search for
New Features to Install radio button and then click Next.
4)The Update Sites to Visit page of the Install window, shown next, lists all the default
websites used for obtaining Eclipse plugins. However, the plugin you want, Android for
Eclipse, is not available from the default sites. To download the Android plugin,you must tell
Eclipse where to look for it, so click the New Remote Site button.
5)In the New Update Site dialog box, shown next, you must enter two pieces of
information to continue: a name for your new site, and its associated URL. The
name is only for display purposes and does not affect the downloading of the plugin.
In the Name field, enter Android Plugin. In the URL field, enter the URL from which Eclipse
will obtain information about the plugins that are available:
Configuring:
1)From the main Eclipse window, choose Window | Preferences.
2)In the Preferences window, shown next, select Android in the menu on the left. On the
right side of the window, click Browse, find the location of the Android SDK on your hard
drive, and enter it in the SDK Location field. Eclipse needs this information to be able to
access all the tools that are supplied with Android, such as the emulator.
(4) Checking the PATH statement
The final step in setting up the Android SDK is to put it into your PATH statement. If
you are using a Microsoft Windows machine, right-click Computer (or My Computer,
depending on your version of Windows) and select Properties to open the System
Properties dialog box. Click the Advanced Environment Variables to display the window of
the same name, shown in the following illustration. This is where you can edit your PATH
System Variables, find the variable PATH and double-click the Edit System Variable dialog
box, shown next, add the location of your Android SDK—separated from the existing paths
by a semicolon—and click OK to apply your changes, and click OK again in the
Environment Variables window.
3、Exploring the Android SDK
(1) Using the Android SDK documentation
The Android documentation is located in the Docs folder within the Android SDK
at../%sdk folder%/DOCS. The documentation that is supplied with the SDK includes steps on
downloading and installing the SDK, “Getting Started” quick steps for developing
applications, and package definitions. The documentation is in HTML format and can be
accessed though the file in the root of the SDK can navigate to all of the documentation
that is included in the Android SDK by using the links within .
(2) Using the Android SDK tools
(3) Using the sample applications
Using Eclipse, load the API Demos application as a New Android Project. To do
this,select File | New | Project from the Eclipse menu bar; a New Android Project wizard
opens. Do not worry about the options in this wizard for now. Simply select Create Project
From Existing Source and browse to the folder with the API Demo application in it. When
the project is loaded, choose Run to see it execute in the Android Emulator.
(4) Learning the life cycle of an Android application
The Android application life cycle is unique in that the system controls much of the life
cycle of the application. All Android applications, or Activities, are run within their own
process. All of the running processes are watched by Android and, depending on how the
activity is running (this is, a foreground activity, background activity, and so forth),Android
may choose to end the activity to reclaim needed resources.
附录二 中文译文
Android简介和开发环境的搭建
在2007年11月,当Google,在开放手机联盟下,发布Android,这个对于应用程
序开发者的障开始消失。开放手机联盟是一个硬件和软件开发者组织,它包括Google、
NTT DoCoMo,Sprint Nextel,和HTC,它的目标是创建一个更开放的手机环境。在
开放手机联盟组织下发布的第一个产品是Android-移动设备操作系统。
Android作为一个系统,,,能够十分简单的装入新的平台。
Android一个最令人兴奋和注目的特色是它的架构,三部分运用程序-包括
“home-grown”当这些和内核系统绑定,可带有同样的系统优先权执行。这是和大多
系统一个主要的违背,它给了嵌入式系统应用程序一个比进程优先级(从第三方开发者
创建的应用程序获得)更大的执行权。每一个应用程序在它自己的进程里使用一个很轻
量级的虚拟机执行。
Android 系统是一个被广泛看好的一个手机开源系统,该系统提供一个基本的操作
系统,一个中间件应用层,一个java开发工具和一个系统应用收集器(collection of system
applications)。尽管Android SDK自2007年就发布了,但是第一部Android 手机却在
2008年10月才诞生。自从这时起谷歌开起了自己的时代,T-Mobile的G1的制造商台
湾 HTC估算G1的发货量在2008年底已经超过100万部。据业内人士预期该G1手机
的销量将会在2009年继续保持。不久的将来其他许多手机供应商要计划支持这个系统。
一个围绕Android庞大的开发者社区已经建立,同时很多新的产品和应用已经可以
在Android上使用。一个Android的主要卖点是它使开发人员无缝把在线服务扩展到手
机。这方面最明显的例子是谷歌的紧密集成Gmail,日历和联系人Web应用程序通过
该系统。用户只需提供一个Android用户名和密码,其手机自动同步与谷歌的服务。其
他厂商正在迅速适应自己的现有的即时通讯,社交网络和游戏服务。Android和许多企
业寻找新途径来整合他们的自己已有的业务到Android上。
除了我们能够获得用来开发的很大量的SDK和良好的架构库,对于Android开发
者最令人兴奋的特色是我们现在允许进入任何操作系统所允许的。换句话说,如果你要
创建一个拨电话的应用程序,你可接近电话拨号程序,如果你想创建一个利用电话的内
在GPS的应用程序(如果配备),你可以接近它。对于开发者创建动态的和令人感兴趣
的应用程序的可能性现在是宽阔开放了。
在这些特色中最顶级的是从Android网站可获得的平衡,Google已经投放一些它自
己非常逗弄的特色。Android应用程序开发者将能够去把自己的应用程序连接到Google
提供的已经存在的程序(例如GoogleMaps、不所不在的Google搜索)上。假设你想写
一个获取一个打进电话的发出地的Google地图,或者你想能够存储你联系的一般搜索
结果;利用Android可能性的大门已经成为直冲的开放和宽阔。
现在将开始你的Android开发之旅。
一、下载和安装 Eclipse
(1)选择一个开发环境
为了符合开放手机联盟真正开发手机开放市场的主题,Eclipse是一个最完全该
特色、自由、可获得的Java IDEs中的一个。Eclipse也使用非常简单,最小的学习弯路。
这使得Eclipse成为一个非常吸引人的坚固的开源Java开发IDE。
(2)下载 Eclipse
导航进入下载页面:。从此网站下载Java开发者专用的Eclipse IDE。安装包十
分小(79M),并且下载也会相当快。
(3)安装和配置 Eclipse
解压安装包,,Eclipse默认安装到你用户目录下。一旦Eclipse 安装开始,你会
被催促去创建一个默认的工作空间,或是文件夹。正如多数的开发环境,工程在工作空
间里创建和保存。默认的工作空间路径是你的用户目录。要选择不同的路径,点击
Browse,并且导航进入来设置它。在你选择了你工作空间路径后,点击OK。
到这,你的开发环境被下载和安装好了。而Eclipse的安装看上去快得出奇,
但在你能创建你的第一个Android工程前,你仍然需要去做一些配置工作。许
多需要你去完成的配置工作重点是在Android SDK和Android Eclipse 插件
上。
二、下载和安装 Android SDK
(7)下载 Android SDK
Android SDK很容易从。从开发主页,点击“Getting Start”下面的SDK下载链接。
在你同意Android许可协议条款后,你将看到Android SDK下载页面。Android SDK是一
个79M的下载包(对于Windows)并且下载会相当快。点击对应你操作系统的包开始下
载。
对于Android SDK,没有“setup”或是安装步骤涉及到。相反,你必须遵照一系列
的步骤来把SDK和你的Eclipse 开发环境结合起来。这些步骤的第一步是获得Android
Eclipse插件,这之后你要配置它。
(8)使用 Eclipse 更新特性
(9)下载、安装和配置Android Eclipse 插件
安装:
1)打开Eclipse应用程序。你将在Eclipse里面下载Android Eclipse 插件。
2)选择Help|Software Updates|Find and Install。
3)在Install/Update 窗口中,它允许你开始下载和安装任何一个对于你的
Eclipse可以获得的插件的步骤,点击“Search for New Features to Install”
点选按钮,接着点击Next。
4)安装窗口中的“Update Sites to View”页面,在下面显示,列出了所有
已经得到的Eclipse插件的默认网址。然而,你想要的Android Eclipse插件,
在默认网址里没有。为了下载Android 插件,你必须告诉Eclipse 在哪里可以
找到它,因此,点击“New Remote Sites”按钮
5)在"New Update Site"对话框中,下面显示的,你必须键入两个信息来继
续:新站点的名称和可用的URL链接。名称只是为了显示用的,对下载的插件
没有影响。在名称域中,填入Android Plugin,URL域中键入Eclipse能够从
该URL获得可用插件信息的URL:
。点击OK。
配置:
1)从Eclipse主窗口选择Window|Preference 。
2)在“Preferences”(偏好)窗口中,如下所示,在左边菜单中选择Android。在窗
口右边,点击Browse,找到你硬盘中Android SDK的位置,并把它选入到SDK Location
域中。Eclipse需要这个信息才能够使用所有Android支持的工具,例如模拟器。
(10)检查PATH 变量
安装Android SDK最后一步是把它设入你的PATH变量中。右击“电脑”(或“我
的电脑”,依赖于你的Windows版本),并选择“属性”来打开系统属性对话框。点击“高
级”标签。点击环境变量来显示同名的变量窗口。这是你能够编辑PATH变量的地方。
在系统变量中,找到PATH变量并双击它。在系统变量编辑对话框中,下面所示的,添
加Android SDK的路径(注意:Android SDK 下的tools文件夹的路径)-用分号来和存在
的路径分隔-并点击OK来应用你的更改,再次点击环境变量窗口上的OK。
三、浏览 Android SDK
(5)使用 Android SDK 文档
Android文档位于Android SDK里的Docs文件夹中在/%sdk 文件夹%/DOCS
下。和Android SDK一起被提供的Android 文档包括下载和安装SDK的步骤、
快速开始开发应用程序的步骤、包的定义。这个文档是HTML格式的并能在SDK
。,你可以导航到Android SDK中包含的所有文档。
(6)使用 Android SDK 工具
(7)使用例子程序
使用Eclipse把API Demos作为新的Android 工程项目加载。要这样进行,从
Eclipse菜单栏中选择File|New|Project;一个新的Android 工程项目向导就
打开了。从现在不要担心在这个向导中的选项了。选择“从已有的资源创建工
程”并浏览加载有API Demo运用程序的文件夹到里面。当工程已经加载,选择
“Run”来看看它在Android模拟器中执行。
(8)学习 Android 应用程序生命周期
在许多程序的生命周期中,Android应用程序生命周期中系统控制方面是独一
无二的。所有正在运行的进程被Android监视并依赖于这个Activity是如何运行(当前的
Activity,一个已分配的Activity,后台Activity,或是第四种),Android可能会选择终止
这个Activity来收回需要的资源。所有Android 程序,或是Activity,是在它们自己进程
中允许的。
2024年8月24日发(作者:伯文康)
基于Android学生基本信息管理的设计与开发
摘 要
随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户
能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到
手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。
因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。 在如今这个智能手
机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作
系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系
统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,
即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具
有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、
多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有
无限的吸引力。
本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为大学学生
提供更好的基于Android的学生信息管理软件。
关键字
:
Android;学生基本信息
Based on the Android's design and development of students' basic
information management
ABSTRACT
With the rapid proliferation of smart phones, smart phone operating system market,
wind and water. In order for smart phone users to check the Internet anytime, anywhere
services provided an efficient way to expand the function of the system will be applied to the
mobile phone terminal, the mobile phone to Internet access via mobile networks, and variety
of Web sites and process business. Therefore, the smart phone applications and the need for
the service will have broad prospects for development. In today's smart phone system when
disputes warlords, 2008, Google introduced a smart phone called the Android open source
operating system, which uses Linux kernel, Open Handset Alliance (OHA) members can be
free to use and modify the SDK package, the system It has a good open-source nature of the
expansion of. The software includes the operating system, user interface and applications that
need to work smart phones all the software. Android's biggest feature is its open architecture,
not only has a very good development and debugging environment, but also supports a
variety of scalable user experience, including rich graphical components, multimedia support,
and powerful browser. Therefore, for software professionals is, Android platform has
unlimited appeal.
In this paper, the analysis and discussion Android mobile phone software development
technology on the basis of the principle, developed to provide students with better platform to
students' basic information management based on Android meteorological software.
Key Words: Taiyuan University of Technology; Android; information management
目 录
摘 要 ........................................................................................................................................ I
ABSTRACT ..............................................................................................................................II
1 绪论 ....................................................................................................................................... 1
课题背景 ......................................................................................................................... 1
系统内容及开发意义 ..................................................................................................... 1
2 Android平台及相关技术简介 ............................................................................................. 2
Android现状及发展 ....................................................................................................... 2
Android系统特点 ........................................................................................................... 2
Android的功能特征 ....................................................................................................... 3
Android架构分析 ........................................................................................................... 4
应用程序框架 ......................................................................................................... 4
类库 ......................................................................................................................... 5
运行环境 ......................................................................................................................... 6
操作系统 ................................................................................................................. 6
Android开发变量及其配置 ................................................................................... 6
Android开发环境搭建 ................................................................................................... 6
计算机配置 ............................................................................................................. 6
安装JDK ................................................................................................................. 6
安装Eclipse ............................................................................................................ 6
安装SDK ................................................................................................................ 7
安装ADT ................................................................................................................ 7
设置Eclipse ............................................................................................................ 7
创建AVD ................................................................................................................ 7
HTTP协议 ...................................................................................................................... 8
JSOUP ............................................................................................................................. 9
简介 ......................................................................................................................... 9
文档输入 ................................................................................................................. 9
解析并提取 HTML 元素 ...................................................................................... 9
修改数据 ................................................................................................................. 9
HTML 文档清理 .................................................................................................. 10
3 Android应用程序结构剖析 ............................................................................................... 11
Android的API ............................................................................................................. 11
Android应用程序结构解析 ......................................................................................... 12
活动 ....................................................................................................................... 12
意图接收器 ........................................................................................................... 13
服务 ....................................................................................................................... 13
内容提供者 ........................................................................................................... 13
Intent的详细解析 ......................................................................................................... 13
Intent的抽象描述 ................................................................................................. 13
Android中 Intent的使用 .................................................................................... 14
Android活动的生命周期 ............................................................................................. 15
活动的生命状态 ................................................................................................... 15
活动的运作流程 ................................................................................................... 17
4 需求分析 ............................................................................................................................. 18
背景 ............................................................................................................................... 18
假定条件下的约束限制 ............................................................................................... 18
硬件约束 ............................................................................................................... 18
用户约束 ............................................................................................................... 18
系统目标 ....................................................................................................................... 18
先行组织机构及业务现状 ........................................................................................... 18
功能需求 ....................................................................................................................... 19
性能需求 ....................................................................................................................... 19
界面友好 ....................................................................................................................... 19
快速响应 ....................................................................................................................... 19
数据安全 ....................................................................................................................... 19
数据需求 ....................................................................................................................... 19
5 系统概要设计 ..................................................................................................................... 21
系统功能模块 ............................................................................................................... 21
系统实现流程图 ........................................................................................................... 21
网络传输模块概要设计 ............................................................................................... 22
设计思路 ............................................................................................................... 22
数据获取 ............................................................................................................... 23
网络连接 ............................................................................................................... 23
6 系统详细设计与实现 ......................................................................................................... 24
登录模块 ....................................................................................................................... 24
成绩查询模块 ............................................................................................................... 26
本学期课表查询模块 ................................................................................................... 28
修改密码模块 ............................................................................................................... 30
分享模块 ....................................................................................................................... 32
7 测试用例 ............................................................................................................................. 33
设计过程中出现的问题 ............................................................................................... 33
目标 ............................................................................................................................... 33
运行与测试环境 ........................................................................................................... 33
功能测试 ....................................................................................................................... 33
登录模块测试 ....................................................................................................... 33
用户选择模块测试 ............................................................................................... 33
各大功能模块测试 ............................................................................................... 34
非功能测试 ................................................................................................................... 34
实时性测试 ........................................................................................................... 34
安装/反安装测试 .................................................................................................. 34
兼容性测试 ........................................................................................................... 35
用户界面测试 ....................................................................................................... 35
总 结 ..................................................................................................................................... 36
参考文献 ................................................................................................................................. 37
致 谢 ..................................................................................................................................... 38
附录一 英文文献原文 ........................................................................................................... 39
附录二 中文译文 ................................................................................................................... 44
1 绪论
1.1 课题背景
随着科学技术的发展,计算机网络技术的普及和对办公效率的要求越来越高,很多
高校开始网络化办公改革,将更多的平常工作(入通信联系,发放通知,传递文件等)
通过网络这个平台来完成。经过一段时间的发展,网络在搞笑日常锅里中实现的功能越
来越多,数字化校园管理系统应运而生。
我们学校是采用浏览器/服务器(b/s)模式,这种模式想对最初的人工管理方便了
许多,不在需要大量的人力,学生要登陆并操作管理系统也不再需要排队和拥挤,更不
会因为在系统上的操作会耽误正常的教学任务(问卷调查等)。b/s模式的校园信息系
统只需要一台能访问网络的浏览器即可。只要信息系统服务器端提供个人信息,考试成
绩,课程表等等业务模块,在客户端的浏览器视窗中就能进行相应模块的功能管理。这
种b/s模式的信息管理系统具有不限时间,地点等优势,然而随着移动互联网的发展这
种b/s模式的信息管理系统也存在很多不足,比如你想要进行相关操作,就必须坐在电
脑前,而且课程开设的通知等等也是要通过上网才知道,对于一些不常上网的同学可能
会错过很多有用的消息,比如说课程调整,成绩发布等等。而这些缺陷都可以通过移动
终端来解决。
1.2 系统内容及开发意义
综上所诉,在平时的校园生活中,教务系统给予各系的同学许多方便,学校缴费,
选课调课,查询考试,报名考证等等,都可以通过电脑登录教务系统来得到解决。而为
了让教务系统变得更加便利,我们有必要开发一个基于Android平台下的学生信息信息
管理系统。同学们就可以通过安装有Android系统的只能手机来登陆和操作信息管理系
统,并随时随地查看信息系统的信息。
同时对于软件工程系的我而言,这是见证我们四年所学的最佳机遇。这一次的软件
开发过程,给了一个让我发挥的平台。
2 Android平台及相关技术简介
Android现状及发展
Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、
用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移
动产业创新的专有权障碍。Google与开放手机联盟合作开发了 Android,这个联盟由包
括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的
领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层
次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内
形成一个开放式的生态系统。
Android 作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提
供信息"这一企业目标的实现。我们发现,全球为数众多的移动电话用户从未使用过任
何基于 Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于
这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全
球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,
并推广这些产品。
开放手机联盟的成立和 Android 的推出是对现状的重大改变,在带来初步效益之
前,还需要不小的耐心和高昂的投入。在2012年,,%的市场份额。在2013年,、%,这
是一个相当惊人的数字。
不过,这些数字当中,还蕴含了一些有趣的部分。比如在2013年第四季度,25%的
Android手机并未包含谷歌服务,以亚马逊、国内的小米等厂商为主。显然,这种现象
说明了即使Android极受欢迎,但碎片化则十分严重。
再来看看Android版本的分布情况。目前,最新的Android ,Android ,Android %,%
则是老旧的Android 。显然,双核/四核处理器已经向低端产品普及,越来越多的手机
都能够搭载更新版本的系统版本,但碎片化依然是谷歌需要考虑的课题。
2.2 Android系统特点
Android系统最震撼人心之处在于其开放性和服务的免费性方面。Android是一个
对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了
iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile(现叫Windows
Phone)、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省30%
的成本。Android平台的手机以及平板电脑具有以下5大特点:
1、开放性。在优势方面,Android平台首先就是其开放性,开发的平台允许任何
移动终端厂商加入到Android联盟中。显著的开放性可以使其拥有更多的开发者,随着
用户和应用的日益丰富,一个崭新的平台也将很将走向成熟,苹果的IOS系统封闭;
无向任何厂商提供,Windows Phone系统封闭,厂商需要花高价购买;Nokia的Symbian
之前也一直是封闭,现在已经末落了。
2、挣脱运营商的束缚。在过去很长的一段时间,特别是在欧美地区,手机应用往
往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从
Android上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA
这些2G至3G移动网络的逐步过渡和提升,手机随意揍人网络已不是运营商口中的笑
谈。
3、丰富的硬件选择。这一点还是与Android平台的开放性相关。由于Android的
开放性,众多的厂商会推出丰富多彩、各具特色的多种产品。功能上的差异和特色却不
会影响到数据同步、甚至软件的兼容性。好比用户从诺基亚的Symbian(塞班)风格手
机一下改用装载Android(安卓)系统的手机,同时还可将Symbian中优秀的软件带到
新手机上使用,联系人等资料更是可以方便地转移。
4、不受任何限制的开发商。Android平台提供给第三方开发商一个十分宽泛、自
由的环境,因此不会受到各种条条框框的阻挠,可想而知,这样会有多少新颖别致的软
件会诞生。但这也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给
Android开发人员的难题之一。
5、无缝结合的Google应用。如今Google在互联网领域已经走过十多年历史,从
搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户
和互联网的重要纽带,而Android平台手机将无缝结合这些Google应用。
2.3 Android的功能特征
(l)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程
序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。
(2)Dalvik虚拟机器:在Android平台上所使用Java虚拟机,不是Sim公司的标准
Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面
的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
(3)集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览引
擎为基础所开发成的。WedKit是一个开源浏览器网页排版引擎,目前使用WebKit引擎
的浏览器主要有:Safari,Midori,Epiphany等。配合Android手机的功能,可以在浏览
网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。
(4)优化的绘图能力:在程序里可以用到的绘图功能分为2D与3D两个方面。在2D
方面,Android提供了一套特有的类库(SGL;(openGL for Embedded systems)规范的类
库。它们是一种非常快的图形引擎,并且支持硬件加速。
(5)SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,
它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常
低。它能够支持Windows/Linux/U nix等主流的操作系统,同时能够跟很多程序语言
相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它
的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完
整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的
SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite
也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上
使用。
(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放MP3
或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”
(Note:URI即是统一资源识别地址)模式—在网络上直接播放的流媒体。另外支持各种
通用的静态图像格式,例如:JPG、PNG、GIF等格式。
(7)GSM技术:Global System for Mobile Communications,即全球移动通讯系统,
俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其
开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能
行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发Android应用程序时可
以突出的特点之一。
(8)蓝牙、EDGE、3G及Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连
接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate
for GSM,Evolution),即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G
的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操
作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空
间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。Wi-Fi(WirelessFidelity),
即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。,
该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,。这些通讯能力也
是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。
(9)GPS: Global Positioning System,即全球定位系统,它是一个由覆盖全球的24
颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4
颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时
等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬
体方面的体现,也是在开发Android应用程序是可以突出的特点之一。
2.4 Android架构分析
2.4.1 应用程序框架
在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限应用程
序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序
所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、
置换组件。目前所有的应用程序是由服务及系统来组成,包含有:
(l)一套强大和可扩展的视图系统:用来建构一个应用程序的基本组件,包了在开发
系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。
(2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者
共享它们自己的数据。
(3)资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本字符串、
图形文件或排版相关的布局文件。
(4)通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。
(5)活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:
启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。
(6)视窗管理器:用来管理所有启动程序的视窗。
(7)位置管理器:用来管理地图服务的相关功能。
(8)电话管理器:用来管理用户拨打与接听电话的相关功能。
(9)包管理器:管理所有安装在Android系统内的包。
2.4.2 类库
在Android中包含一些C/C++的类库,这些类库能被Android系统中不同的组件来
使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:
(1)surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能,
在[显示]与[存取操作]间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整
合。例如:在2D、2D显示上的合成、叠合动作。
(2)3Dlibraries:。该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最
佳化的处理显示。
(3)SGL:主要是处理有关显示2D方面的绘图引擎。
(4)Media Frame work:主要是以packetVideo公司的OpenCORE为基础所发展的多
媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:MPEG4、、
MP3、AAC、AMR、JPG、PNG、GIF等格式
(5)Free Type:主要是用来显示点阵图和处理向量字形的。
(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出
的基于WEB应用的安全协议,。SSL协议指定了一种在应用程序协议(如HTTP、Telenet、
NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接
提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于
Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各
种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL
Record Proto col):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、
压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在
SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密
算法、交换加密密钥等。SSL协议提供的服务主要有:①认证用户和服务器,确保数据
发送到正确的客户机和服务器;②加密数据以防止数据中途被窃取;③维护数据的完整
性,确保数据在传输过程中不被改变。
(7)SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量
级的关系数据库引擎。
(8)web Kit:是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的
web视图,也可以让开发者利用这个引擎来做不同的应用。
(9)lib c:就是一个BSD标准C类库。但是,针对Linux嵌入式装置进行过最佳化
的调整。
2.5 运行环境
2.5.1 操作系统
Windows XP或者Vista
Mac OS X 或者更高版本(仅支持x86)
Linux(Linux Ubuntu Dapper Drake)
2.5.2 Android开发变量及其配置
(Europa),(Ganymede)
Eclipse JDT 插件(大多数的Eclipse IDE包包含)
WST(可选,但Android编辑器的功能需要,他被包含在most Eclipse IDE packages
中)
JDK 5或者JDK 6(中有JRE是不够的)
Android Development Tools 插件(可选)
不兼容GNU Java编译器
2.6 Android开发环境搭建
2.6.1 计算机配置
开发Android应用所用到的开发工具较占内存,尤其是模拟器。官方并未给出最低
配置要求,根据个人实际体会,在本人Intel Core i7-2630QM 四核处理器及8G内存
的情况,能流畅使用。另外还需有600MB以上的剩余磁盘空间(官方文档中的说明)。
2.6.2 安装JDK
由于Android开发是基于Java的基础上的,所以我们必须得安装JDK(JDK下载
地址:)。安装过程中应对系统的环境变量做出相应的设置:
1.右击计算机---属性---高级系统设置---高级---环境变量,新建“系统变量”,
设置变量名:“java_home”。变量值: “C:Program FilesJava”(视个人安装路径而
定)。
2.找到变量名为path的项,双击,在变量值后面添加:“;%JAVA_HOME%bin;”,
3.新建“系统变量”变量名:“classpath”,变量值:
“.;%JAVA_HOME%lib;%JAVA_HOME%lib;” 配置完成后,重启可以在cmd下输
入java或者javac测试。
2.6.3 安装Eclipse
Eclipse是我们以后在Android开发时使用的开发平台,它集成了很多功能以及插
件,在开发的过程中便于我们使用,在官网()可以下载到对应系统以及功能的安装包,
在安装提示安装完成后并且完成了JDK的安装后即可正常使用。
2.6.4 安装SDK
SDK(Software Development Kit)初始包中有开发Android程序所要用到的工具,
它包括了从编译到运行Android应用程序所需要的各种工具。安装时可以根据自己的需
求选择安装相应的版本。(SDK下载地址:)
2.6.5 安装ADT
,就可以开始开发Android应用程序了,但是为了更高效地进行开发,Android团
队推出了Android Development Tools (ADT) 。ADT是目前开发Android应用最有效
的工具,它是一个Eclipse插件,支持Eclipse 。以Eclipse (Galileo)为例,安装过程
如下:
(1)打开Eclipse,选择 Help > Install New Softare。
(2)在Available Software 对话框中,点击。
(3)在弹出的Add Site 对话框中,任意填写一个名字到Name一栏。在Location
一栏,则填入这一URL:“”,然后确认返回。(注意:如果在后续的步骤中发现无法安
装插件,可以试着把URL中的https换成http。)
(4)返回到Available Software 窗口后,就能看到列表中出现了"Developer
Tools" ,选中它前面的复选框,再点击“Next”,就会开始下载安装ADT的各种组件
了。
(5)安装完毕后将弹出窗口显示ADT相关的各种信息以及许可协议,点击“Finish
“即可完成安装。
(6)重新启动Eclipse。
2.6.6 设置Eclipse
(1)选择"Window > "打开偏好设置
(2)从左侧边栏中选择"Android"一栏。
(3)单击SDK Location一栏边的Browse按钮,选择刚刚下载的SDK保存的路
径。
(4)点击Apply,OK,设置生效。
至此,Android的开发环境就已经搭建完毕,可以使用了 。
2.6.7 创建AVD
在安装好JDK,Eclipse,SDK,ADK之后我们就可以进行Android项目开发了,
但是在开发的过程中我们经常需要运行、调试我们所开发的软件,这就需要用到AVD
(Android Virtual Device),也就是Android虚拟机。
1. 打开Eclipse。
2. 点击Opens the Android Virtual Device Manager图标按钮。
3. 在弹出的窗口中点击New新建一个Android虚拟机。
4. 在弹出的新建虚拟机窗口中Name一栏填上虚拟机的名称(一般与虚拟机的
版本号相同,便于区分)。
5. 在Target一栏选择一个Android虚拟机版本()。
6. 在SD Card下的Size一栏填上我们要设定的SD卡容量大小。
7. 点击Create AVD,这样我们的一个Android虚拟机就创建好了。
2.7 HTTP协议
超文本传送协议 (HTTP) 是一种通信协议,它允许将超文本标记语言 (HTML) 文
档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些
文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,
并获得关于链接项的附加信息。
HTTP工作在TCP/IP协议体系中的TCP协议上。
客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收 HTML 文档并进
行交互。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分
布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和
扩展。前一段时间用的是HTTP/,现在WWW中使用的是HTTP/。而且HTTP-NG(Next
Generation of HTTP)的建议已经提出。
主要特点可概括如下:
支持客户/服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法
和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系
的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很
快。 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加
以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户
的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 无状
态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态
意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数
据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
发出的请求信息包括以下几个:
请求行,例如GET /images/ HTTP/,表示从/。
(请求)头,例如Accept-Language: en
可选的消息体 请求行和标题必须以
行)。空行内必须只有
都是可选的。
请求方法:
HTTP/(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:
OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web
服务器发送’*’的请求来测试服务器的功能性。
HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这
一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信
息。
GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作
中,例如在web 。其中一个原因是GET可能会被网络蜘蛛等随意访问。
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被
包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 向指定资源位置上传其最新内容。
DELETE 请求服务器删除Request-URI所标识的资源。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
2.8 JSOUP
2.8.1 简介
JSOUP是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内
容。它提供了一套非常省力的API,可通过 DOM,CSS以及类似于jQuery的操作方法
来取出和操作数据。
JSOUP的主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或 CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
JSOUP是基于MIT协议发布的,可放心使用于商业项目。
2.8.2 文档输入
JSOUP可以从包括字符串、URL地址以及本地文件来加载HTML文档,并生成
Document对象实例。
2.8.3 解析并提取 HTML 元素
这部分涉及一个HTML解析器最基本的功能,但JSOUP使用一种有别于其他开源
项目的方式——选择器
2.8.4 修改数据
在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,例如我们可以
为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。
2.8.5 HTML 文档清理
JSOUP在提供强大的API同时,人性化方面也做得非常好。在做网站的时候,经常
会提供用户评论的功能。有些用户比较淘气,会搞一些脚本到评论内容中,而这些脚本
可能会破坏整个页面的行为,更严重的是获取一些机要信息,例如XSS跨站点攻击之
类的。
3 Android应用程序结构剖析
3.1 Android的API
Android API主要包含了以下几个部分:
(1)
,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务
(Service),意图接收器(Intent Receiver)和内容提供者(Content Provider))。举例来说,
控制文件就是把活动和要接收的意图(Intents)连接在一起的“胶水”。
(2)活动
活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工
作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。
(3)视图
视图可以将其自身绘制到屏幕上。Android的用户界面由一系列的视图树构成。接
口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法
来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界
面)。
(4)意图
意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要
显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览
这个URI。系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行
之。意图也可以用于广播系统范围内的有效事件(例如通知事件)。
(5)服务
服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应
用程序的进程里,这取决于自身的需要.。其它的组件可以绑定到一个服务上来,通过
远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的
界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音
乐还继续播放着。
(6)通知
通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常
见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知
事件。
(7)内容提供者
内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来
访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可
以定义自己的内容提供者来向其它应用提供数据访问服务。
3.2 Android应用程序结构解析
通常由以下四个组件来构建一个完整的Android应用程序。
①活动
②意图接收器
③服务
④内容提供者
然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的
一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,,这是一个
XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配
置文件是每个Android应用程序所必需的。
3.2.1 活动
活动是以上四个组件中最常用的一个。每个活动都是Activity的子类,并实现了一
些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个
用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如:
一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置
界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界
面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一
个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个
照片文件。
当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以
使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。
默认情况下,Android会为每个应用程序保留从主界面开始的历史堆栈。
Android通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图
描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构:动
作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动
作对应的数据则以URI的形式表示。例如:显示一个联系人信息的界面,可以创建一个
意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。
除此之外,还有一个被称作意图过滤器(IntentFiher)的相关类。当发生一个有效的
目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要
正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要
被在界面上显示时,知道如何处理它们。。从一个界面跳转到另一个界面是由解析各种
意图实现的。例如:一个活动使用startActivity(myIntent)来调用其他活动时,系统会查
找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配myIntent意图的活
动。随后,这个新的活动接收到意图(myIntent)的通知并开始运行。当startActivity方
法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点:
活动可以通过一个以意图形式产生的请求来重用其他组件的功能。
活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。
3.2.2 意图接收器
当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并
不显示UI界面,它是通过NotificationManager来通知用户他们感兴趣的事件发生了。,
()来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用
程序。
3.2.3 服务
服务是具有长生命周期并且没有用户界面的代码。
3.2.4 内容提供者
在Android中,每个应用程序都是有自己的userID及在自己的进程中执行。这样做
的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每
个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用
程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实
现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供
者处理过的数据。
3.3 Intent的详细解析
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考上一节的内
容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的
Android应用。在这些组件之间的通讯中,主要是由意图协助完成的。意图负责对应用
中一次操作的动作、动作对应的数据、附加数据进行描述,Android则根据此意图的描
述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起
着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被调用
者之间的解耦。
例如,在一个联系人维护的应用中,当在一个联系人列表屏幕(假设对应的Activity
为listActivity)上,点击某个联系人后,希望能够调出此联系人的详细信息,为了实现
这个目的,listActivity需要构造一个Intent,这个Intent用于告诉系统,要做“查看”
动作,此动作对应的查看对象是“某联系人”,然后调用startActivity(intent intent),将
构造的Intent传入,系统会根据此intent中的描述,。系统会调用找到的Activity,即为
detailActivity,最终传入Intent,detailActivitv则会根据此Intent中的描述,执行相应的
操作。
3.3.1 Intent的抽象描述
在Android参考文档中,对意图的定义是执行某操作的一个抽象描述。该抽象描述
的具体内容如下:
首先,它是要执行的动作的一个简要描述,如查看、修改等,Android定义了一套
标准动作。此外,还可以根据应用的需要,定义自己的动作,并可定义相应的活动来处
理自定义的动作。
其次,是执行动作要操作的数据,Android采用指向数据的一个URI方式来实现。
另外,除了动作和数据这两个重要属性外,还有一些附加属性:
类别:被执行动作的附加信息。例如LAUNCHER_CATEGORY表示意图的接受者
应该在Launcher中作为顶级应用出现;而ALTERNATIVECATEGORY表示当前的意图
是一系列的可选动作中的一个,这些动作可以在同一个数据上执行。
数据类型:显式指定意图的数据类型。一般意图的数据类型能够根据数据本身进行
判定,但是通过设置这个属性,可以强制采用指定的类型。
组件:指定意图的目标组件的类名称。通常Android会根据意图中包含的其它属性
的信息,比如动作、数据/数据类型、类别进行查找,最终找到一个与之匹配的目标组
件。
附加信息:是其它所有附加信息的集合。使用附加信息可以为组件提供扩展信息,
比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在
附加信息里,传给电子邮件发送组件。总之,动作、数据/数据类型、类别和附加信息
一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类
的短语。随着应用不断的加入到系统中,它们可以添加新的动作、数据/数据类型和类
别来扩展这种语言。应用也可以提供自己的活动来处理已经存在的这样的“短语”,从
而改变这些“短语”的行为。
3.3.2 Android中 Intent的使用
在应用中,可以以两种形式来使用Intent:
(l)直接意图:指定了组件属性的意图。通过指定具体的组件类,通知应用启动对应
的组件。
(2)间接意图:没有指定组件属性的意图。这些意图需要包含足够的信息,这样系统
才能根据这些信息,在所有的可用组件中,确定满足此意图的组件。对于直接意图,
Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接
意图,通过解析,将意图映射给可以处理此意图的活动、意图接收器或服务。
,最终找到匹配的意图。在这个解析过程中,Android是通过意图的动作、数据类
型、类别这三个属性来进行判断的,判断方法如下:
如果意图指明定了动作,则目标组件的意图过滤器的动作列表中就必须包含有这个
动作,否则不能匹配。
如果意图没有提供数据类型,系统将从数据中得到数据类型。和动作一样,目标组
件的数据类型列表中必须包含意图的数据类型,否则不能匹配。
如果意图中的数据不是content:类型的URI,而且意图也没有明确指定它的数据类
型,将根据意图中数据的格式(比如http:或者mailto:)进行匹配。同上,意图的格式必
须出现在目标组件的格式列表中。
如果意图指定了一个或多个类别,这些类别必须全部出现在组建的类别列表中。比
如意图中包含了两个类别:
LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目标组件
必须至少包含这两个类别。
3.4 Android活动的生命周期
Android平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随
时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而
且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大
多已习惯使用多工的作业系统(如windowsMobile),可以在用手机听音乐的同时,执行
其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应
用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序
过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳
定。为了解决这个问题,Android引入了一个新的机制—生命周期。
Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接
控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法,都会占据一个
进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者
或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,
本节主要介绍活动的生命周期。
一个活动类别除了onCreate方法之外,还预先定义了onPause(暂停)、onResume(继
续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串
的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,
就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状
态、恢复状态、传送资料等工作。
3.4.1 活动的生命状态
Android的虚拟机是使用堆栈管理。主要有四种状态:
(l)活动状态
活动状态是指用户启动应用程序或活动后,活动运行中的状态。在Android平台上,
同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是
暂停的状态。
(2)暂停状态
暂停状态是指当活动暂时暗下来,退到背景画面的状态。当警告对话框或电话来了
时,都会让原来运行的活动退到背景画面。新出现的警告对话框等界面元件盖住了原来
的活动画面。活动处在暂停状态时,用户无法与原活动互动。
(3)停止状态
停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。
通过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还
可以通过通知来唤醒。
(4)已回收或未启动状态
已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状
态。要手动终止活动,可以在程序中调用finish方法。如果是被系统回收,可能是因为
内存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内
存回收。
Adroid活动生命周期如图3-1所示:
图3-1 Android活动生命周期
图3-1所示的七个状态又可以归纳成三组:
(l)资源分配(创建/销毁)
完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资源,销毁时
释放资源。
(2)可见与不可见(启动/重新启动/停止)
当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到
停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先
到重新启动状态,再到一般的启动状态。
(3)用户取得屏幕的控制权(继续/暂停)
当有个警告对话框、短信、电话等信息进入时,原来的活动会进入暂停状态,暂时
放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事件。当这些优先级高的
事件处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。
3.4.2 活动的运作流程
由实际运行来看,我们可以归纳出所有Android应用程序都遵循的运作流程:
(l)一般启动
启动一个活动的基本流程为onCreate一>onstart一>onResume。该流程首先分配资
源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,
取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。
(2)调用另一个活动
调用另一个活动的基本流程为onPause(l)一>onCreate(2)一>onStart(2)
一>0nResume(2)一>onStop(l)。该流程首先冻结原来的活动,再交出屏幕控制权;直到
活动2完成一般启动流程后,活动1才会被停止。
(3)回到原来活动
回到原来活动的基本流程为onPause(2)一>onRestart(1)一>onStart(l)
一>onResume(1)一>onStop(2)一>onDestroy(2)。另外按返回键也可以回到原来的活动。
(4)退出结束
退出结束的基本流程为onPause一>onStop一>onDestroy。如果程序中有直接调用
finish方法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。
(5)回收后再启动
回收后再启动的基本流程为onCreate一>onStart一>onResume。如果被回收掉的活
动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法。
当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启
过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换
时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时
将资料读出来。
4 需求分析
4.1 背景
软件开发提出者:太原理工大学软件学院。
开发者:李铭凯。
用户:太原理工大学全体学生。
用户特点:只存在在校就读学生一类用户,不需项目经费。
软件适用范围:所有基于Android操作系统的智能触屏手机。
4.2 假定条件下的约束限制
4.2.1 硬件约束
表4-1 硬件约束表
需求名称
软件硬件要求
软件系统平台
4.2.2 用户约束
摸屏功能
详细要求
支持Android操作系统的嵌入式平台,支持wifi功能,带触
表4-2 用户约束表
需求名称
太原理工大学学
生
会简单的触摸屏操作
详细要求
4.3 系统目标
基于Android平台的学生管理系统开发的意图是为便于学生对本人成绩和课表的
查询以及对教务系统密码的修改。
4.4 先行组织机构及业务现状
太原理工大学教务系统,是学生查看个人信息和学校信息的主要途径,在电脑上应
用改系统,机动性不够,限制多(停电,网络出现问题等)。
4.5 功能需求
本系统扮演着提供用户直接查询业务的重要角色,它主要提供友好的,方便的用户
操作界面,接受用户的各项查询以及密码的修改。具体的功能如下:
成绩信息的查询:数据由教务系统提供。可以通过本系统查询本学期成绩,及格成
绩和不及格成绩。
课程信息的查询:数据由教务系统提供。可以通过本系统查询本学期的课表。
密码的修改:可以将密码提交到教务系统进行密码的修改。
4.6 性能需求
手机应用程序需要提供良好的用户体验。良好的用户体验体现在以下三点:
4.7 界面友好
我们的用户界面非常的简洁美观,并且易于操作。
我们的软件能快速处理用户的输入或查询,对于有些需要较多时间的应用程序,我
们会在他处理时,给用户一个数据正在处理的提示,让用户知道程序还在运行中。
4.8 快速响应
我们的软件能快速处理用户的输入或查询,对于有些需要较多时间的应用程序,我
们会在他处理时,给用户一个数据正在处理的提示,让用户知道程序还在运行中。
4.9 数据安全
本系统采用二级安全保障
第一级:依赖于网络本身对用户使用权限的规定。
第二级:在程序模块上通过使用密码控制功能对用户使用权限加以限制。
4.10 数据需求
本系统采用二级安全保障
第一级:依赖于网络本身对用户使用权限的规定。
第二级:在程序模块上通过使用密码控制功能对用户使用权限加以限制。
太原理工大学教务系统为数据提供者。所有内容需要院方先对所有学生有相关资料
存储,再通过登录认证,方可查询相关业务。
5 系统概要设计
系统功能模块
Android平台的学生管理系统是一个集web、数据库、移动终端一体的应用系统。
经过考虑,我选取了本学期成绩查询、及格成绩查询、不及格成绩查询、本学期课表查
询以及密码修改这几个试用率最高的这几个功能,具体的功能模块设计如图5-1所示:
成绩查询
课表查询
登录模块
选择模块
其他功能
本
学
期
成
绩
及
格
成
绩
不
及
格
成
绩
密
码
修
改
分
享
检
查
更
新
图5-1 系统功能模块示意图
5.2 系统实现流程图
启动系统之后,会进入到登陆界面,通过输入正确的账号密码,会直接进入到成绩
查询界面,通过点选选项,可以进入到课表查询和其他功能界面。系统实现流程图如图
5-2所示:
图5-2 系统实现流程图
5.3 网络传输模块概要设计
5.3.1 设计思路
在网络传输功能中, 我们是把手机设为client端。太原理工大学的教务系统作为
server端来使用。手机端向server端发送请求或者发送数据,server端接收请求并返回
结果。在软件中,每一个功能模块都需要用到网络传输功能,建立连接,保持通信,获
取和传递信息等等,可以说网络传输功能贯穿了我们整个管理系统。客户端与服务器端
的关系如图5-3所示:
Server发送数据
Client 接收
图5-3 Client端与server端关系图
Client 发送请求
Server接收
5.3.2 数据获取
刚开始想的时候,我想到了院方提供现成的数据库,直接获取数据库上的信息,再
通过无线网络传输到手机。但院方的数据库不对外开放。经过思考,我最终决定使用
jsoup来解决这一问题。
5.3.3 网络连接
在解决了数据获取的问题之后,我开始着手网络连通的问题上。为了保证可以持续
会话,必须将登录后的cookie保存起来,当每次访问教务系统时候就在请求体中加上
保存好的cookie。在cookie的有效期内,都可以通过这个cookie进行各项功能的实现。
当cookie过期后,会跳到登录界面,登录后会将新的cookie保存。
6 系统详细设计与实现
6.1 登录模块
因为我们的数据提供者是太原理工大学教务系统,在获取账号密码后,提交到,向
server端发送请求,验证账号密码正确。在登录模块中运用了HTTP协议post请求方法。
使用了Jsoup包来获得hidden数据。
获取输入框中的学号和密码:
String number = ().toString();
String password = ().toString();
登录前对网络状态进行判断:
ConnectivityManager connectivityManager = (ConnectivityManager)
();
if (connectivityManager == null) {
return false;
} else {
NetworkInfo[] info = ();
if (info != null) {
for (NetworkInfo network : info) {
if (() == ) {
return true;
}
}
}
}
return false;
以post方式提交请求:
String html = + "?" + "zjh=" + account + "&mm="
+ password;
(html);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(html);
HttpResponse response = (post);
获取到登陆成功后的cookie:
HttpEntity entity = ();
(entity);
cookies = ((AbstractHttpClient) client).getCookieStore().getCookies();
SharedPreferences pre = getSharedPreferences("tyut",MODE_APPEND);
登录成功后将学号和密码保存起来:
Editor editor = ();
("number", number);
if (()) {
("password", password);
} else {
}
();
().remove("password").commit();
登录界面效果图如图6-1所示:
图6-1 登录界面效果图
6.2 成绩查询模块
成绩查询模块是对学生的成绩信息进行查询,包括了本学期成绩、及格成绩和不及
格成绩。这三个模块的功能实现原理是一样的,只是对返回数据的解析会有一些区别。
三个选项是通过一个popwindow实现,点选popwindow中的选项,listview中的数据会
发生改变。该模块还添加了下拉刷新,通过下拉刷新,对成绩信息进行刷新操作。
定义popwindow的关键代码如下:
if (mPopupwinow == null) {
mPopupwinow = new PopupWindow(llyPopView,
// ,
getScreenWidth() / 2, ,true);
(new ColorDrawable(
0x00000000));
(new OnDismissListener() {
@Override
public void onDismiss() {
// TODO Auto-generated method stub
();
});
}
判断网络状态后执行异步任务操作的代码:
if ((getApplicationContext())) {
getFirst = new GetGradeFirst();
();
} else {
(getApplicationContext(), "当前无网络",
}
).show();
异步任务获取成绩信息后对数据处理的代码:
if (() > 0) {
mPullToRefreshListView
();
.setAdapter(new SimpleAdapter(,
result, , new String[] {
"courseName", "credit", "grade" },
new int[] { , , }));
} else {
(, "暂无成绩信息", )
();
}
.show();
成绩查询界面效果图如图6-2所示:
图6-2 成绩查询界面
6.3 本学期课表查询模块
本学期课表查询模块通过模拟登录获取到教务系统的本学期课表页面并对页面进
行解析。获取到的课表数据通过一个开源的表格框架来显示,可以上下和左右滑动来查
看。
对表进行配置的代码:
table = (this, 8);
(titles);
(contents);
(cellTypes);
(cellWidth);
(rowHeight);
(rowTextSize);
(tableResource);
(rowTextColor);
if ((this)) {
CourseAsync course = new CourseAsync();
();
判断网络状态后执行异步任务操作的代码:
}else{
(this, "当前无网络", ).show();
}
异步任务获取课表信息后对数据处理的代码:
//判断执行结果是否为空
if (result != null) {
list = new ArrayList
for (int i = 0; i < (); i++) {
if (i != 0 && i != 33 && i != 34 && i != 67 && i != 68) {
}
((i));
}
course_list = new ArrayList
for (int j = 0; j < (); j++) {
}
for (int a = 0; a < (); a += 8) {
for (int b = a; b < a + 8; b++) {
}
String[] data1 = new String[] { aa, bb, cc, dd, ee, ff, gg,hh };
if (b == a) {
aa = (b);
map = new HashMap
map = (j);
((String) ("courseInfo"));
} else if (b == (a + 1)) {
bb = (b);
} else if (b == (a + 2)) {
cc = (b);
} else if (b == (a + 3)) {
dd = (b);
} else if (b == (a + 4)) {
ee = (b);
} else if (b == (a + 5)) {
ff = (b);
} else if (b == (a + 6)) {
gg = (b);
} else if (b == (a + 7)) {
}
hh = (b);
}
();
}
(data1);
课表信息查询界面效果图如图6-3所示:
图6-3 课表信息界面
6.4 修改密码模块
密码修改功能是模拟教务系统网页进行密码的修改。在手机端将旧密码和新密码输
入以后提交到教务系统服务器端的url。然后通过解析返回的网页来判断是否修改成功。
修改成功后将新的密码保存,旧密码被取代。
修改密码功能的关键代码如下:
//将修改密码需要提交的数据添加到指定url中
String html1 = + "?newPass1="
+ newPass1 + "&newPass2=" + newPass2 + "&oldPass="
+ oldPass + "&yhlbdm=01&zjh=" + account;
HttpClient client2 = new DefaultHttpClient();
((AbstractHttpClient) client2)
.setCookieStore(((AbstractHttpClient) client).getCookieStore());
HttpPost post2 = new HttpPost(html1);
HttpResponse response2 = (post2);
//根据返回结果判断是否登录成功
if (().getStatusCode() == 200) {
("修改成功");
return 1;
}
修改密码界面效果图如图6-4所示:
图6-4 修改密码界面
6.5 分享模块
通过intent可以将文字和图片分享到手机中安装好的应用当中。分享功能的代码如
下:
Intent intent = new Intent();
("text/plain");//设置分享类型
(, content);//设置分享内容
();//设置打开方式
startActivity(intent);
分享界面效果图如图6-5所示:
图6-5 分享界面
7 测试用例
设计过程中出现的问题
本软件的开发比预期中延迟了一个星期。原因主要是对编码阶段所需的时间估计不
准确。这主要由于在某些技术上的问题在设计过程中没有考虑到,导致在编码过程中需
要花一些时间去考虑所遇到技术的问题延迟了完成的时间。
其次编码的不熟悉,经常要查资料,花费时间巨大。
7.2 目标
完善软件。对各个模块进行测试,确保各个模块正常运作。
7.3 运行与测试环境
运行环境:。
测试环境:已成功安装本软件的Android手机以及一学生教务系统账号。
7.4 功能测试
7.4.1 登录模块测试
表7-1 登录模块测试用例表
7.4.2 用户选择模块测试
用例目标
需求描述
步骤
1
操作
测试登录模块是否正常运作
正常登陆
输入数据
账号:2011000169
密码(不公开)
预期结果
顺利进入用户选择界面 输入账号密码
表7-2 用户选择模块测试用例表
用例目标
需求描述
步骤
1
操作
测试用户选择模块是否正常运作
正常显示各功能界面
输入数据
无
预期结果
顺利进入各个功能界面 点击功能选择按钮
7.4.3 各大功能模块测试
表7-3 其他功能模块测试用例表
用例目标
需求描述
步骤
1
2
3
4
5
6
操作
测试各大功能模块是否正常运作
正确显示该模块信息
输入数据
无
无
无
无
旧密码和
新密码
无
预期结果
顺利显示本学期成绩(无本学期成绩为空
白)
顺利显示及格成绩
顺利显示不及格成绩(无不及格成绩为显
示上次操作后的数据)
顺利显示本学期课表(无课表信息则只显
示表结构)
顺利修改密码
顺利将编辑好的信息分享给好友
点击进入成绩查询
界面
点击进入及格成绩
查询模块
点击进入不及格成
绩查询
点击进入本学期课
表查询
点击进入密码修改
点击进入分享
7.5 非功能测试
7.5.1 实时性测试
通过用户的点击操作,一般在两妙内能实现。
7.5.2 安装/反安装测试
在用户手机上进行安装和反安装正常,反安装是删除所有安装内容。
7.5.3 兼容性测试
在引用本软件时,能与其他软件同时正常工作,不会引起兼容性问题。
7.5.4 用户界面测试
表7-4 用户界面测试表
测试内容
窗口切换
各个界面元素的文字显示
各个界面元素支持点击操作
名利执行顺序合理性
反
映
正常
正常
正常
正常
界面元素布局合乎统一的约定 正常
界面元素形状合乎统一的约定 正常
界面上的字体合乎统一的约定 正常
图片合乎统一的约定 正常
总 结
在毕业设计的三个月时间里,收获很大,做毕业设计的整个过程中彷徨过,动摇过,
但最后都挺过来了,因为我知道所有的疑惑必须用行动才能解决,整个毕业设计每遇到
问题,我都提醒自己从时间出发去解决问题,空想是不会解决人和问题的。在软件开发
的各个阶段我遇到了各种各样的问题,通过自己的努力,在老师的帮助下,所有的问题
都迎刃而解,因为天道酬勤。整个毕业设计给我的启示如下:
路是要一步一步的走。任何问题的解决都不是一朝一夕的事情,如果一个问题一秒
钟能够解决的话,那么这也就不再是一个问题了。在系统编码和测试阶段的时候还会因
为一些小问题而大费周折,有时候因为一些很棘手的问题而寸步难行,这些时候我们最
需要的是冷静,路要一步一步的走,不能一口吃一个胖子。耐心的象征解决办法是解决
问题的最快方法也是唯一方法。耐心一点。将遇到的问题一个一个解决,系统就会一点
一点的完善,慢慢的一个完整系统就实现了。不要着急,耐心一点,再耐心一点,是毕
业设计给我的最大启示。
任何问题都不是问题。只要你毅力足够,意志足够,任何问题都不是问题。由于之
前对于JAVA了解不是很多,但是整个软件主要就是用JAVA语言进行开发,而且对于
Android这个系统一点都不了解,毕业设计最初感觉无从下手,但是安心读了几本关于
Android编程的书,自己联系了10多个小程序之后对于Android就有了一些了解,慢慢
的找到了解决问题的方式。事实证明,只要认真努力,没有不可能的事情,没有永远是
问题的问题。
学习思路要开阔。这里指的是学习的方法方式途径。比如,我们要注意身边的人学
习,别人的某些经验可能有些时候对于自己来说是非常宝贵的,我们小组的另外两个成
员对于JAVA和Android都有比较多的认识,很多时候遇到很多问题,询问他们都会得
到一个很好的答案。而网络上也有很多资料,有些是初学者自己学习过程中遇到的为难
题以及自己的解决方式,跟初学者一起交流探索,让我学到了很多以前没有接触过的东
西。对于开阔思路来说非常重要。
做事要三思而后行。做什么事情之前都一定要做好规划,切记盲目,否则,否则,
就违背了软件工程思想。软件各个生命周期的文档时提供给我们做软件规划的,我们一
定要利用好,否则,文档就白写了。
综上所述,通过毕业设计我学到的不仅仅是单纯的知识,更需要的是我掌握了处理
问题是应该具备的心理素质,人的心态决定人的成就,相信毕业设计对我的人生会产生
巨大的影响。
参考文献
[1] Joshua Bloch. Effective Java中文版(第二版). 杨春花,俞黎敏译. 北京:机
械工业出版社,
[2] 杨丰盛. Android技术内幕系统卷. 北京:机械工业出版社,2011
[3] Shane Conder,Lauren Darcey. Android移动应用从入门到精通. 张魏,李卉译.
北京: 人民邮电出版社,2010
[4] Haseman Chris. Android Essentials[M]. Apress. the Expert’s Voice,
[5] Ed Burnette. Hello Android Introducing Google’s Mobile Development PlatForm,
3rd Edition. Pragmatic Bookshelf,2010
[6] 谢希仁. 计算机网络(第五版). 北京:电子工业出版社,2010
[7] 黄宏程,胡敏,陈如松. Android移动应用设计与开发. 北京:人民邮电出版
社,
[8] DevDiv移动开发社区. 移动开发全平台解决方案. 北京: 海洋出版社,
[9] 李刚. 疯狂Android讲义(第二版). 北京: 电子工业出版社,
[10] 韩超,梁泉等. Android系统原理及开发要点详解. 北京: 电子工业出版社.
2010
[11] 余志龙,郑名杰等. Android SDK开发范例大全. 北京: 人民邮电出版社.
2009
致 谢
我在设计(论文)期间都是在胡老师全面、具体指导下完成进行的。胡老师渊博的
学识、敏锐的思维、民主而严谨的作风使学生受益非浅,并终生难忘。
感谢赵涓涓老师在毕业设计工作中给予的帮助。
感谢我的学友和朋友对我的关心和帮助。
附录一 英文文献原文
Android introduction and development environment construction
This barrier to application development began to crumble in November of 2007 when
Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a
group of hardware and software developers, including Google, NTT DoCoMo,Sprint Nextel,
and HTC, whose goal is to create a more open cell phone first product to be released under
the alliance is the mobile device operating system, Android.
Android, as a system, is a Java-based operating system that runs on the Linux system
is very lightweight and full applications are developed using Java and can be ported rather
easily to the new platform.
One of the more exciting and compelling features of Android is that, because of its
architecture, third-party applications—including those that are “home grown”—are executed
with the same system priority as those that are bundled with the core is a major departure
from most systems, which give embedded system apps a greater execution priority than the
thread priority available to apps created by third-party developers. Also, each application is
executed within its own thread using a very lightweight virtual machine.
The Android system is a widely optimistic about an open source phone system, the
system provides a basic operating system, a middle ware application layer, a java
development tools and a system Application collector (collection of system applications). The
Android the SDK since 2007 on the release of the first Android phone in October 2008 before
the birth. Google opened since then on his own time, Taiwan's HTC, the manufacturer of the
T-Mobile G1 estimate G1 shipments have more than one million at the end of 2008.
According to industry insiders expect the G1 mobile phone sales in 2009 continue. Many
other mobile phone suppliers in the near future plans to support this system.
Around an Android and a huge developer community has been established, while a lot
of new products and applications on the Android. Android's main selling point is that it
enables developers to seamlessly expand online services to mobile phones. This is the most
obvious example is Google's tightly integrated with Gmail, Calendar and Contacts Web
applications through the system. Users only need to provide an Android user name and
password, the phone automatically sync with Google services. The other vendors are quickly
adapt their existing instant messaging, social networking and gaming services. Android and
many companies find new ways to integrate their existing business to the Android.
Aside from the very generous SDK and the well-formed libraries that are available to us
to develop with, the most exciting feature for Android developers is that we now have access
to anything the operating system has access to. In other words, if you want to create an
application that dials the phone, you have access to the phone’s dialer; if you want to create
an application that utilizes the phone’s internal GPS (if equipped), you have access to it. The
potential for developers to create dynamic and intriguing applications is now wide open.
On top of all the features that are available from the Android side of the equation,Google
has thrown in some very tantalizing features of its own. Developers of Android applications
will be able to tie their applications into existing Google offerings such as Google Maps and
the omnipresent Google Search. Suppose you want to write an application that pulls up a
Google map of where an incoming call is emanating from,or you want to be able to store
common search results with your contacts; the doors of possibility have been flung wide open
with Android.
Now begins your journey to Android development.
1、Downloading and Installing Eclipse
(1)Selecting a development environment
In keeping with the Open Handset Alliance’s theme of truly opening the mobile
development market, Eclipse is one of the most fully featured, free, Java IDEs available.
Eclipse is also very easy to use, with a minimal learning curve. This makes Eclipse a very
attractive IDE for solid, open Java development.
(2)Downloading Eclipse
Navigate to the Eclipse Downloads page at (79MB) and should download fairly quickly.
(3)Installing and configuring Eclipse
Expand the package and run the file. Eclipse installs to your User directory by default
(under Microsoft Windows).Once the Eclipse installation commences, you will be prompted
to create a default workspace, or folder. Just as in most development environments, projects
are created in, and saved to, a workspace. The default path for the workspace is your User
directory. To select a different location, click Browse and navigate to you select a location
for your workspace, click OK.
At this point, your development environment is downloaded and installed. While the
installation of Eclipse seemed deceivingly quick, you still need to do some configuration
work before you can create your first Android project. Much of the configuration work that
you need to do centers on the Android SDK and the Android plugin for Eclipse.
2、Downloading and Installing the Android SDK
(1) Downloading the Android SDK
The Android SDK is easily accessible from the , click the Download the SDK link under
Getting Started. After you agree to the terms of the Android SDK License Agreement, you
will see the Download the Android SDK page. The Android SDK is downloaded in a
79MB(for Windows) package and it should download fairly quickly. Click the package name
for your operating system to begin the is no “setup” or installation process to speak of for
the Android SDK; rather,you must follow a series of steps to associate the SDK with your
Eclipse development environment. The first of these steps is to obtain the Android plugin for
Eclipse, after which you will configure it.
(2) Using the Update feature of Eclipse
(3) Downloading, installing, and configuring the Android plugin for Eclipse
Installing:
1) Open the Eclipse application. You will download the Android plugin for Eclipse from
within the Eclipse IDE.
2)Choose Help | Software Updates | Find and Install.
3)In the Install/Update window, which allows you to begin the process of downloading
and installing any of the plugins that are available to you for Eclipse, click the Search for
New Features to Install radio button and then click Next.
4)The Update Sites to Visit page of the Install window, shown next, lists all the default
websites used for obtaining Eclipse plugins. However, the plugin you want, Android for
Eclipse, is not available from the default sites. To download the Android plugin,you must tell
Eclipse where to look for it, so click the New Remote Site button.
5)In the New Update Site dialog box, shown next, you must enter two pieces of
information to continue: a name for your new site, and its associated URL. The
name is only for display purposes and does not affect the downloading of the plugin.
In the Name field, enter Android Plugin. In the URL field, enter the URL from which Eclipse
will obtain information about the plugins that are available:
Configuring:
1)From the main Eclipse window, choose Window | Preferences.
2)In the Preferences window, shown next, select Android in the menu on the left. On the
right side of the window, click Browse, find the location of the Android SDK on your hard
drive, and enter it in the SDK Location field. Eclipse needs this information to be able to
access all the tools that are supplied with Android, such as the emulator.
(4) Checking the PATH statement
The final step in setting up the Android SDK is to put it into your PATH statement. If
you are using a Microsoft Windows machine, right-click Computer (or My Computer,
depending on your version of Windows) and select Properties to open the System
Properties dialog box. Click the Advanced Environment Variables to display the window of
the same name, shown in the following illustration. This is where you can edit your PATH
System Variables, find the variable PATH and double-click the Edit System Variable dialog
box, shown next, add the location of your Android SDK—separated from the existing paths
by a semicolon—and click OK to apply your changes, and click OK again in the
Environment Variables window.
3、Exploring the Android SDK
(1) Using the Android SDK documentation
The Android documentation is located in the Docs folder within the Android SDK
at../%sdk folder%/DOCS. The documentation that is supplied with the SDK includes steps on
downloading and installing the SDK, “Getting Started” quick steps for developing
applications, and package definitions. The documentation is in HTML format and can be
accessed though the file in the root of the SDK can navigate to all of the documentation
that is included in the Android SDK by using the links within .
(2) Using the Android SDK tools
(3) Using the sample applications
Using Eclipse, load the API Demos application as a New Android Project. To do
this,select File | New | Project from the Eclipse menu bar; a New Android Project wizard
opens. Do not worry about the options in this wizard for now. Simply select Create Project
From Existing Source and browse to the folder with the API Demo application in it. When
the project is loaded, choose Run to see it execute in the Android Emulator.
(4) Learning the life cycle of an Android application
The Android application life cycle is unique in that the system controls much of the life
cycle of the application. All Android applications, or Activities, are run within their own
process. All of the running processes are watched by Android and, depending on how the
activity is running (this is, a foreground activity, background activity, and so forth),Android
may choose to end the activity to reclaim needed resources.
附录二 中文译文
Android简介和开发环境的搭建
在2007年11月,当Google,在开放手机联盟下,发布Android,这个对于应用程
序开发者的障开始消失。开放手机联盟是一个硬件和软件开发者组织,它包括Google、
NTT DoCoMo,Sprint Nextel,和HTC,它的目标是创建一个更开放的手机环境。在
开放手机联盟组织下发布的第一个产品是Android-移动设备操作系统。
Android作为一个系统,,,能够十分简单的装入新的平台。
Android一个最令人兴奋和注目的特色是它的架构,三部分运用程序-包括
“home-grown”当这些和内核系统绑定,可带有同样的系统优先权执行。这是和大多
系统一个主要的违背,它给了嵌入式系统应用程序一个比进程优先级(从第三方开发者
创建的应用程序获得)更大的执行权。每一个应用程序在它自己的进程里使用一个很轻
量级的虚拟机执行。
Android 系统是一个被广泛看好的一个手机开源系统,该系统提供一个基本的操作
系统,一个中间件应用层,一个java开发工具和一个系统应用收集器(collection of system
applications)。尽管Android SDK自2007年就发布了,但是第一部Android 手机却在
2008年10月才诞生。自从这时起谷歌开起了自己的时代,T-Mobile的G1的制造商台
湾 HTC估算G1的发货量在2008年底已经超过100万部。据业内人士预期该G1手机
的销量将会在2009年继续保持。不久的将来其他许多手机供应商要计划支持这个系统。
一个围绕Android庞大的开发者社区已经建立,同时很多新的产品和应用已经可以
在Android上使用。一个Android的主要卖点是它使开发人员无缝把在线服务扩展到手
机。这方面最明显的例子是谷歌的紧密集成Gmail,日历和联系人Web应用程序通过
该系统。用户只需提供一个Android用户名和密码,其手机自动同步与谷歌的服务。其
他厂商正在迅速适应自己的现有的即时通讯,社交网络和游戏服务。Android和许多企
业寻找新途径来整合他们的自己已有的业务到Android上。
除了我们能够获得用来开发的很大量的SDK和良好的架构库,对于Android开发
者最令人兴奋的特色是我们现在允许进入任何操作系统所允许的。换句话说,如果你要
创建一个拨电话的应用程序,你可接近电话拨号程序,如果你想创建一个利用电话的内
在GPS的应用程序(如果配备),你可以接近它。对于开发者创建动态的和令人感兴趣
的应用程序的可能性现在是宽阔开放了。
在这些特色中最顶级的是从Android网站可获得的平衡,Google已经投放一些它自
己非常逗弄的特色。Android应用程序开发者将能够去把自己的应用程序连接到Google
提供的已经存在的程序(例如GoogleMaps、不所不在的Google搜索)上。假设你想写
一个获取一个打进电话的发出地的Google地图,或者你想能够存储你联系的一般搜索
结果;利用Android可能性的大门已经成为直冲的开放和宽阔。
现在将开始你的Android开发之旅。
一、下载和安装 Eclipse
(1)选择一个开发环境
为了符合开放手机联盟真正开发手机开放市场的主题,Eclipse是一个最完全该
特色、自由、可获得的Java IDEs中的一个。Eclipse也使用非常简单,最小的学习弯路。
这使得Eclipse成为一个非常吸引人的坚固的开源Java开发IDE。
(2)下载 Eclipse
导航进入下载页面:。从此网站下载Java开发者专用的Eclipse IDE。安装包十
分小(79M),并且下载也会相当快。
(3)安装和配置 Eclipse
解压安装包,,Eclipse默认安装到你用户目录下。一旦Eclipse 安装开始,你会
被催促去创建一个默认的工作空间,或是文件夹。正如多数的开发环境,工程在工作空
间里创建和保存。默认的工作空间路径是你的用户目录。要选择不同的路径,点击
Browse,并且导航进入来设置它。在你选择了你工作空间路径后,点击OK。
到这,你的开发环境被下载和安装好了。而Eclipse的安装看上去快得出奇,
但在你能创建你的第一个Android工程前,你仍然需要去做一些配置工作。许
多需要你去完成的配置工作重点是在Android SDK和Android Eclipse 插件
上。
二、下载和安装 Android SDK
(7)下载 Android SDK
Android SDK很容易从。从开发主页,点击“Getting Start”下面的SDK下载链接。
在你同意Android许可协议条款后,你将看到Android SDK下载页面。Android SDK是一
个79M的下载包(对于Windows)并且下载会相当快。点击对应你操作系统的包开始下
载。
对于Android SDK,没有“setup”或是安装步骤涉及到。相反,你必须遵照一系列
的步骤来把SDK和你的Eclipse 开发环境结合起来。这些步骤的第一步是获得Android
Eclipse插件,这之后你要配置它。
(8)使用 Eclipse 更新特性
(9)下载、安装和配置Android Eclipse 插件
安装:
1)打开Eclipse应用程序。你将在Eclipse里面下载Android Eclipse 插件。
2)选择Help|Software Updates|Find and Install。
3)在Install/Update 窗口中,它允许你开始下载和安装任何一个对于你的
Eclipse可以获得的插件的步骤,点击“Search for New Features to Install”
点选按钮,接着点击Next。
4)安装窗口中的“Update Sites to View”页面,在下面显示,列出了所有
已经得到的Eclipse插件的默认网址。然而,你想要的Android Eclipse插件,
在默认网址里没有。为了下载Android 插件,你必须告诉Eclipse 在哪里可以
找到它,因此,点击“New Remote Sites”按钮
5)在"New Update Site"对话框中,下面显示的,你必须键入两个信息来继
续:新站点的名称和可用的URL链接。名称只是为了显示用的,对下载的插件
没有影响。在名称域中,填入Android Plugin,URL域中键入Eclipse能够从
该URL获得可用插件信息的URL:
。点击OK。
配置:
1)从Eclipse主窗口选择Window|Preference 。
2)在“Preferences”(偏好)窗口中,如下所示,在左边菜单中选择Android。在窗
口右边,点击Browse,找到你硬盘中Android SDK的位置,并把它选入到SDK Location
域中。Eclipse需要这个信息才能够使用所有Android支持的工具,例如模拟器。
(10)检查PATH 变量
安装Android SDK最后一步是把它设入你的PATH变量中。右击“电脑”(或“我
的电脑”,依赖于你的Windows版本),并选择“属性”来打开系统属性对话框。点击“高
级”标签。点击环境变量来显示同名的变量窗口。这是你能够编辑PATH变量的地方。
在系统变量中,找到PATH变量并双击它。在系统变量编辑对话框中,下面所示的,添
加Android SDK的路径(注意:Android SDK 下的tools文件夹的路径)-用分号来和存在
的路径分隔-并点击OK来应用你的更改,再次点击环境变量窗口上的OK。
三、浏览 Android SDK
(5)使用 Android SDK 文档
Android文档位于Android SDK里的Docs文件夹中在/%sdk 文件夹%/DOCS
下。和Android SDK一起被提供的Android 文档包括下载和安装SDK的步骤、
快速开始开发应用程序的步骤、包的定义。这个文档是HTML格式的并能在SDK
。,你可以导航到Android SDK中包含的所有文档。
(6)使用 Android SDK 工具
(7)使用例子程序
使用Eclipse把API Demos作为新的Android 工程项目加载。要这样进行,从
Eclipse菜单栏中选择File|New|Project;一个新的Android 工程项目向导就
打开了。从现在不要担心在这个向导中的选项了。选择“从已有的资源创建工
程”并浏览加载有API Demo运用程序的文件夹到里面。当工程已经加载,选择
“Run”来看看它在Android模拟器中执行。
(8)学习 Android 应用程序生命周期
在许多程序的生命周期中,Android应用程序生命周期中系统控制方面是独一
无二的。所有正在运行的进程被Android监视并依赖于这个Activity是如何运行(当前的
Activity,一个已分配的Activity,后台Activity,或是第四种),Android可能会选择终止
这个Activity来收回需要的资源。所有Android 程序,或是Activity,是在它们自己进程
中允许的。