基于android学生基本信息管理的设计与开发_第1页
基于android学生基本信息管理的设计与开发_第2页
基于android学生基本信息管理的设计与开发_第3页
基于android学生基本信息管理的设计与开发_第4页
基于android学生基本信息管理的设计与开发_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

基于ANDROID学生基本信息管理的设计与开发摘要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问WEB网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年GOOGLE推出了一款名为ANDROID的开源智能手机操作系统,它采用LINUX内核,开放手机联盟OHA成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。ANDROID的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,ANDROID平台具有无限的吸引力。本文就在分析讨论ANDROID手机软件开发技术原理的基础上,开发出能为太原理工大学学生提供更好的基于ANDROID的学生信息管理软件。关键字太原理工大学;ANDROID;学生基本信息BASEDONTHEANDROIDSDESIGNANDDEVELOPMENTOFSTUDENTSBASICINFORMATIONMANAGEMENTABSTRACTWITHTHERAPIDPROLIFERATIONOFSMARTPHONES,SMARTPHONEOPERATINGSYSTEMMARKET,WINDANDWATERINORDERFORSMARTPHONEUSERSTOCHECKTHEINTERNETANYTIME,ANYWHERESERVICESPROVIDEDANEFFICIENTWAYTOEXPANDTHEFUNCTIONOFTHESYSTEMWILLBEAPPLIEDTOTHEMOBILEPHONETERMINAL,THEMOBILEPHONETOINTERNETACCESSVIAMOBILENETWORKS,ANDVARIETYOFWEBSITESANDPROCESSBUSINESSTHEREFORE,THESMARTPHONEAPPLICATIONSANDTHENEEDFORTHESERVICEWILLHAVEBROADPROSPECTSFORDEVELOPMENTINTODAYSSMARTPHONESYSTEMWHENDISPUTESWARLORDS,2008,GOOGLEINTRODUCEDASMARTPHONECALLEDTHEANDROIDOPENSOURCEOPERATINGSYSTEM,WHICHUSESLINUXKERNEL,OPENHANDSETALLIANCEOHAMEMBERSCANBEFREETOUSEANDMODIFYTHESDKPACKAGE,THESYSTEMITHASAGOODOPENSOURCENATUREOFTHEEXPANSIONOFTHESOFTWAREINCLUDESTHEOPERATINGSYSTEM,USERINTERFACEANDAPPLICATIONSTHATNEEDTOWORKSMARTPHONESALLTHESOFTWAREANDROIDSBIGGESTFEATUREISITSOPENARCHITECTURE,NOTONLYHASAVERYGOODDEVELOPMENTANDDEBUGGINGENVIRONMENT,BUTALSOSUPPORTSAVARIETYOFSCALABLEUSEREXPERIENCE,INCLUDINGRICHGRAPHICALCOMPONENTS,MULTIMEDIASUPPORT,ANDPOWERFULBROWSERTHEREFORE,FORSOFTWAREPROFESSIONALSIS,ANDROIDPLATFORMHASUNLIMITEDAPPEALINTHISPAPER,THEANALYSISANDDISCUSSIONANDROIDMOBILEPHONESOFTWAREDEVELOPMENTTECHNOLOGYONTHEBASISOFTHEPRINCIPLE,DEVELOPEDTOPROVIDESTUDENTSWITHBETTERPLATFORMTOSTUDENTSBASICINFORMATIONMANAGEMENTBASEDONANDROIDMETEOROLOGICALSOFTWAREKEYWORDSTAIYUANUNIVERSITYOFTECHNOLOGYANDROIDINFORMATIONMANAGEMENT目录摘要IABSTRACTII1绪论111课题背景112系统内容及开发意义12ANDROID平台及相关技术简介221ANDROID现状及发展222ANDROID系统特点223ANDROID的功能特征324ANDROID架构分析4241应用程序框架4242类库525运行环境6251操作系统6252ANDROID开发变量及其配置626ANDROID开发环境搭建6261计算机配置6262安装JDK6263安装ECLIPSE7264安装SDK7265安装ADT7266设置ECLIPSE8267创建AVD827HTTP协议828JSOUP9281简介9282文档输入10283解析并提取HTML元素10284修改数据10285HTML文档清理103ANDROID应用程序结构剖析1131ANDROID的API1132ANDROID应用程序结构解析12321活动12322意图接收器13323服务13324内容提供者1333INTENT的详细解析13331INTENT的抽象描述13332ANDROID中INTENT的使用1434ANDROID活动的生命周期15341活动的生命状态15342活动的运作流程174需求分析1841背景1842假定条件下的约束限制18421硬件约束18422用户约束1843系统目标1844先行组织机构及业务现状1845功能需求1946性能需求1947界面友好1948快速响应1949数据安全19410数据需求195系统概要设计2151系统功能模块2152系统实现流程图2153网络传输模块概要设计22531设计思路22532数据获取23533网络连接236系统详细设计与实现2461登录模块2462成绩查询模块2663本学期课表查询模块2864修改密码模块3065分享模块327测试用例3371设计过程中出现的问题3372目标3373运行与测试环境3374功能测试33741登录模块测试33742用户选择模块测试33743各大功能模块测试3475非功能测试34751实时性测试34752安装/反安装测试34753兼容性测试35754用户界面测试35总结36参考文献37致谢38附录一英文文献原文39附录二中文译文441绪论11课题背景随着科学技术的发展,计算机网络技术的普及和对办公效率的要求越来越高,很多高校开始网络化办公改革,将更多的平常工作(入通信联系,发放通知,传递文件等)通过网络这个平台来完成。经过一段时间的发展,网络在搞笑日常锅里中实现的功能越来越多,数字化校园管理系统应运而生。我们学校是采用浏览器/服务器(B/S)模式,这种模式想对最初的人工管理方便了许多,不在需要大量的人力,学生要登陆并操作管理系统也不再需要排队和拥挤,更不会因为在系统上的操作会耽误正常的教学任务(问卷调查等)。B/S模式的校园信息系统只需要一台能访问网络的浏览器即可。只要信息系统服务器端提供个人信息,考试成绩,课程表等等业务模块,在客户端的浏览器视窗中就能进行相应模块的功能管理。这种B/S模式的信息管理系统具有不限时间,地点等优势,然而随着移动互联网的发展这种B/S模式的信息管理系统也存在很多不足,比如你想要进行相关操作,就必须坐在电脑前,而且课程开设的通知等等也是要通过上网才知道,对于一些不常上网的同学可能会错过很多有用的消息,比如说课程调整,成绩发布等等。而这些缺陷都可以通过移动终端来解决。12系统内容及开发意义综上所诉,在平时的校园生活中,教务系统给予各系的同学许多方便,学校缴费,选课调课,查询考试,报名考证等等,都可以通过电脑登录教务系统来得到解决。而为了让教务系统变得更加便利,我们有必要开发一个基于ANDROID平台下的学生信息信息管理系统。同学们就可以通过安装有ANDROID系统的只能手机来登陆和操作信息管理系统,并随时随地查看信息系统的信息。同时对于软件工程系的我而言,这是见证我们四年所学的最佳机遇。这一次的软件开发过程,给了一个让我发挥的平台。2ANDROID平台及相关技术简介ANDROID现状及发展ANDROID是GOOGLE开发的基于LINUX平台的开源手机操作系统。它包括操作系统、用户界面和应用程序移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。GOOGLE与开放手机联盟合作开发了ANDROID,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和TMOBILE在内的30多家技术和无线应用的领军企业组成。GOOGLE通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。ANDROID作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息“这一企业目标的实现。我们发现,全球为数众多的移动电话用户从未使用过任何基于ANDROID的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,ANDROID将补充,而不会替代谷歌长期以来奉行的移动发展战略通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。开放手机联盟的成立和ANDROID的推出是对现状的重大改变,在带来初步效益之前,还需要不小的耐心和高昂的投入。在2012年,ANDROID手机的全球销量为4815部,占据了全球智能手机688的市场份额。在2013年,这个数字上升到了7812亿、789,这是一个相当惊人的数字。不过,这些数字当中,还蕴含了一些有趣的部分。比如在2013年第四季度,25的ANDROID手机并未包含谷歌服务,以亚马逊、国内的小米等厂商为主。显然,这种现象说明了即使ANDROID极受欢迎,但碎片化则十分严重。再来看看ANDROID版本的分布情况。目前,最新的ANDROID44显然尚不成气候,ANDROID43/42/41则占据了591的份额,ANDROID40下降到169,其他225则是老旧的ANDROID2X。显然,双核/四核处理器已经向低端产品普及,越来越多的手机都能够搭载更新版本的系统版本,但碎片化依然是谷歌需要考虑的课题。22ANDROID系统特点ANDROID系统最震撼人心之处在于其开放性和服务的免费性方面。ANDROID是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了IPHONE等只能添加为数不多的固定软件的枷锁;同时与WINDOWSMOBILE现叫WINDOWSPHONE、SYMBIAN等厂商不同,ANDROID操作系统免费向开发人员提供,这样可节省30的成本。ANDROID平台的手机以及平板电脑具有以下5大特点1、开放性。在优势方面,ANDROID平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到ANDROID联盟中。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很将走向成熟,苹果的IOS系统封闭;无向任何厂商提供,WINDOWSPHONE系统封闭,厂商需要花高价购买;NOKIA的SYMBIAN之前也一直是封闭,现在已经末落了。2、挣脱运营商的束缚。在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从ANDROID上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意揍人网络已不是运营商口中的笑谈。3、丰富的硬件选择。这一点还是与ANDROID平台的开放性相关。由于ANDROID的开放性,众多的厂商会推出丰富多彩、各具特色的多种产品。功能上的差异和特色却不会影响到数据同步、甚至软件的兼容性。好比用户从诺基亚的SYMBIAN(塞班)风格手机一下改用装载ANDROID(安卓)系统的手机,同时还可将SYMBIAN中优秀的软件带到新手机上使用,联系人等资料更是可以方便地转移。4、不受任何限制的开发商。ANDROID平台提供给第三方开发商一个十分宽泛、自由的环境,因此不会受到各种条条框框的阻挠,可想而知,这样会有多少新颖别致的软件会诞生。但这也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给ANDROID开发人员的难题之一。5、无缝结合的GOOGLE应用。如今GOOGLE在互联网领域已经走过十多年历史,从搜索巨人到全面的互联网渗透,GOOGLE服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而ANDROID平台手机将无缝结合这些GOOGLE应用。23ANDROID的功能特征L应用程序架构在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。2DALVIK虚拟机器在ANDROID平台上所使用JAVA虚拟机,不是SIM公司的标准JAVA虚拟机,而是使用GOOGLE自主开发的代号为DALVIK的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。3集成的浏览器集成的浏览器是ANDROID内建的浏览器,是以WEBKIT的浏览引擎为基础所开发成的。WEDKIT是一个开源浏览器网页排版引擎,目前使用WEBKIT引擎的浏览器主要有SAFARI,MIDORI,EPIPHANY等。配合ANDROID手机的功能,可以在浏览网页时,达到更好的效果,例如局部性的缩放网页上的资讯、触控式的操作等效果。4优化的绘图能力在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,ANDROID提供了一套特有的类库SGL而在3D方面则是使用OPENGLES10OPENGLFOREMBEDDEDSYSTEMS规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。5SQLITE数据库SQLITE提供结构化的数据存取。SQLITE是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持WINDOWS/LINUX/UNIX等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,JAVA等,还有ODBC接口,同样比起MYSQL,POSTGRESQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLITE也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。6多媒体的支持能力主要用于播放媒体文件。这同时包括对音频如播放MP3或其他音乐文件等和视频如播放从网上下载的视频的支持,并支持“播放URI地址”NOTEURI即是统一资源识别地址模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如JPG、PNG、GIF等格式。7GSM技术GLOBALSYSTEMFORMOBILECOMMUNICATIONS,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。8蓝牙、EDGE、3G及WIFI蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGEENHANCEDDATARATEFORGSM,EVOLUTION,即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。WIFIWIRELESSFIDELITY,即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是24GHZ附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802LLA和IEEE80211B。这些通讯能力也是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。9GPSGLOBALPOSITIONINGSYSTEM,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发ANDROID应用程序是可以突出的特点之一。24ANDROID架构分析241应用程序框架在ANDROIDSDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有L一套强大和可扩展的视图系统用来建构一个应用程序的基本组件,包了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的WEB浏览器。2内容提供者使应用程序可以访问另一个应用程序的数据如联系人数库,或者共享它们自己的数据。3资源管理器提供各种非程序代码的资源让应用程序去使用。例如本字符串、图形文件或排版相关的布局文件。4通知管理器提供应用程序在状态栏中显示应用程序自定义的提示信息。5活动管理器管理所有应用程序的生命周期及提供常用的导航回退功能。例如启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。6视窗管理器用来管理所有启动程序的视窗。7位置管理器用来管理地图服务的相关功能。8电话管理器用来管理用户拨打与接听电话的相关功能。9包管理器管理所有安装在ANDROID系统内的包。242类库在ANDROID中包含一些C/C的类库,这些类库能被ANDROID系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下1SURFACEMANAGER主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如在2D、2D显示上的合成、叠合动作。23DLIBRARIES主要是依OPENGLES10规范所定义的3D绘图引擎。该库使用硬件加速当硬件可用时,可以将硬件的3D功能做最佳化的处理显示。3SGL主要是处理有关显示2D方面的绘图引擎。4MEDIAFRAMEWORK主要是以PACKETVIDEO公司的OPENCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如MPEG4、H264、MP3、AAC、AMR、JPG、PNG、GIF等格式5FREETYPE主要是用来显示点阵图和处理向量字形的。6SSLSECURESOCKETSUYER,中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为30。SSL协议指定了一种在应用程序协议如HTTP、TELENET、NMTP和FTP等和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于WEB浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层SSL记录协议SSLRECORDPROTOCOL它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议SSLHANDSHAKEPROTOCOL它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有认证用户和服务器,确保数据发送到正确的客户机和服务器加密数据以防止数据中途被窃取维护数据的完整性,确保数据在传输过程中不被改变。7SQLITESQLITE是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。8WEBKIT是一个先进的网页浏览器引擎,被用来构建ANDROID浏览器和内嵌的WEB视图,也可以让开发者利用这个引擎来做不同的应用。9LIBC就是一个BSD标准C类库。但是,针对LINUX嵌入式装置进行过最佳化的调整。25运行环境251操作系统WINDOWSXP或者VISTAMACOSX1048或者更高版本(仅支持X86)LINUXLINUXUBUNTUDAPPERDRAKE252ANDROID开发变量及其配置ECLIPSE33EUROPA,34GANYMEDEECLIPSEJDT插件(大多数的ECLIPSEIDE包包含)WST(可选,但ANDROID编辑器的功能需要,他被包含在MOSTECLIPSEIDEPACKAGES中)JDK5或者JDK6(中有JRE是不够的)ANDROIDDEVELOPMENTTOOLS插件(可选)不兼容GNUJAVA编译器26ANDROID开发环境搭建261计算机配置开发ANDROID应用所用到的开发工具较占内存,尤其是模拟器。官方并未给出最低配置要求,根据个人实际体会,在本人INTELCOREI72630QM四核处理器及8G内存的情况,能流畅使用。另外还需有600MB以上的剩余磁盘空间(官方文档中的说明)。262安装JDK由于ANDROID开发是基于JAVA的基础上的,所以我们必须得安装JDK(JDK下载地址HTTP/WWWORACLECOM/TECHNETWORK/JAVA/JAVASE/DOWNLOADS/INDEXHTML)。安装过程中应对系统的环境变量做出相应的设置1右击计算机属性高级系统设置高级环境变量,新建“系统变量”,设置变量名“JAVA_HOME”。变量值“CPROGRAMFILESJAVAJDK170_02”(视个人安装路径而定)。2找到变量名为PATH的项,双击,在变量值后面添加“JAVA_HOMEBIN”,3新建“系统变量”变量名“CLASSPATH”,变量值“JAVA_HOMELIBDTJARJAVA_HOMELIBTOOLSJAR”配置完成后,重启可以在CMD下输入JAVA或者JAVAC测试。263安装ECLIPSEECLIPSE是我们以后在ANDROID开发时使用的开发平台,它集成了很多功能以及插件,在开发的过程中便于我们使用,在官网(HTTP/WWWECLIPSEORG/DOWNLOADS/)可以下载到对应系统以及功能的安装包,在安装提示安装完成后并且完成了JDK的安装后即可正常使用。264安装SDKSDK(SOFTWAREDEVELOPMENTKIT)初始包中有开发ANDROID程序所要用到的工具,它包括了从编译到运行ANDROID应用程序所需要的各种工具。安装时可以根据自己的需求选择安装相应的版本。SDK下载地址HTTP/DEVELOPERANDROIDCOM/SDK/INDEXHTML)265安装ADT按照234安装完SDK初始包后,就可以开始开发ANDROID应用程序了,但是为了更高效地进行开发,ANDROID团队推出了ANDROIDDEVELOPMENTTOOLSADT。ADT是目前开发ANDROID应用最有效的工具,它是一个ECLIPSE插件,支持ECLIPSE34及34以上的版本。以ECLIPSE35GALILEO为例,安装过程如下(1)打开ECLIPSE,选择HELPINSTALLNEWSOFTARE。(2)在AVAILABLESOFTWARE对话框中,点击ADD。(3)在弹出的ADDSITE对话框中,任意填写一个名字到NAME一栏。在LOCATION一栏,则填入这一URL“HTTPS/DLSSLGOOGLECOM/ANDROID/ECLIPSE/”,然后确认返回。(注意如果在后续的步骤中发现无法安装插件,可以试着把URL中的HTTPS换成HTTP。)(4)返回到AVAILABLESOFTWARE窗口后,就能看到列表中出现了“DEVELOPERTOOLS“,选中它前面的复选框,再点击“NEXT”,就会开始下载安装ADT的各种组件了。(5)安装完毕后将弹出窗口显示ADT相关的各种信息以及许可协议,点击“FINISH“即可完成安装。(6)重新启动ECLIPSE。266设置ECLIPSE(1)选择“WINDOWPREFERENCES“打开偏好设置(2)从左侧边栏中选择“ANDROID“一栏。(3)单击SDKLOCATION一栏边的BROWSE按钮,选择刚刚下载的SDK保存的路径。(4)点击APPLY,OK,设置生效。至此,ANDROID的开发环境就已经搭建完毕,可以使用了。267创建AVD在安装好JDK,ECLIPSE,SDK,ADK之后我们就可以进行ANDROID项目开发了,但是在开发的过程中我们经常需要运行、调试我们所开发的软件,这就需要用到AVD(ANDROIDVIRTUALDEVICE),也就是ANDROID虚拟机。1打开ECLIPSE。2点击OPENSTHEANDROIDVIRTUALDEVICEMANAGER图标按钮。3在弹出的窗口中点击NEW新建一个ANDROID虚拟机。4在弹出的新建虚拟机窗口中NAME一栏填上虚拟机的名称(一般与虚拟机的版本号相同,便于区分)。5在TARGET一栏选择一个ANDROID虚拟机版本(如ANDROID22或ANDROID21)。6在SDCARD下的SIZE一栏填上我们要设定的SD卡容量大小。7点击CREATEAVD,这样我们的一个ANDROID虚拟机就创建好了。27HTTP协议超文本传送协议HTTP是一种通信协议,它允许将超文本标记语言HTML文档从WEB服务器传送到WEB浏览器。HTML是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。HTTP工作在TCP/IP协议体系中的TCP协议上。客户机和服务器必须都支持HTTP,才能在万维网上发送和接收HTML文档并进行交互。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。前一段时间用的是HTTP/10,现在WWW中使用的是HTTP/11。而且HTTPNGNEXTGENERATIONOFHTTP的建议已经提出。主要特点可概括如下支持客户/服务器模式。简单快速客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。灵活HTTP允许传输任意类型的数据对象。正在传输的类型由CONTENTTYPE加以标记。无连接无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。无状态HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。发出的请求信息包括以下几个请求行,例如GET/IMAGES/LOGOGIFHTTP/11,表示从/IMAGES目录下请求LOGOGIF这个文件。(请求)头,例如ACCEPTLANGUAGEEN可选的消息体请求行和标题必须以作为结尾(也就是,回车然后换行)。空行内必须只有而无其他空格。在HTTP/11协议中,所有的请求头,除HOST外,都是可选的。请求方法HTTP/11协议中共定义了八种方法(有时也叫“动作”)来表明REQUESTURI指定的资源的不同操作方式OPTIONS返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向WEB服务器发送的请求来测试服务器的功能性。HEAD向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。GET向特定的资源发出请求。注意GET方法不应当被用于产生“副作用”的操作中,例如在WEBAPP中。其中一个原因是GET可能会被网络蜘蛛等随意访问。POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。PUT向指定资源位置上传其最新内容。DELETE请求服务器删除REQUESTURI所标识的资源。TRACE回显服务器收到的请求,主要用于测试或诊断。28JSOUP281简介JSOUP是一款JAVA的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQUERY的操作方法来取出和操作数据。JSOUP的主要功能如下1从一个URL,文件或字符串中解析HTML;2使用DOM或CSS选择器来查找、取出数据;3可操作HTML元素、属性、文本;JSOUP是基于MIT协议发布的,可放心使用于商业项目。282文档输入JSOUP可以从包括字符串、URL地址以及本地文件来加载HTML文档,并生成DOCUMENT对象实例。283解析并提取HTML元素这部分涉及一个HTML解析器最基本的功能,但JSOUP使用一种有别于其他开源项目的方式选择器284修改数据在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,例如我们可以为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。285HTML文档清理JSOUP在提供强大的API同时,人性化方面也做得非常好。在做网站的时候,经常会提供用户评论的功能。有些用户比较淘气,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,例如XSS跨站点攻击之类的。3ANDROID应用程序结构剖析31ANDROID的APIANDROIDAPI主要包含了以下几个部分1ANDROIDMANIFESTXMLANDROIDMANIFESTXML是系统的控制文件,它告诉系统如何处理所创建的所有应用组件尤其是活动ACTIVITY,服务SERVICE,意图接收器INTENTRECEIVER和内容提供者CONTENTPROVIDER。举例来说,控制文件就是把活动和要接收的意图INTENTS连接在一起的“胶水”。2活动活动就是一个有生命周期的对象。一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。不过这不是必须的,有些活动从不显示UI界面。3视图视图可以将其自身绘制到屏幕上。ANDROID的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术比如开发游戏,或者是使用了不常用的用户图形窗口界面。4意图意图是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个INTENT实例并将其传递给系统来表示意图浏览这个URI。系统将定位到能处理这一INTENT的代码在当前情况下就是浏览器,并运行之。意图也可以用于广播系统范围内的有效事件例如通知事件。5服务服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要。其它的组件可以绑定到一个服务上来,通过远程过程调用RPC来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音乐还继续播放着。6通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。7内容提供者内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来访问联系人列表。应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者来向其它应用提供数据访问服务。32ANDROID应用程序结构解析通常由以下四个组件来构建一个完整的ANDROID应用程序。活动意图接收器服务内容提供者然而,并不是所有的ANDROID应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建ANDROID应用程序时,需要将它们注册在ANDROIDMANIFESTXML文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个ANDROID应用程序所必需的。321活动活动是以上四个组件中最常用的一个。每个活动都是ACTIVITY的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,ANDROID会为每个应用程序保留从主界面开始的历史堆栈。ANDROID通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动作对应的数据则以URI的形式表示。例如显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。除此之外,还有一个被称作意图过滤器INTENTFIHER的相关类。当发生一个有效的目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要被在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在ANDROIDMANIFESTXML文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如一个活动使用STARTACTIVITYMYINTENT来调用其他活动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配MYINTENT意图的活动。随后,这个新的活动接收到意图MYINTENT的通知并开始运行。当STARTACTIVITY方法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点活动可以通过一个以意图形式产生的请求来重用其他组件的功能。活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。322意图接收器当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并不显示UI界面,它是通过NOTIFICATIONMANAGER来通知用户他们感兴趣的事件发生了。意图接收器同样可以被注册在ANDROIDMANIFESTXML文件中,同时也可以在代码中使用CONTEXTREGISTERRECEIVER来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用程序。323服务服务是具有长生命周期并且没有用户界面的代码。324内容提供者在ANDROID中,每个应用程序都是有自己的USERID及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用程序之间想要共享数据,就需要使用用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供者处理过的数据。33INTENT的详细解析在一个ANDROID应用中,主要是由四种组件组成的,这四种组件可参考上一节的内容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的ANDROID应用。在这些组件之间的通讯中,主要是由意图协助完成的。意图负责对应用中一次操作的动作、动作对应的数据、附加数据进行描述,ANDROID则根据此意图的描述,负责找到相应的组件,将意图传递给它,并完成组件的调用。因此,意图在这里起着一个媒体中介的作用,专门提供组件之间互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当在一个联系人列表屏幕假设对应的ACTIVITY为LISTACTIVITY上,点击某个联系人后,希望能够调出此联系人的详细信息,为了实现这个目的,LISTACTIVITY需要构造一个INTENT,这个INTENT用于告诉系统,要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用STARTACTIVITYINTENTINTENT,将构造的INTENT传入,系统会根据此INTENT中的描述,到ANDROIDMANIFESTXML中找到满足此INTENT要求的ACTIVITY。系统会调用找到的ACTIVITY,即为DETAILACTIVITY,最终传入INTENT,DETAILACTIVITV则会根据此INTENT中的描述,执行相应的操作。331INTENT的抽象描述在ANDROID参考文档中,对意图的定义是执行某操作的一个抽象描述。该抽象描述的具体内容如下首先,它是要执行的动作的一个简要描述,如查看、修改等,ANDROID定义了一套标准动作。此外,还可以根据应用的需要,定义自己的动作,并可定义相应的活动来处理自定义的动作。其次,是执行动作要操作的数据,ANDROID采用指向数据的一个URI方式来实现。另外,除了动作和数据这两个重要属性外,还有一些附加属性类别被执行动作的附加信息。例如LAUNCHER_CATEGORY表示意图的接受者应该在LAUNCHER中作为顶级应用出现而ALTERNATIVECATEGORY表示当前的意图是一系列的可选动作中的一个,这些动作可以在同一个数据上执行。数据类型显式指定意图的数据类型。一般意图的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用指定的类型。组件指定意图的目标组件的类名称。通常ANDROID会根据意图中包含的其它属性的信息,比如动作、数据/数据类型、类别进行查找,最终找到一个与之匹配的目标组件。附加信息是其它所有附加信息的集合。使用附加信息可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在附加信息里,传给电子邮件发送组件。总之,动作、数据/数据类型、类别和附加信息一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类的短语。随着应用不断的加入到系统中,它们可以添加新的动作、数据/数据类型和类别来扩展这种语言。应用也可以提供自己的活动来处理已经存在的这样的“短语”,从而改变这些“短语”的行为。332ANDROID中INTENT的使用在应用中,可以以两种形式来使用INTENTL直接意图指定了组件属性的意图。通过指定具体的组件类,通知应用启动对应的组件。2间接意图没有指定组件属性的意图。这些意图需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此意图的组件。对于直接意图,ANDROID不需要去做解析,因为目标组件已经很明确,ANDROID需要解析的是那些间接意图,通过解析,将意图映射给可以处理此意图的活动、意图接收器或服务。意图解析机制主要是通过查找己注册在ANDROIDMANIFESTXML中的所有意图过滤器及其中定义的意图,最终找到匹配的意图。在这个解析过程中,ANDROID是通过意图的动作、数据类型、类别这三个属性来进行判断的,判断方法如下如果意图指明定了动作,则目标组件的意图过滤器的动作列表中就必须包含有这个动作,否则不能匹配。如果意图没有提供数据类型,系统将从数据中得到数据类型。和动作一样,目标组件的数据类型列表中必须包含意图的数据类型,否则不能匹配。如果意图中的数据不是CONTENT类型的URI,而且意图也没有明确指定它的数据类型,将根据意图中数据的格式比如HTTP或者MAILTO进行匹配。同上,意图的格式必须出现在目标组件的格式列表中。如果意图指定了一个或多个类别,这些类别必须全部出现在组建的类别列表中。比如意图中包含了两个类别LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目标组件必须至少包含这两个类别。34ANDROID活动的生命周期ANDROID平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大多已习惯使用多工的作业系统如WINDOWSMOBILE,可以在用手机听音乐的同时,执行其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳定。为了解决这个问题,ANDROID引入了一个新的机制生命周期。ANDROID应用程序的生命周期是由ANDROID框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序入口一般会是一个活动的ONCREATE方法,都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了ONCREATE方法之外,还预先定义了ONPAUSE暂停、ONRESUME继续等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程

温馨提示

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

评论

0/150

提交评论