基于Android的二维码的生成与识别系统的设计与实现设计报告(精选8篇)
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇1
基于Android音乐播放器的设计与实现开题报告
毕业论文(设计)题目:基于Android音乐播放器的设计与实现
学生姓名:xxx
学号:xxx
年级专业及班级:xxx
指导教师及职称:
开题时间 年 9 月 20 日
1.选题意义
在当今人手一个手机的社会里,手机已经成为人们不可缺少的日常工具,如今的手机也不再是当年那仅仅具备通话功能的.通信工具,它已经具备了部分电脑上才有的功能如:发电子邮件,MP3,视频聊天等等。此论文就是设计基于Android平台设计与实现的音乐播放器。
2.国内外研究现状
随着谷歌Android在20xx的发布,现在全世界都在炒作android,目前android手机最高版本为2.3,平板为3.0。目前android已经对3.0停止了开源,因为各大手机厂商更改了一些谷歌的软件,影响到了谷歌的利益。目前正在研究解决方法。虽然谷歌的市场份额在20xx年可能超过苹果,但是收益却远不如苹果。谷歌走的是开源,收益来自于广告。
谈谈android的优点与缺点吧。
优点
1开源软件众多
2操作方式新颖可玩性高
3不断的创新,将其他系统远远抛于脑后。
4价格低廉更适合工薪阶层。
缺点
1发展的太快手机厂商跟不上节奏稳定性欠佳
2功耗大手机平板,续航能力(待机时间)有待改善
目前android的各路人马纷纷半路杀出。似乎一时间全世界都炒的火热。
3.主要参考文献
[1]陈昱,江兰帆.基于GoogleAndroid平台的应用程序开发和研究[J].福建电脑,20xx(11):
[2]杨丰盛.Android应用开发揭秘[M]第一版.:机械工业出版社,20xx年
[3]姚昱F,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,20xx(11)
[4]姚昱F,刘卫国.Android与J2ME平台间即时通信的研究与实现[J].计算机系统应用,20xx(12)
[5]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,20xx(8).
[6]差沙,地狱男爵.用Android开发手机应用[J].程序员,20xx(1)
[7]叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,20xx.
〖资料来源:WENKU163.COM 毕业设计(论文)网〗
[8]张超,王阿川,王智.基于J2ME和J2EE的手机软件的研究[J].黑龙江科技信息,20xx(3)
[9]刘向辉.基于Java的移动终端中间件的研究与设计[D].华东师范大学硕士学位论文,20xx.
[10]刁扣锁.短信息在嵌入式Linux系统中的设计与实现[D].东南大学硕士学位论文,20xx.
[11]张孝祥著.java就业培训教程[M].北京:清华大学出版社,20xx.
[12]余志龙编著.GoogleAndroidSDK开发范例大全[M].北京:人民邮电出版社,20xx-7-1.
[13]E2ECloud工作室著.深入浅出GoogleAndroid[M].北京:人民邮电出版社,20xx-08-1.
[14]靳岩姚尚朗著.GoogleAndroid开发入门与实战[M].北京:清华大学出版社,20xx-07-01.
[15]高昂著.支持动态语言的Android平台[M].北京:人民邮电出版社,20xx-05-07.
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇2
二维码作为一种信息存储和传递技术,是按照特定编码规则形成的平面几何图形。二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息,且因为二维码的具有可靠性高、成本低等优点,二维码在商业、社交等个场合被广泛的使用。但是由于二维码图像传递信息具有一定的隐蔽性,在利用二维码进行信息传递的过程中的二维码图像被嵌入了恶意网址等数据,严重威胁了用户数据安全,因此设计和开发基于Android系统的二维码安全检测系统具有重要的理论意义和实际价值。
1 系统设计
1.1 系统体系架构
图1为基于Android系统的二维码安全检测系统的系统架构。系统采用C/S架构设计,在Android客户端固化了一部分的常见的白名单,在服务器固化了大量的白名单和黑名单。采用这种架构是因为随着Android客户端数据处理能力越来越高,充分利用客户端的数据处理能力减轻服务器的负载,同时也能提高用户的体验。当客户端中无法对二维码中的网址进行检测时,则将网址发送至服务器进行检测。服务器采用J2EE中的Struts + Hibernate框架,以提高整个系统的稳定性和扩展性。
1.2 系统功能设计
系统从功能角度来分析,分为Android客户端和服务器端,能够通过Android客户端对二维码图像进行扫描解析,并在Android客户端进行简单的白名单匹配,若Android客户端无法对解析的网址进行检测,则将解析的网址发送至服务器进行检测;在服务器端,首先对网址进行更大的白名单和黑名单匹配,若不能匹配则进行决策评估阶段,在决策评估阶段采用决策树,提取网址的静态属性和动态属性,并根据属性对网址的安全性进行评估。系统的总体功能模块如图2所示。
2 系统实现
2.1 Android 客户端实现
Android客户端的实现基于Android4.2.2、Eclipse Luna、ADT-23.0.0。客户端的顶层包如图3所示。
其中,com.qrc.activity包放置Android软件的主要界面的activity类,com.qrc.constants包放置Android软件程序运行时的常量类,com.qrc.database包放置Android客户端进行白名单匹配的操作类,com.qrc.service包实现软件主页快捷启动相关类,com.qrc.detect包放置进行解析网址检测的类,com.qrc.view包放置客户端进行二维码扫描实现的相关类,com.qrc.decoding包放置客户端进行二维码图片解码的相关类,com.qrc.camera包放置android客户端进行扫描时相机操作相关类。
2.2 服务器端实现
系统服务器端实现是搭建在基于Web的J2EE平台之上,采用Struts + Hibernate框架进行开发的。对于整个开发平台的简单搭建描述如下所示:运行时环境JDK1.8,集成开发环境Eclipse Luna,服务器Tomcat 8.0,数据库My SQL 5.0.整个服务器的顶层包如图4所示,
其中com.qrc.server.service包放置了服务器端中使用到的业务逻辑方法的类,com.qrc.server.decisiontree包放置了服务器端使用的决策树的方法类,com.qrc.server.action包内放置的是系统所有action类,处理前端的各类请求,com.qrc.server.dao包内放置的是系统的所有数据访问的数据持久化方法,com.qrc.server.beans包内放置的系统中普通的Java Bean类,com.qrc.server.util包内放置的系统框架中的session处理方法类。
2.3 决策树算法实现
决策树是一种依托于策略抉择而建立起来的有向、无环图,其代表对象属性与对象值之间的一种映射关系,其描述一种分类规则。ID3算法是以信息增益作为属性选择标准,以使得每个非叶结点进行测试时,能够获得关于被测试记录最大的类别信息。
算法计算每个属性的信息增益,并选取具有最高信息增益的属性作为给定集合S的测试属性,创建一个结点,并以该属性标记,对该属性的每一个值创建一个分支,并据此划分样本。在本系统中选取的网址的属性分为网址的静态属性和网页源码的动态属性。网址的静态属性选择了网址的长度、点个数、域名、百度的Page Rank、是否包含数字、是否含有特殊符号等,网页源码的动态属性主要包括网页源码脚本特征即eval()个数、set Interval()数目、可疑字符串数目等。
2.4 二维码安全检测实现
二维码图像的解析主要是通过com.google.zxing包的实现,其只需要 将二维码 图像以Binary Bitmap形式传给com.google.zxing.MultiF ormatR eader.decodeW ith State()即可解析出来得到的字符串网址数据。对检测出来的网址,首先在Android客户端进行简单的白名单匹配,若匹配不成功则将网址发送至服务器进行更大的黑、白名单匹配,若还是匹配不成功,则进入决策树评估决策阶段。
3 结语
本文设计并实现了基于Android系统的二维码安全检测系统。在系统的设计过程中,充分考虑在实际应用中Android客户端数据处理能力,在检测过程中首先在Android客户端进行解码和预检测,减少服务器的负载能力。在服务器端采用了基于Struts和Hibernate的J2EE框架,将服务器提供的服务分为表示层、控制层、服务层和数据持久层,极大地提高服务端的稳定性、可拓展性。通过实践和测试结果表明,该系统在对二维码进行安全检测中,满足时间和准确度的要求。
参考文献
[1]徐玲.手机二维码识别系统的设计与实现[J].计算机应用,2012.
[2]王永梅,胡学刚.决策树ID3算法研究[J].安徽大学学报,2011.
[3]赵刚,王碰.基于决策树的二维码恶意网址检测方法[J].信息安全与技术,2014.
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇3
【摘 要】二维码技术是当前移动商务中的主要技术之一,而Android平台是当前应用非常广泛的移动终端平台。本文介绍了QR二维码的基本编码原理,并在此基础上基于Android平台设计并实现了一个QR二维码搜索软件。
【关键词】二维码;QR码;Android
0.引言
隨着3G网络的普及,移动互联网时代已经到来,移动商务得到了快速发展,给人们的生活带来了极大的便利。无线终端(包括智能手机、平板电脑等)是移动互联网和移动商务的重要载体。Android是用于Google公司推出的用于无线终端的操作系统,提供了丰富的API接口,能够方便地集成很多Google的服务。由于其开源的特性得到了广泛认可,拥有较高的市场占有率。
移动商务的发展离不开二维码技术。目前,二维码在传统商务活动和移动商务中都得到了较好的应用。典型的物流行业、票务和证件防伪等都利用了二维码技术。目前以微信、微博为代表的各种社交类应用中已经纷纷推出二维码功能,二维码形式的广告、电子消费券、电子交易凭证也都应运而生[1]。二维码已经成为移动商务的重要组成部分。
1.QR二维码的基本编码原理
二维码,即二维条码,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。二维码技术是在一维码无法满足实际应用需求的前提下产生的。由于受信息容量的限制,一维码通常是对物品的标识,而不是对物品的描述。所谓对物品的标识,就是给某物品分配一个代码,代码以条码的形式标识在物品上,用来标识该物品以便自动扫描设备的识读,代码或一维码本身不表示该产品的描述性信息。
QR(Quick-Response)二维码是目前应用较多的二维码之一,解码速度快。QR二维码的基本结构如图1所示。其中:位置探测图形、位置探测图形分隔符及定位图形用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异。校正图形的数量和位置根据规格确定。格式信息表示改二维码的纠错级别,分为L、M、Q、H。版本信息即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。数据和纠错码字实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。[2]
图1 QR二维码的基本结构
QR二维码的编码过程中首先确定编码的字符类型和纠错等级,按相应的字符集转换成符号字符。然后将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。按需要将码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列,并按次序放如图2所示的分块中。最后将探测图形、分隔符、定位图形、校正图形、码字模块、生成格式和版本信息放入相应区域内放入相应的区域。
图2 QR二维码分块结构
2.QR二维码搜索软件的设计与实现
2.1开发环境[3]
Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。Windows下开发Android应用程序的开发环境主要包括:JDK、Eclipse IDE、ADT扩展包以及Android SDK,其中ADT是一个基于Eclipse的Android开发工具扩展包(Android Development Tools plugin),Android SDK是Android程序开发包(Software Development Kit),包含Android手机模拟器。
2.2系统设计
实际上,目前用于移动商务中的手机端的二维码识别软件已经比较多了,但是这些软件往往是某一个电子商务平台APP中的一项功能,或者是单纯的扫描软件不结合具体的商务平台。这些软件的局限性就在于用户无法选择任意的电子商务平台搜索,换言之,用户必须安装多个不同电商平台的APP,且在不同的APP之间切换才能达到目的。
基于上述原因,本文设计一个能够跨电子商务平台搜索的二维码识别软件。该软件主要包括以下两项功能:
●扫描并识别QR二维码:通过手机摄像头扫描二维码图像,解码该图像。
●二维码搜索:在主流的电子商务平台和搜索引擎中搜索,包括淘宝、当当、京东商城、百度和谷歌搜索。
2.3系统实现
我们采用第三方包zxing[4]进行QR二维码解码。表1是QR二维码解码的关键代码,表2是通过百度搜索的关键代码,其他搜索谷歌、淘宝等的代码类似。图3是我们实现的软件界面。
3.结束语
本文介绍了二维码技术在移动商务中的应用概况,分析了QR二维码的基本编码原理,并基于当前的主流移动终端平台Android设计并实现了一个QR二维码搜索软件。该软件能够通过扫描二维码的形式在当前主流的电子商务平台中搜索。 [科]
【参考文献】
[1]季立寰,卢赛.二维码在移动商务中的应用研究[J].科技致富向导,2013,(11).
[2]冯汉禄,黄颖为等.QR码纠错码原理及实现[J].计算机应用,2011,34(Suppl.1):40-42.
[3]张云.Windows下Android应用程序开发环境搭建详解[J].计算机时代,2013,(01):32-34.
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇4
实习地点:汤阴
实习单位:汤河毓秀园物业管理处
实习内容:小区物业管理系统实现
实习目的与意义:
实习是学生大学学习中的实践环节。实习是每一个大学毕业生必须拥有的一段经历,它使我们在实践中了解社会,让我们学到了很多在课堂上根本就学不到的知识,也打开了视野,增长了见识,为我们以后进一步走向社会打下坚实的基础。通过实习使我更直接接触企业,进一步了解企业实际,全面深刻地认识企业的实际运营过程,熟悉和掌握市场经济条件下企业的运营规律,了解企业运营、活动过程中存在的问题和改革的难点问题,并通过撰写实习报告,使我学会综合应用所学知识,提高分析和解决企业问题的能力,并为撰写实习报告做好准备。
我与同学到汤河毓秀园物业管理处实习。实习之初该物业管理处首先向我们介绍了一些基本情况,然后依次对事务管理、客户管理与服务流程及安全保卫等做了简要介绍。然后就开始“上岗”了。上班之前,我对实习的感觉是既新鲜又紧张。第一天来到公司,首先接触的就是技术副总经理。他对我非常和气,耐心地给我介绍了公司的基本业务,对我所有的疑难困惑她有问必答,并给予更加细心的指导。在刚刚接触社会的时候,能遇上这样的领导真是我的幸运。虽然工作忙一点,累一点,但我过得很充实,觉得自己的收获确实不小。在其他同事的帮助下,我迅速的适应了这里的工作,并开始独立负责一些事情。回顾此次实习过程,感受良多,收获颇丰。通过实习有效缩短了课堂和社会实际工作之间的差距,使我能系统地、全面地掌握物业管理工作和方法。在老师的细心指导下,积极参与物业管理相关工作,注意理论知识与实际应用的结合,用实践检验所学的物业管理理论知识,由此加深了我对物业管理工作的特点、方式、运行规律的理解。下面是我对这次实习的总结:
一、实习内容总结:
1、优化客户管理和服务流程。
物业管理主要管理房屋资源信息、客户数据信息、财务管理、以及服务管理即服务报修申请等信息系统。各种模块系统记录相关的数据资源。房产资源主要记录与房屋建设、竣工检验,房屋维修等;客户数据信息则记录该小区内业主与租户的信息;财务管理记录各种收入与支出明细;服务管理记录用户报修与维修服务进程的记录。该系统具有方便、快捷的优点,能为物业管理服务提供数据支持。但在我看来,但是仍有很多方面需要改善。比如服务管理模块系统开放程度不够,用户利用此报修并不多,主要还要通过电话由专人接受报修与跟踪。如此一来,信息化应用就不到位,各种资源成本在信息化的助力下并未得到有效的降低。对此,应该完善服务管理系统,重新设计服务流程,分离管理与服务系统,加强宣传与开放,促使用户更多的利用该系统报修。
2、推行、倡导“以人为本”服务理念。
物业管理必须树立以人为本的服务理念,倡导人性化服务,实施以人为本的服务措施,提高服务效能,把客户的满意作为物业管理的最佳追求。美佳物业管理公司利用相关数据指标与员工绩效考核有效的结合,通过严格的规章制度实现。并推出“最佳安保”和“健康物业管理模式”标准化服务模式,使员工在意识层面上确立什么样的服务符合业主的需求。充分发掘安保人员的服务意识与专业技能,以建立首屈一指的安保服
务社区。注重生态与人文的和谐和互补,塑造健康的人居环境,达到生活与健康同在,生活与艺术同在,生活与自然同在。
3、优化安保系统,提高物业管理形象。
保安作为小区的把门人,肩负着小区的安全保卫工作,同时也是物业管理团队的对外形象窗口,也直接影响业主对物业管理公司的信任程度。所以建立健全物业管理安保系统,包括安保设施设备、安保人员素质与队伍建设。是物业管理公司工作开展与企业发展的重要条件。
4、事务管理工作精细化。
在物业管理实际工作中,面对都是一些简单而重复的琐碎事情,物业管理成员每天仍然用非常饱满的热情,认认真真做好每一件事情,为业主提供良好的居住环境做好后勤工作。这些都有赖于从操作程序上制定明细的流程,创立和实行精细化管理,从细节做起,从小事做起,从平凡事做起。同时,公司设立严格的奖惩制度,规范员工的作为,使其知有所为,有所不为。
二、实践体会:
1、积极进取的工作态度
在工作中,你不只为公司创造了效益,同时也提高了自己,象我这样没有工作经验的新人,更需要通过多做事情来积累经验。特别是现在实习工作并不象正式员工那样有明确的工作范围,如果工作态度不够积极就可能没有事情做,所以平时就更需要主动争取多做事,这样才能多积累多提高。
2、自主学习
工作后不再象在学校里学习那样,有老师,有作业,有考试,而是一切要自己主动去学去做。只要你想学习,学习的机会还是很多的,老员工们从不吝惜自己的经验来指导你工作,让你少走弯路;集团公司、公司内部有各种各样的培训来提高自己,你所要作的只是甄别哪些是你需要了解的,哪些是你感兴趣的。学校并不是唯一的学习基地,工作后仍然要不断的学习进取,俗话说:“活到老学到老。”今后我一定要提高自己的学习能力,了解各个行业,争取获得更大的进步。
3、合作意识
工作往往不是一个人的事情,是一个团队在完成一个项目,在工作的过程中如何去保持和团队中其他同事的交流和沟通也是相当重要的。一位资深人力资源专家曾对团队精神的能力要求有这样的观点:要有与别人沟通、交流的能力以及与人合作的能力。合理的分工可以使大家在工作中各尽所长,团结合作,配合默契,共赴成功。个人要想成功及获得好的业绩,必须牢记一个规则:我们永远不能将个人利益凌驾于团队利益之上,在团队工作中,会出现在自己的协助下同时也从中受益的情况,反过来看,自己本身受益其中,这是保证自己成功的最重要的因素之一。
4、人际关系
步入社会就需要了解基本礼仪,而这往往是原来作为学生不大重视的,无论是着装还是待人接物,都应该合乎礼仪,才不会影响工作的正常进行。在为人处事方面,我们刚步入社会,很多事情不知如何处理对待,这就需要平时多学习,比如注意其他人的做法或向专家请教。
三、实践小结:
实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一
方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇5
研究背景和方向
近几年来,随着Internet 的迅猛发展,用户接入网络数不断增加,ISP(Internet Service Provider 服务提供商)对用户接入和计费管理变得日益重要。在其它领域,如IP 电话运营商、大规模防火墙等,对用户接入认证的要求也越来越高,原有的简 单认证方式已经不满足当前需要,迫切需要一种能够完成实时用户接入认证、实时 记账、全局漫游、多种计费方式、支持多种认证安全方式、跨越多平台的用户接入 认证系统。
RADIUS(Remote Authentication Dial-In User Service 用户远程拨号验证服 务)协议[1]作为IETF(Internet Engine Tasks Force 互联网工程任务组)定义的 标准协议已经越来越被大多数ISP、ITSP 和安全系统所认可。RADIUS 协议中所规定 的接入认证(Authentication)、用户授权(Authorization)、记账(Accounting)[2]、漫游(Roaming)和属性(Attribute)扩展方式等解决了众多ISP 所面临的问题,成为今后流行的趋势。
这样,开发符合RADIUS 协议的用户接入认证、授权和记账的软件成为构筑ISP、电信运营商、安全网络系统中的必要部分。现行的RADIUS 开发虽然部分满足了用户 的需求,但存在几个关键问题,如开发者不能利用已有存在的系统,重复劳动,开 发周期长;各种系统实现方式差异很大,不利于维护扩充;软件特定平台,不能跨 越平台使用;对协议包理解方式不同,不能互通漫游等,这样就需要一种全新的开 发方法和框架。
我们分析了国际上流行的各种RADIUS 系统实现,依照最新的协议及讨论草案,结合其它系统的先进优点,设计并实现了一个可扩充的AAA 协议栈软件包。根据这 个软件包,用户可以在协议栈的基础之上,选择自己所需要的运行模块和连接方式,编写符合自己需要的用户回调函数和全局设置接口,就可以完成一个标准的RADIUS 系统。
用户使用本协议栈开发RADIUS 系统时,可以脱离编写协议时的各种繁琐过程,无需考虑协议的语法和数据包的结构,并且使系统所覆盖的协议最多。采用这种方 法开发的RADIUS 系统具有符合国际标准协议、使用简便、开发周期短、系统灵活性 高、易于扩充和与系统间可互通漫游的特点。我们采用这种方法已被开发者实际利 用,产生极大的利用价值,具有很好的发展前景。
在本文中,首先介绍RADIUS 协议及其特性,然后给出所设计协议栈的框架原理 及其实现,协议栈所支持的功能和应用方法,最后给出结论和进一步需要完成的工
一个可扩展的AAA 协议栈 2 作。
相关工作
国际上有一个组织和我们工作类似,项目名称为“Stacks of Internet Telephony” [3],开始时间大约为2000 年6 月。以下是我们所开发的RADIUS 协议栈 和这个项目中的关于RADIUS 的栈的比较: 系统实现和功能 本协议栈 Vovida 项目组 继承系统 Livingston RADIUS Merit AAA 系统框架 进程池 单请求派生进程
验证方式 PAP、CHAP、MS-CHAP PAP、CHAP、MS-CHAP 网管接口函数 支持 不支持
用户数据 本地文件、数据库 只支持本地文件 配置管理 本地文件、数据库 只支持本地文件 日志 按时间递进、数据库 简单文本
其它部分 提供客户端和测试程序 无客户端和测试程序
第二章 RADIUS 相关协议及其特性
RADIUS 系统框架
远程拨号用户鉴别服务RADIUS 是朗讯网际互连系统中的一个基于客户端/服务 员的安全协议。在RFC2138[4]和RFC2139[5]中被IETF 定义为标准协议。用户相关信息 存储于一个中心位置,被称为RADIUS 服务员。RADIUS 客户端与RADIUS 服务员通过 通信来验证用户。服务员返回给客户端关于验证用户的操作权限。虽然RADIUS 这个 名词用来说明客户端与服务员进行通信的网络协议,但它经常被用来说明整个客户 端/服务员系统。如图2-1 所示。
一个可扩展的AAA 协议栈 3 RADIUS客户端RADIUS服务员
认证记账请求 认证记账响应
图 2-1:一个简单的RADIUS 客户端/服务员系统框架
基于 RADIUS 的远程接入环境共包括三个部分:用户、远程接入服务员和
RADIUS 服务员。每个用户是RAS 的一个客户,而每个RAS 是用户的服务员和 RADIUS 服务员的客户。结构如图2-2。
数据库本地RADIUS服务员 远端RADIUS服务员 RAS ISDN RAS MODEMS RAS FIREWALL RAS 需认证端 网络计算机 移动用户 Internet用户 请求接入者 本地认证方法 UNIX password WinNT Domain Text 图 2-2:一个RADIUS 服务员结构说明
RAS 设备将不同连接用户的请求转换为RADIUS 认证请求或记账请求。
RADIUS 服务员可以接收来自不同RAS 设备上的请求信息,并选择预先设定的认证 方法来完成请求,并发送响应给RAS。
处于不同位置的RADIUS 服务员还可以连接在一起,组成一个RADIUS 认证环 境。每个RADIUS 可以将发给自己的请求转发给其它RADIUS 服务员来处理。结构 如图2-3。
一个可扩展的AAA 协议栈 4 RADIUS服务员 负责区域A用户 RADIUS服务员 负责区域B用户 RADIUS服务员 负责区域C用户 区域C RADIUS客户端
图 2-3:多个RADIUS 服务员的认证框架
这样就可以组成一个跨越不同地理位置的分布式认证环境,无论从认证用户数 量上,还是在用户分布上都可以实现透明的集中式管理。
RADIUS 基本功能
RADIUS 是一个在用户网络接入设备(例如拨号服务器)和用户信息存放设备 之间交换信息的标准方法。它有三个基本功能。
验证(Authentication):RADIUS 判别一个用户请求服务是否合法。用户鉴别 信息可以存放在本地users 文件,本地数据库、外部数据库中;也可以通过其它验证 方式进行鉴别如UNIX 口令文件、Windows NT 域数据库等。一个简单的典型例子如 下:
一个拨号用户通过 RADIUS 协议试图接入网络的过程如下:
1、用户拨号进入一个远程接入服务员(MODEM池)并开始一个PPP 会话;
2、远程接入服务员把从 PPP 会话中得到的用户验证信息经过处理,打成 RADIUS 协议请求包,传送给RADIUS 服务员;
3、如果 RADIUS 服务员通过了这个验证,它将发送接受响应给RAS,并附加 上其它信息包括用户建立连接所需要的IP 地址、最大连接时间等等;如果 RADIUS 不能验证这个请求或验证没有通过,它将发送拒绝响应给RAS 以 及错误的原因;
4、使用这些信息,RAS 如果受到接受响应包,则它允许用户开始操作网络,如果拒绝则断掉连接并给出错误信息。
授权(Authorization):RADIUS 协议可以控制用户会话中使用特定的网络设备 服务。在RAS 发送的验证请求信息中,除基本信息外,还可以有用户期望连接类型 等,RADIUS 服务员可以根据请求完成验证。RADIUS 服务员可以将验证通过的其 它参数发送给RAS 以规定用户连接。所有的属性交换由用户配置文件控制。配置文 件中包括两种属性:检查属性和返回属性。检查属性定义了一些连接所需请求。RAS 在向RADIUS 服务员发送验证请求时必须具备这些属性,否则验证不会成功。返回 一个可扩展的AAA 协议栈 5 属性为验证成功后 RADIUS 服务员发送给RAS 的附加信息,例如定义连接的一些参 数。一旦用户通过认证,RADIUS 服务员根据系统预先设置的用户配置文件,附加 用户可以使用的资源能力,如IP 地址、连接协议、连接速率等。通过这种方式,可 以集中管理用户的不同访问能力,比如用户普通电话拨号接入网络时应该获取的速 率和连接方式和通过ISDN 拨入网络的速率和连接方式,以及两种方式的口令可以 是不同的。
记账(Accounting):RADIUS 协议可以记录会话开始记录、会话结束记录。包 括本次连接的用户名、开始连接时间、结束连接时间、用户使用协议、用户使用带 宽、传输数据量、连接断开原因和出错信息等。RADIUS 客户端在连接开始的时候 向RADIUS 服务员发送会话开始记录,在连接结束的时候发送会话结束记录。通常 情况下RADIUS 服务员只记录会话结束记录;对于会话开始记录一般用于用户超时 监测和切断控制。
RADIUS 扩充功能
RADIUS 协议除了基本功能以外,为了适应Internet 的不断扩大,增强了几个功 能:
代理(漫游):为了能够使用户能在异地通过认证使用服务,RADIUS 协议支持 服务员之间转发代理请求和响应。请求和响应的转发根据RADIUS 服务员存放在本 地的proxy 文件或数据库中存放的外部RADIUS 服务员信息进行。如图2-3,当一个 用户在C 地要求使用服务时,C 地RADIUS 服务员首先判断该用户是否是本地用户,如果不是,根据用户特征查找代理表,看是否和用户开户地RADIUS A 有代理关系,如果有那么就转发该请求到A地RADIUS 服务员,A地RADIUS 服务员完成验证后,将响应结果发回C 地RADIUS 服务员,C 地RADIUS 再将结果发回给用户。记账签名和时间戳:记账请求/响应包必须签名。根据包的内容,使用客户端与
服务员之间的共享密钥,通过MD5 算法计算包的摘要,这样保证了记账包不被窃听 者篡改。时间戳也保证了记账记录的唯一性,保证记录的准确性,防止窃听者破环。用户自定义属性:RADIUS 协议除了规定的属性外,用户可以自行添加所需要 的属性。在添加用户自定义属性时,需要注明用户ID 等标志。这样不同运营商之间 除了协议规定的属性外,还可以互通其它属性,交换信息。
地址绑定:RADIUS 协议规定可以将RADIUS 服务员与指定的IP 地址绑定,这 样可以在多宿主主机上使用RADIUS。
RADIUS 配置
RADIUS 配置主要在RADIUS 服务员部分,通过各种配置文件进行。RADIUS 服务
一个可扩展的AAA 协议栈 6 员所需要的配置文件全部放在名为 raddb 的目录下。它的组织形式如下: 图 2-4 RADIUS 目录结构
字典文件 dictionary:RADIUS 服务员使用字典文件来建立检查属性列表和返回 属性列表。字典文件包括可能用到的属性名称、属性号、属性值等。用户文件users:存储用户的配置信息,包括鉴别和授权信息。
客户文件clients:存储RADIUS 所有的本服务员对应的客户端地址及共享密钥。代理文件proxy:存储所有远程RADIUS 服务员的地址和共享密钥等。菜单文件menus:存储各种用户通过认证后可以选择的服务类型。
RADIUS 特性
基于RADIUS 协议的接入认证/计费系统提供以下特性:
客户机/服务员模式:要求对用户进行认证的设备被称为客户端,要求RADIUS 服务员进行服务,而一个RADIUS 服务员也可以是其它服务员的客户端。
安全:在大型网络中,安全信息分散于网络不同设备上。RADIUS 协议可以允许 用户信息保存于一台主机之上,最小化安全漏洞的危险。RADIUS 服务员管理所有鉴 别和接入网络服务的功能。RADIUS 服务员与客户端之间使用共享密钥进行通信。可适应性:RADIUS 软件可以安装在任何通信环境之中。也可以和其它安全系统 和协议融合为一体。对用户可以使用多种验证方法。
可扩展性:所有传输的信息被组织为称为三元组(属性、长度、值)中,新的 属性可以随时添加。
管理简便:RADIUS 服务员将安全信息存储于中心位置,只需要维护这一处信息 即可。对不同厂商的远程接入设备可以按统一的安全模式维护和管理。
广泛的审计能力:RADIUS 提供一种审计跟踪能力,称为RADIUS 记账。收集来 的信息可以用来分析安全效果和计费。
一个可扩展的AAA 协议栈 7 第三章协议栈框架
协议栈包含协议框架
本协议栈所覆盖的协议主要有以下几个。
1、RADIUS 协议:定义于RFC2138 中,是RADIUS 体系的主要部分,主要对验证 和授权、包格式、语法和漫游等进行了规定。
2、RADIUS Accouting 协议:定义于RFC2139 中,主要对记账、记账包格式等 进行了规定。
3、RADIUS Authentication Client MIB:定义于RFC2618[6]中,主要定义了用 户在RADIUS 认证客户端中SNMP 代理需要的管理信息库。
4、RADIUS Authentication Server MIB:定义于RFC2619[7]中,主要定义了用 户在RADIUS 认证服务员中SNMP 代理需要的管理信息库。
5、RADIUS Accounting Client MIB:定义于RFC2620[8]中,主要定义了用户在 RADIUS 记账客户端中SNMP 代理需要的管理信息库。
6、RADIUS Accounting Server MIB:定义于RFC2621[9]中__________,主要定义了用户在
RADIUS 记账服务员中SNMP 代理需要的管理信息库。
本协议栈以TCP/IP 协议为基础,使用UDP 为主要传输手段。协议栈的核心为
RFC2138 和RFC2139 组成的RADIUS 主要系统。RFC2618-RFC2621 主要实现协议栈具 有网络管理功能,示意图如下。协议栈系统软件包
RFC2618 RFC2619 RFC2620 RFC2621 RFC2138 Authentication RFC2139 Accounting UDP IP 框图3-1 协议栈包含的协议
协议栈功能框架
本协议栈的功能框架如图3-2 所示。
一个可扩展的AAA 协议栈 8 AAA协议栈
包处理回调函数、用户全局设置、接口函数 网管模块 端口绑定监听 数据库访问模块 多种验证方式 包加密解密 包接收发送 漫游代理 配置管理
图 3-2 RADIUS 协议栈功能框架 各部分主要功能如下:
配置管理:负责从本地配置文件或数据库中读取系统的参数设置,包括地 址、端口号、认证协议、超时控制时间等。
多种验证方式:负责根据预先配置的方式对请求进行认证,包括PAP、CHAP、MS-CHAP 方式等。
包加密解密:对认证请求包的口令字段进行加密和解密,生成所需的请求 和响应验证字。
包接收发送:接收请求包,并将其组织成结构体形式;把结构体形式的数 据结构打成二进制包。
漫游代理:根据请求包内容,应用设置条件,判断其是否需要代理。如果 需要代理,则处理后转发出去。接收代理响应,并转发给RADIUS 客户端。端口绑定监听:根据配置主机和端口信息,申请socket 并绑定于指定端口。监听来自客户端以及其它RADIUS 服务员的请求和响应。
网管模块:对RADIUS 系统的各个状态和参数进行监控,并在SNMP 代理调 用时将这些参数返回给调用者。
数据库访问模块:在对用户认证和记账时访问用户数据,访问方式可以支 持多种数据库形式。
包处理回调函数、用户全局设置、接口函数:是用户使用本协议栈时需要 编写的代码部分,具体使用方法见第五章。
第四章协议栈实现
开发环境及工具
一个可扩展的AAA 协议栈 9 本协议栈的开发环境有多种,可以是 WinNT,Linux,HP-UX,Solaris 等UNIX 操作系统。如果使用专用数据库的话,还需要在所用操作系统上安装ORACLE 等数据 库服务器及客户端。工具是UNIX 上的C 编译系统或者是WINDOWS 上的VC 编译系统。本协议栈采用标准ANSI C 语言编写,因为C 语言执行速度快,兼容性和跨平台 性好。
系统逻辑流程
使用本协议栈开发的RADIUS 服务员系统在处理请求包时采用的算法如图4-1 所示。
打开预先定义端口或知名端口,申请网络数据报套接字绑定到端 口上,便于以后主动监听。
预先创建若干RADIUS子进程,并建立父子间通信的全双工管道等 待处理主进程发送给它们的处理请求。
主进程读取RADIUS代理表和RADIUS客户端表,以后检验客户端合 法性和查找远端代理地址。
将网络套接字和管道描述符全部放入一个SELECT描述字段中,该 字段中的项对应可以进行I/O的描述符。通过监控这个字段可以获 知那个I/O端口上有数据达到。求出包括网络套接字和父子进程间 管道描述字的最大值。
SELECT监听I/O。一旦数据到达,进行一下处理
如果表中网络套接字有数据发到,则调用处理子程序,该子程序 首先判断该请求的源是否合法,是否需要漫游处理,然后选择预 先分配的一个空闲进程处理请求。
如果管道描述字有数据发到,则表示对应子进程处理请求完毕,子程序恢复空闲状态。
图 4-1 系统网络通信算法
一个可扩展的AAA 协议栈 10 使用本协议栈开发的 RADIUS 服务员系统的系统逻辑流程如下。
初 始 化 配 置(是 否 派 生 子 进 程、字 典 文 件 和 日 志 文 件 路 径、终端参数)
登记各种信号处理例程s i g n a l()读取配置文件r a d c o n f i g _ i n i t(),读入主机地址、端口号、最大请求个数、代理服务超时时间、最大请求超时时间)
读取字典文件d i c t _ i n i t(),将字典内容放入内存组织成为链 表,以后使用
派生后台进程f o r k(),退出当前会话,这样脱离命令行 关闭终端c l o s e(),显示软件版本
打开知名端口o p e n _ u d p s o c k()绑定端口 清空所有网络套接字端口F D _ C L E A R(),准备监听
派生指定个数的子进程c h i l d _ m a k e(),并监控父子进程间通 信的读写管道
申请表空间,调用T U X E D O,读取客户端列表和代理服务员列
表放入内存表中u p d a t e _ c l i e n t s()u p d a t e _ p r o x y()将监控描述符字段清零并置位F D _ Z E R O()循环非阻塞监控以上端口S E L E C T(),根据情况分别执行以下 子程序F D _ I S S E T()认证记账端口请求,调用认证处理r a d _ r e q u e s t()代理认证 记账端口请求,调用代理处理R a d _ p r o x y()子进程发送信号,处理子进程完毕。子进程空闲置位。
图4-2 系统逻辑流程
一个可扩展的AAA 协议栈 11 RADIUS 服务员中采用基于数据报的并发无连接网络通信算法、进程处理采用主 进程循环处理,子进程顺序处理算法。并且为提高效率,采用进程预分配的方法。系统运行时,由空闲子进程组成一个空闲进程池,当有请求时,主进程顺序选 择一个空闲子进程完成请求。子进程完成请求后通知父进程。示意见图4-3。RADIUS主进程 子进程池 空闲子进程
接收新请求的子进程 正在处理请求的子进程 完成子进程通知父亲
图4-3 系统运行时进程关系图
包处理逻辑流程
协议栈中的主进程在处理请求包时所作处理如图4-4 所示。
接 收 数 据 包 到 缓 冲 区 r e c v f r o m()判断包源客户端的合法性
如果是认证包系列用f i n d _ c l i e n t()如果是记账包系列用c a l c _ a c c t r e q()将缓冲区打成请求头结构r a d r e c v()判断是否需要代理h a n d l e _ p r o x y()需要代理,调用代理模块保 存漫游状态p u s h _ p r o x y()发送到远端
s e n d p r o x y 2 s e r v e r()不需要代理,判断是否是重 包
查找空闲子进程
登记包特性到子进程结构中 将请求包放入缓冲区 通过F I F O 发送给子进程
图4-4 主进程处理请求包流程
一个可扩展的AAA 协议栈 12 协议栈中对于代理漫游包的处理如图 4-5 所示。
接收数据包到缓冲区recvfrom()判断包源服务员的合法性find_server()将缓冲区打成请求头结构radrecv()找出包对应的描述符
查找发送时记的请求头pop_proxy()转发响应给最初的客户端sendproxy2client()图 4-5 漫游请求包流程
协议栈中子进程处理请求包的流程图如图 4-6 所示。
循环等待父进程发送处理消息read()将接收到的缓冲区打成请求头结构radrecv()根据不同请求包类型,调用用户自定义回调函数响应模块 如认证处理rad_authenticate()等 处理完毕,返回继续等待下一个请求
图 4-6 子进程处理请求包流程
从图中可以看出,协议栈的用户只需要编写用户处理请求包的回调函数,对于 其它过程则可以不用关心。
测试环境和方法
一个可扩展的AAA 协议栈 13 本协议栈的测试环境可以象开发环境一样,有多种组合。下面选取其中一种,以协议栈为基础的RADIUS 系统,如图4-7 所示。本地RADIUS服务员 ORACLE 数据库
远端RADIUS服务员 RADIUS 客户端 测试程序
图 4-7 协议栈测试环境
其中本地 RADIUS 服务员接收发自RADIUS 客户端的请求,ORACLE 数据库作为存 储用户数据和配置信息的服务器。远程RADIUS 服务员接收漫游用户的认证请求。测 试程序负责产生测试呼叫。
测试分为两个部分:功能测试和性能测试。功能测试包括对RADIUS 服务员中是 否满足RFC2138 和RFC2139 中规定功能的测试;性能测试包括在大并发用户量下系 统的响应时间和正确率。需要编写一个能完成测试要求的测试程序。此测试程序运 行于RADIUS 客户端,通过进程间通信模仿调用方程序。测试前还要编写一个模拟数 据生成程序,它负责从数据库中抽取数据,模仿呼叫数据。
接口回调函数
开发者通过回调函数来使用本协议栈,在请求包处理回调函数中,开发者可以 使用协议栈提供的各种实用函数,包括属性提取函数、加密解密函数、包发送接收 函数、打包函数和访问数据库函数。一个典型的回调函数例子的流程图如下。
一个可扩展的AAA 协议栈 14 判断用户名长度是否合法 判断是否有属性getattribute()抽取SESSION_INDEX属性放入响应链表中抽取相应请求属性 getattribute()应用客户端口令解密请求口令decrypt_password()调TUXEDO访问数据库取口令get_password()判断为正确,并发送响应send_accept()判断为错误,并发送响应send_reject()图 4-8 典型回调函数流程图
第五章协议栈功能特点
协议实现全、互通性较高:本协议栈基本全部实现了IETF 中关于RADIUS 的相 关协议。由于本协议栈完全遵守IEFT 的关于RADIUS 的各个协议,所以在以本协议 栈为基础开发的RADIUS 系统可以完全实现互通,在和其它标准RADIUS 系统也可以 实现较大程度上的互通。
多种验证类型:在验证过程中,RAS 和RADIUS 服务员传送口令信息,这个口令 信息通过RAS 和RADIUS 服务员之间的共享密钥加密。口令信息源于用户输入,根据 用户选择可以有以下三种:
1、PAP(Password Authentication Protocol 口令验 证协议)非常简单,用户发送口令给RADIUS 服务员,RADIUS 服务员通过数据库或 操作系统来验证。用户发送口令给RAS 的过程中,口令以明文方式传送。RAS 传送 口令给RADIUS 的过程中,使用共享密钥加密。最后RADIUS 服务员以口令明文的方 式进行验证。
2、CHAP(Challenge Handshake Authentication Protocol 挑战握 手验证协议)避免在任何通信连接中使用口令明文。在CHAP 中,RAS 首先生成一个 随机数(称为挑战)并发送给用户,用户的PPP 端生成一个由口令和挑战组成的单 向摘要并发送给RAS,由于摘要是单向加密,RADIUS 服务员不能从摘要中恢复口令,所以它使用本地数据库中存储的用户口令用同样方法计算出摘要和接收的摘要比 较,如果相同则验证通过。
3、MS-CHAP(Microsoft Challenge Handshake 一个可扩展的AAA 协议栈 15 Authentication Protocol 微软挑战握手验证协议)是微软提出的类似于CHAP 而 整合入微软操作系统中的验证方法,它可以在操作系统之上采用不同级别:本地 用户、域用户、域组、主机用户、主机组合外部数据库等来验证用户。
二次开发工作量少,容易扩充:由于协议栈已经完成了开发RADIUS 系统所需的 大部分工作,用户只需要开发少量的回调函数,完成自己的特定需要,所以可以快 速开发。由于协议栈的实现是基于协议的包处理过程,所以用户可以根据协议的变 化和需求的变更,不断改进实现,而不需要太多工作量。
运行稳定:由于协议栈采用进程池的方式实现,所占用的内存一定,系统开销
最小。所以不会大量占用系统资源(CPU 处理时间和内存),不会出现因请求数量变 化而使系统资源的占用发生颠簸。更不会出现内存泄漏等错误。
性能:由于我们对协议栈的实现做到精益求精,采用高效的实现方法,优化代
码的设计,所以使用本协议栈开发的RADIUS 系统在同档次的服务器上运行效率比其 它系统要高。一般来说,在主频为300MHz 的主机上,其它系统可以实现500 个/秒 的认证速度,而使用本协议栈开发的RADIUS 系统可以实现1000 个每秒。
多种用户验证手段:本协议栈有多个模块支持多种数据库访问方式,用户数据 可以存放在以下几个形式中,文本文件、UNIX DBM、MYSQL、ORACLE、MS-SQL 等。多种日志方法:详细错误信息输出到本地日志、系统日志、数据库中。可以帮 助管理员和开发人员迅速找到错误原因,实时掌握系统状态。
跨平台运行:本协议栈可以运行在多个平台之上。由于是基于进程实现,所以
不会因为各个操作系统对线程实现不同而引发差异。本协议栈在 HP-UX 1 1.00、IBM RS6000 AIX 4.2、Redhat Linux 5.2、Slackware Linux 2.0.30、Solaris 2.7.1、Solaris x86 2.7.1、SunOS 4.1.3、WindowsNT/2000 上测试成功。
第六章 协议栈应用方法
本协议栈的应用可以分为以下几个步骤:
1、了解RADIUS 协议概况:开发者必须对RFC2138、RFC2139 有所了解,虽 然不用了解包的发送和接收、加密解密细节,但对协议的使用步骤和包 的格式定义必须了解。
2、了解协议栈和实用函数:开发者必须掌握本协议栈的逻辑流程,了解函 数的定义和调用的顺序。
3、编写用户回调接口函数:根据自定义的不同需要,对每个类型的请求进 行处理。
4、连接编译整个协议栈:选择不同运行模块,包括不同的验证方式、访问 数据库的类型等,在操作系统上运行编译器。
一个可扩展的AAA 协议栈 16
5、配置RADIUS 系统:在系统运行之前,需要根据不同的系统组成部分,选择适当方式来配置系统,例如:主机地址、端口、代理员的列表、客 户端的列表等。
在使用本协议栈时应注意以下几个问题:
1、字典文件和属性的定义:由于不同厂商对属性和属性值的定义值不同,所 以应注意区别,防止属性数据类型不匹配。
2、确定操作系统参数如最大打开文件数、信号灯数等符合需要。
3、尽量在用户回调函数中使用静态内存,防止动态内存使用不慎而引起的内 存泄漏和系统崩溃。
4、根据不同需要,连接不同模块,防止占用系统过多。
5、减少用户处理执行时间,以利于系统整体的运行性能。
第七章 结论
协议栈实现系统与相关系统比较
采用本协议栈编写的AAA 系统与其它典型RADIUS 实现系统比较如下表: 系统 本实现 Livingston[1] Merit[10] Ascend[11] Freeradius[12] 协议实现 全部 全部 全部 全部 全部 认证方式 一般 一般 一般 一般 多 功能 多 一般 一般 一般 多 兼容性 一般 好 一般 一般 一般 性能 好 一般 一般 一般 好 扩展性 好 一般 一般 一般 好 测试工具 全面 简单 简单 简单 简单
结论
由于Internet 不断发展,用户的接入越来越为人们关注。而防火墙和VPN 中的 不断使用,使RADIUS 协议也日益成为工业事实标准。
随着网络协议不断增多,使用协议栈来开发网络通信程序是近年来流行的趋势。开发一个可供快速组建RADIUS 系统的协议栈是一个必不可少的基础工具。
一个可扩展的AAA 协议栈 17 本文通过集成关于 RADIUS 的若干协议,实现一个AAA 协议栈,使得开发基于 RADIUS 协议的安全认证系统变得更加容易。
通过测试,本协议栈在同等环境条件下,系统的功能和性能达到相近系统的前 列。
不足之处和进一步的工作
虽然我们做了大量工作,但在以下几个方面还存在着不足:
1、对不同系统的各种属性的处理还不够全面。
2、认证中的验证类型还需扩充。
3、与其它安全认证系统的互通性有待提高。今后进一步的工作是:
1、实现最新的RADIUS 协议RFC2865[13]、RFC2866[14]。
2、改进协议栈,使之能运行于集群之上,提高系统性能。
3、对数据库的访问中增加LDAP(轻型目录访问协议)的支持。
4、加入负载平衡算法,使系统不同进程能发挥更大效率。
5、增强与其它RADIUS 系统的互通性。
6、支持TACACS+协议[15],TACACS 终端访问控制器接入控制系统协议。定义于 RFC1492 中。TACACS+增强型。类似于RADIUS 的AAA 协议,与RADIUS 不同 之处在于:传输协议使用TCP 而不是UDP。RADIUS 只加密口令字段,而 TACACS+加密整个包净荷。TACACS+允许验证和授权分离,而RADIUS 中验证 和授权是集成的。
7、支持Diameter 协议[16]。IETF 着眼的下一代AAA 协议。一个全新轻量级的,基于端点的。提供可扩展的基础来引进新策略和AAA 服务。继承RADIUS 的 机能。突破RADIUS 协议限制,允许服务员向客户端发送统一消息。使用重 传和失败恢复算法。提供端到端的安全机制。支持漫游和移动IP 网络。
参考文献
[1].Lucent, “Remote Authentication Dial-In User Service”, http://.charters/aaa-charter.html.[3].“Stacks of Internet Telephony”, http://, 2000 [4].C.Rigney, A.Rubens, W.Simpson, and S.Willens, “Remote Authentication Dial In User Service”, IETF Network Working Group, April 1997.RFC2138.[5].C.Rigney, “RADIUS Accounting”, IETF Network Working Group, April 1997.RFC2139.[6].B.Aboba, G.Zorn “RADIUS Authentication Client MIB”, IETF Network Working Group, June 1999.RFC2618.[7].B.Aboba, G.Zorn “RADIUS Authentication Server MIB”, IETF Network Working Group, June 1999.RFC2619.[8].B.Aboba, G.Zorn “ RADIUS Accounting Client MIB”, IETF Network Working Group, June 1999.RFC2620.[9].B.Aboba, G.Zorn “ RADIUS Accounting Server MIB”, IETF Network Working Group, June 1999.RFC2621.[10].University of Michigan and Merit Network, Inc.“Merit AAA Server”, 1992 [11].Ascend Communications, Inc.“Ascend RADIUS”, 1996 [12].“Free RADIUS Project”, http://, 2000 [13].C.Rigney, A.Rubens, W.Simpson, and S.Willens, “Remote Authentication Dial In User Service”, IETF Network Working Group, June 2000.RFC2865.[14].C.Rigney, “RADIUS Accounting”, IETF Network Working Group, June 2000.RFC2866.[15].C.Finseth, “An Access Control Protocol, Sometimes Called TACACS,” IETF RFC 1492, July 1993;available at ftp://ftp.isi.edu/in-notes/rfc1492.txt.[16].P.R.Calhoun, A.C.Rubens, and H.Akhtar, “Diameter Base Protocol,” IETF AAA Working Group, Internet draft, Oct.1999, work in progress.一个可扩展的AAA 协议栈 19 致谢
在此,首先向我的导师鞠九滨教授表示深深的谢意!从本科论文开始,鞠九滨 教授以他严谨的治学态度、渊博的学识、敏锐的思维和孜孜不倦的工作作风对我进 行了悉心的教诲,使我受益终生。
同时还要向李春阳高级工程师表示感谢,李老师一丝不苟的工作作风非常值得 我的学习。
向师兄张钶、张猛表示衷心的感谢。他们在科研上帮我攻克难关,给了我许多 无私的关心和帮助。
感谢研究小组成员刘静、张广艳、于海超,是他们使我在团结协作中不断成长。特别感谢于秀峰老师、胡成全老师、胡亮老师和房至一老师对我的帮助。
一个可扩展的AAA 协议栈 20 论文摘要 认证(Authentication)、授权(Authorization)、记账(Accounting)是网络接入 的三个重要需求。满足这些要求的RADIUS(Remote Authentication Dial-In User Service 用户远程拨号验证服务)协议作为IETF(Internet Engine Tasks Force 互联网工程任务组)定义的标准协议已经越来越被大多数ISP、ITSP 和安全系统所 认可。
这样,开发符合RADIUS 协议的用户接入认证、授权和记账的软件成为构筑ISP、电信运营商、安全网络系统中的必要部分。现行的RADIUS 开发虽然部分满足了用户 的需求,但存在几个关键问题,如开发者不能利用已有存在的系统,重复劳动,开 发周期长;各种系统实现方式差异很大,不利于维护扩充;软件特定平台,不能跨 越平台使用;对协议包理解方式不同,不能互通漫游。
作为一个可扩充的AAA 协议栈软件包,用户可以在AAA 协议栈的基础之上,选 择自己所需要的运行模块和连接方式,编写符合自己需要的用户回调函数和全局设 置接口,就可以完成一个标准的RADIUS 系统。用户使用本协议栈开发AAA 系统时,可以脱离编写协议时的各种繁琐过程,无需考虑协议的语法和数据包的结构,并且 使系统所覆盖的协议最多。采用这种方法开发的RADIUS 系统具有符合国际标准协 议、使用简便、开发周期短、系统灵活性高、易于扩充和与系统间可互通漫游的特 点。
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇6
实习单位:**县供电局
实习内容:学习管理系统设计
实习目的与意义:
走进社会并融入社会,通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备,深入了解社会并运用社会,创造应有的价值。并查阅资料为毕业设计作准备。
实习让我了解社会,让我从社会的角度去了解消费者,为以后走向工作岗位积累了经验,打下了坚实的基础。通过实习,培养了自己的专业能力,创意意识,掌握了专业设计工作的流程和方法,并顺利的完成课题的设计与实现。
实验内容:
实习开始,,我被安排在供电局生产技术部学习。上班之前,我对实习的感觉是既新鲜又紧张。新鲜的是能够接触很多在学校看不到的东西,紧张的则是万一做不好工作也许会受到批评。第一天来到公司,首先接触的就是技术副总经理。他是35岁左右,对我非常和气,耐心地给我介绍了公司的基本业务,对我所有的疑难困惑她有问必答,并给予更加细心的指导,而不是简单的责骂。说实在的,我真的非常感激他对我的教导。在刚刚接触社会的时候,能遇上这样的领导真是我的幸运。虽然工作忙一点,累一点,但我过得很充实,觉得自己的收获确实不小。在其他同事的帮助下,我迅速的适应了这里的工作,并开始独立负责一些事情。我的工作主要是负责收缴电费,同时在生产技术部技术人员的指导下完成一些电费收缴系统的后台工作。现将本次实践活动的有关情况报告如下:
一、社会实践内容:
1、学习安全知识和有关电力的政策法规。
2、学习收缴电费的各种流程。细心发现在收缴过程中发现现行电费管理系统运行过程中的不足,并积极给予建议。
3、学习我县供电局完善的管理运行模式和安全生产责任体制。参加供电所会议四次。会议的主题分别是:加强用电管理和对安全生产的监督;部署迎峰安全度春节工作;总结1月份工作并制定2月份工作计划。
4、学习我县供电局“对‘供电部门实行优质服务’的落实办法”。在供电局营业厅实践,实行规范化优质服务。接受广大客户咨询,向用电客户解释有关收费和电价问题。
5、学习《供电管理信息系统JN2000》,了解系统功能及运行环境,掌握JN2000的使用。向JN2000系统中录入各用电台区的低压线路图、客户信息、客户计量表台帐,修改计量表表记局编号和表箱号,并按每月电费流程操作电脑,实行微机开票,打印电费发票。
实习总结:
我县供电局统管所辖的14个乡全部居民的生活用电和厂矿用电,在各级电力公司和省、市政府的关心支持下,其农电工作蓬勃发展,通过全局广大干部职工的辛勤努力,各项工作取得了显著的成就。七里营镇的农网建设和改造工程,除少数区因铁路和高速公路建设需重新改造外,全部工程已基本完成,且成绩显著。农电管理步入规范化轨道,对农村电工基本实现了“准职业化、正规化、专业化”的管理,基本完成了对农村电工的统一考核,择优聘用,持证上岗工作。农电管理体制已基本理顺,并达到一户一表,实现“五统一”、“四到户”、“三公开”。
同时我也清醒的看到:农电的改革和发展进程、农电的规范化管理与农村经济的发展、农民物质文化生活水平的提高还不太适应;农电部门的规范化管理,服务水平和服务质量,用户还不太满意。分析投诉举报较多的地方,主要有以下几个方面的原因:
1、个别地方电工属供电部门临时聘用,其业务水平不够高,业务素质不够因硬。
2、少数设施计划检修停电提前通知不到位。
3、客户报装用电程序繁杂。
4、营业网点少,企业交费不方便。
5、外力破坏电力设施现象日趋严重,确保电力安全生产难长大。
6、电力供需矛盾突出,用电户紧张状况难于缓解。
7、网建设困难重重,安全稳定运行压力大
结合乡镇农村地区的实际情况,我有如下建议:
供电局加强对电工特别是临时聘用人员的业务素质和水平的考核,组织学习,提高服务质量。计划检修停电应尽量做到提前一周向社会公告。优化供电局电费管理系统,实现供电局电费收取速度快捷,简单易于查询。简化客户报装用电程序,缩短其等待通电时间。为方便用户,供电所可与当地银行和信用社协商,使用户可就近在银行或信用
社交纳电费。供电部门要花大力气进一步做好用电知识和依法用电的宣传教育工作,同时争取有关执法部门和广大群众的多方支持。建议广播电视、公安等有关部门配合支持,大力宣传《电力法》、《电力设施保护条例》等法规,进一步提高全社会依法用电和保护电力设施的意识,加大对破坏、偷盗电力设施行为的打击力度,共同为我县电力建设和招商引资创造一个良好的外部环境。加快发展电网建设步伐是保证全县电力供应和安全稳定运行的必由之路。建议党委、政府要进一步重视支持电力企业建设,宽松环境,化解矛盾,提供在市场经济条件下的政策支撑。同时,县供电部门要用足用活上级对山区用电倾斜的扶持政策,积极主动向上争取项目资金,加大资金投入,重点对我县35千伏以上线路和县城残旧线路进行大规模改造,从根本上改善电网设施状况,保证电网安全稳定运行。建议城建、国土等有关部门支持配合县供电部门做好电力设施的规划和建设,减少施工矛盾和阻力,杜绝在电力设施保护区内违章建筑,尤其是市民普遍关注的县城居民区电网规划建设问题,相关部门要与供电部门配合认真调查论证,做到与城建规划同步进行,科学规划,预留电网设施线路,确保高压线路、变压器等设施与人居有足够的安全距离,并保证供电设施的合理布局。
同时在实习过程中,得到了一些深刻的体会。
1、自主学习
工作后不再象在学校里学习那样,有老师,有作业,有考试,而是一切要自己主动去学去做。只要你想学习,学习的机会还是很多的,老员工们从不吝惜自己的经验来指导你工作,让你少走弯路;集团公司、公司内部有各种各样的培训来提高自己,你所要作的只是甄别哪些是你需要了解的,哪些是你感兴趣的。
2、积极进取的工作态度
在工作中,你不只为公司创造了效益,同时也提高了自己,象我这样没有工作经验的新人,更需要通过多做事情来积累经验。特别是现在实习工作并不象正式员工那样有明确的工作范围,如果工作态度不够积极就可能没有事情做,所以平时就更需要主动争取多做事,这样才能多积累多提高。
3、团队精神
工作往往不是一个人的事情,是一个团队在完成一个项目,在工作的过程中如何去保持和团队中其他同事的交流和沟通也是相当重要的。一位资深人力资源专家曾对团队精神的能力要求有这样的观点:要有与别人沟通、交流的能力以及与人合作的能力。合理的分工可以使大家在工作中各尽所长,团结合作,配合默契,共赴成功。个人要想成功及获得好的业绩,必须牢记一个规则:我们永远不能将个人利益凌驾于团队利益之上,在团队工作中,会出现在自己的协助下同时也从中受益的情况,反过来看,自己本身受益其中,这是保证自己成功的最重要的因素之一。
4、基本礼仪
步入社会就需要了解基本礼仪,而这往往是原来作为学生不大重视的,无论是着装还是待人接物,都应该合乎礼仪,才不会影响工作的正常进行。这就需要平时多学习,比如注意其他人的做法或向专家请教。
5、为人处事
作为学生面对的无非是同学、老师、家长,而工作后就要面对更为复杂的关系。无论是和领导、同事还是客户接触,都要做到妥善处理,要多沟通,并要设身处地从对方角度换位思考,而不是只是考虑自己的事。
人的一生中,学校并不是真正永远的学校,而真正的学校只有一个,那就是社会。大学生社会实践是引导我们学生走出校门,走向社会,接触社会,了解社会,投身社会的良好形式;是促使大学生投身改革开放,向工农群众学习,培养锻炼才干的好渠道;是提升思想,修身养性,树立服务社会的思想的有效途径。通过参加社会实践活动,有助于我们在校大学生更新观念,吸收新的思想与知识。
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇7
关键词:PHP,Java,Android,广告
1 系统总体设计
1.1 系统结构
本文基于Android广告系统主要包括以下功能模块:移动客户端模块、Web模块、Web后台管理模块, 系统结构如图1[1]所示。
1.2 系统功能
(1) 移动客户端模块。该模块采用Android平台, 使用Java进行开发, 通过与服务器的交互展示产品信息。通过网络后台进行广告发布、管理, 在无任何操作时, 客户端自动播放广告信息。用户可以通过导航栏进行页面切换, 导航栏的设置及其栏目内容可以通过Web后台设置进行更改。
(2) Web模块。Web模块主要以网页形式展示公司产品及发布公告。
(3) Web后台管理模块。web后台管理主要分为管理员、广告用户和设备用户3个后台管理模块。管理员后台模块主要实现对用户发布信息的修改、删除等, 审核用户信息。
1.3 数据环境
本系统采用MySQL数据库, 数据库名称为ad, 文件名为ad.sql。数据库包含4个表: (1) admin_user表, 记录用户登录信息; (2) pad表, 记录设备的信息; (3) news表, 记录新闻公告栏中的具体信息; (4) ad表, 记录广告用户信息。
2 系统功能模块
2.1 移动客户端模块
移动客户端模块采用Android平台, Android提供了多种布局管理方式[2], 其中常用的布局为LinearLayout和TableLayout两种。Linear—Layout是最常用、最简单的一种线性布局, 它可以嵌套LinearLayout。该系统设计主要采用LinearLayout方式。
Android平台应用程序开发采用java编码, 从服务器端获取产品信息, 并在客户端进行展示。客户端信息可以自动播放, 并可及时更新。为了获取Web服务信息, 需要定义网络地址、访问主机、构造参数, 建立一个发起请求服务的客户端, 返回的数据为一个字符串。
(1) 在从Web获取信息之前, 需要得到机密对象, 定义接受数组, 定义下载地址和输入流等。
(2) 创建一个从Web上获取内容的客户端Client, 即HttpClient。客户端与服务器之间通信部分的关键代码如下:
(3) 解析XMI文档。从Web返回的信息包含在一个字符串中, 使用Decrypt、IEncrypt方法获取客户端信息, 并将信息保存起来。
(4) 处理客户端异常。Toast是Android中用来显示信息的一种机制, 和Dialog不同的是Toast没有焦点, 而Toast显示的时间有限, 过一定的时间就会自动消失。本系统使用Toast类, 管理客户端异常提示。代码如下:
以上代码实现客户端程序与服务器端通信, 使用Decrypt、IEncrypt自定义类进行加密、解密, 从而提高系统的安全性。采用Http进行客户端与服务器之间的通信, 程序方便高效。HttpClient是一个开源的组件, 实现了完整的WEB客户端编程能力, 可以通过HttpClient模拟用户向第三方网站提交用户名密码等验证信息, 然后根据返回的登录结果页面中是否包含相关的关键字来判断用户是否合法[4]。HttpPost实现了客户端与服务器端的参数传递。
2.2 Web管理模块
Php是超文本预处理器 (Php:Hypertext Preprocessor) 。Php遵守GNU公共许可 (GPL) , Php在大多数Unix平台, 如GUN/Linux和微软Windows平台上均可以运行[5]。本系统将Php与Mysql数据库结合, 用户可以通过此模块进入后台管理界面, 后台管理角色有:超级管理员、管理员、设备用户、广告用户。
模块实现关键代码如下:
其中, mysqlHelper_connect () 函数是提供数据库连接功能, mysqlHelper_query ($sql) 为数据库操作执行函数, mysqlHelper_insert ($sql) 为数据库插入函数, mysqlHelper_fetch_array ($result) 提供数据库的查询功能, mysqlHelper_mysql_close () 为关闭数据库。通过设计数据库操作类, 可以实现代码重用, 降低代码的复杂度, 减少后期维护工作量。在查询过程中使用了MySqlHelper类操作简单 (代码略) 。
3 结语
本文开发了基于Android的小屏幕广告系统。该系统既利用Linux服务器易用、商业支持及其数据中心的可靠性等特点, 也利用Java技术的独立性、可维护性和安全性, 为移动广告用户提供了更加方便、快捷的广告信息发布服务, 不仅给用户提供实时的动态广告信息, 也便于广告商及时管理和维护广告信息。
参考文献
[1]韩万江, 康慕宁.软件项目管理案例教程[M].北京:机械工业出版社, 2008.
[2]王向辉, 张国印, 等.Android应用程序开发[M].北京:清华大学出版社, 2012.
[3]李千目, 王国全, 等.Java程序设计与应用开发[M].北京:清华大学出版社, 2005.
[4]BRUCE ECKEL.Java编程思想[M].北京:机械工业出版社, 2010.
基于Android的二维码的生成与识别系统的设计与实现设计报告 篇8
摘 要:随着智能手机的快速普及,智能手机操作系统市场风生水起。为了方便在校学生可以随时随地查看课程,一种高效的办法就是将课程表做成应用程序拓展到用户的终端设备上,并且提供一些辅助功能。因此,智能手机应用软件及其需要的服务将有广阔的开发前景。
关键词:Android;智能手机平台;课程表;开源
中图分类号:TP393 文献标志码:A 文章编号:1673-8454(2014)06-0082-03
一、引言
在智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性的体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图像组件、多媒体支持功能及其强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。
本文在分析讨论Android手机软件开发技术原理的基础上,设计并实现了能为用户提供更好的基于Android平台的课程表。
二、系统需求分析
本应用是一款简单的Android课程表,首先课表支持查看课程的功能,因为数据比较小,采用了XML存储模式。其次,课表具有修改课程的功能,便于课程改变的应对,以及清空课表,为循环使用提供方便。在Title项设计了点击查询当日天气的功能。由此可以得到功能图1,程序流程图2。
三、系统功能模块概述
系统分为4个功能:
1.显示主界面
主界面显示各个按钮,以及动态显示本周的课程,主界面将Title隐藏了起来,取而代之的是自己设计的Title,将他们整合起来。另外,主界面要负责将XML数据调入内存中。
2.修改课程功能
修改课程功能,通过用户点击课程后,弹出一个Dilog,用户可以在Dilog中修改本课程的上课时间、代课老师、课程名称以及备注信息。然后将其重新回写到XML文件中,方便下次启动时,课程被永久修改。
3.清空课表功能
清空课表功能,当用户点击了清空课表,将清除所有科目的上课信息属性,课表将被置空。用户可以重新编辑课表。
4.天气查询功能
天气查询功能放置在Title项中,节省主界面的空间,Title和主界面搭配在一起,设置按钮监听,当Title按钮被点击时,从网上获取今日的天气情况,并显示在Title栏中。
四、实现技术及工具
Android提供了免费且跨平台的整合开发环境。采用JAVA语言结合Android编程的规则来编写程序。开发Android应用,需要以下硬件及软件支持:
1.操作系统。Windows XP ,Mac OS X(一个基于UNIX核心的系统)和Linux三种方式,本文使用了Windows XP的操作系统来开发。
2.JDK 5 或者 5以上版本。JDK是JAVA的开发环境,必须有了JAVA的开发环境才能开发JAVA程序。这里采用了JDK 7这个版本。
3.Eclipse IDE ,一个多用途的开发工具平台。Eclipse功能十分强大,可搭载其他扩成套件来开发其他项目,如网站开发、ERP开发等。Eclipse版本采用了3.7.0版本。
4.ADT, 一款基于Eclipse的扩充套件。
5.Android SDK,Android程序开发套件,包含了Android手机的模拟器,有了它你就可以在虚拟机中查看调试程序,方便很多。
五、应用程序设计
1.数据存储结构设计
数据采用了面向对象的思想去存储数据,因为数据量比较小,采用了XML文件来存储数据。数据以day标签为每一个数据对象,每一个day标签有多个属性,用来记录数据。数据的属性有Teacher、startTime、endTime、index、weekday、valuetext、classname。当程序启动时,把属性封装成对象,完成操作。
2.主视图设计
Android代码的编写,首先编写主界面的布局文件,每一个Activity文件会对应一个Layout的布局文件,由于在Android中表格布局无法分列,布局起来十分困难,而线性布局也可以做成表格,所以,最终选择了用线性布局来布局主视图。布局分为两大块,在一个总线性布局中首先套用了两个小的线性布局,如图3所示。
左侧的小线性布局放置不同的星期按钮,通过点击按钮来修改右边布局中对应星期的课程。右边的布局中,套用一个表格布局来约束各空间的比例,分出来每一行来存放和显示不同的课程、时间信息。再配以背景的美化,预期效果与最终效果对比如图4所示。
至此,主视图的设计完成,再在Activity中配置相应按钮的动作即可。在主视图创建时,程序读取xml数据载入视图中对应的控件,点击左侧的按钮会改变右侧控件的属性,从而查看每天的课程。
3.修改功能设计
修改功能设计时,需要另起一个Activity,与之对应需要另外建立一个Layout的布局文件,这里采用了Dilog的窗口。Activity的相互启动,需要用到Intent(意图)模式,意图中可以存放需要传递的参数。当点击要修改的课程时,程序会触发动作,来生成一个Dilog完成修改操作。根据要修改的属性,Dilog也采用了线性布局,其中包含开始时间、结束时间、课程名称、教师姓名,以及这节课需要的一些备注信息等属性。除了两个时间以外,其他的属性均使用了文本编辑条,而开始时间和结束时间,为了得到更好的用户体验采用了Android提供的Timepicker控件,它是一个时间选择的控件。当控件的时间发生改变,它会调用相应的OnTimeChangedListener()函数,在这里可以接收得到时间参数,并做相应的处理。endprint
4.天气查询功能设计
天气查询功能,为了节约主界面的空间,将其放在自定义的Title中。自定义的Title含有3个控件,一个用于显示接收的天气信息,一个是Spinner控件,用于选择需要查询的城市,以及一个确定按钮。需要注意的是,Title无法和主界面的线程跑在一起,必须要新起一个线程来处理数据,也就是说,整个应用启动的时候,有2个线程同时在跑,一个是主界面的线程,一个是Title线程用来监听是否触发了Title的操作。应用程序的界面是由2个界面构成。而线程之间传数据,也必须用一定的格式来传,Title线程的数据,在主线程中无法直接调用,必须用特定的方式获取。Spinner空间类似于一个listview控件,不同的是,它将弹出一个Dilog用来选取对应的Item。
整个Title的显示效果如图5所示。
图6是点击查询天气按钮后显示的效果。
数据取自www.webxml.com.cn网站,这个网站免费提供一些信息查询的功能,返回的方式都以XML文件的格式返回,接收到返回文件后,只需自己解析读取所需内容即可。
六、应用程序测试
1.视图功能测试
测试环境首先在搭建环境中的虚拟机进行测试,所用虚拟机版本为API 15,即Android 4.0.3的版本,屏幕尺寸为QVGA。测试主视图整体显示效果正常;点击不同星期,显示不同课程,显示正常;点击Title可以切换不同的城市查询天气,显示正常。
2.改课及清空课表功能测试
修改课程功能测试,显示效果正常;测试清空课表功能,课表已被清空成功,功能测试正常。
3.实体机测试
实体机测试选用了两部不同品牌的手机,分别为摩托罗拉ME525,操作系统为Android 4.0,屏幕尺寸3.7英寸,像素为854 x480;和联想A790e,操作系统为Android 2.3.0,屏幕尺寸4英寸,像素800 x 480。经过多次实体机测试,显示功能正常,修改清空功能正常,查询天气功能正常,无发现BUG点。具体如图7所示。
七、结束语
随着更多大规模的公司加入Android市场,应用程序会越来越多,涉及方方面面,这样势必会造成应用程序的逐渐饱和。在这种情况下,应用程序会更多的将目光放在用户体验上,一款应用程序的大面积普及,势必建立在良好的用户体验上。
简洁、易懂、方便操作将会提升应用程序的普及率。本文介绍的Android移动课程表还有许多可扩展功能,它可以和学校教务处结合在一起,从而拓展出更多的实用功能,例如查看喜爱教师的课程,从而可以自由的安排上课时间,查询同学上课安排等等一系列更加生活化的功能。
通过上述Android应用程序的编写,可以切身了解Android开发的各种结构步骤和Android的系统架构模式,从而对Android的软件开发得出如下收获:
Android应用程序开发十分方便易学,在开源的基础上,设计者有了天马行空的设计方式,不会拘泥于固定模式的开发,有助于语言的进步。Android提供的丰富的API使得开发者开发应用程序不用再考虑下层业务,开发起来高效快捷。
Android 应用程序的开发对于有编程经验的人来说十分易懂,从而带动了开发市场的活跃。加之其跨平台的兼容性,开发的便捷性,大大降低了程序对开发人员人数的依赖性,能够节省大量的成本。
而且,Android开发的应用安装在独立设备之上,降低了像Web这样的多设备连接处理时产生错误的可能性,避免了许多不必要的麻烦。多设备连接更多的会出现预测不到的意外情况,而独立设备方便携带,不会产生多设备连接时的信号冲突。搭配更新周期短的硬件设备,Android应用将会占据市场的核心地位。
参考文献:
[1]赵朋飞.智能手机操作系统Google Android分析[J].科技视界,2011(8).
[2]刘平.Android手机访问服务器的一种数据交互方法[J].电子设计工程,2010(9):96-102.
[3]李佐彬等.Android开发入门与实战体验(附光盘1张)[M].北京:机械工业出版社,2010.
[4]韩超,梁泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2011.
【基于Android的二维码的生成与识别系统的设计与实现设计报告】推荐阅读:
基于系统的设计与实现03-16
基于Client/Server 的课件系统的设计与实现02-02
工业自动化论文:基于组态技术的水源站远程监控系统的设计与实现02-05
基于J2EE的元数据管理系统的设计与实现09-21
基于J2EE平台的网络辅助教学系统的设计与实现的研究论文03-01
基于手机短信的订餐系统设计与开发11-16