版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北农业大学毕业论文(设计) 河北农业大学信息学院本科毕业论文题目:安卓校园小助手 摘要现代社会,手机导航己经成为人们工作生活中必不可缺少的一项导航定位服务。随着手机硬件的快速升级换代,对应于手机的各种高级软件服务和应用层出不穷。在这当中,手机导航定位服务,是一项全新且具有广阔市场和应用价值的业务。这其中的领航者百度地图,是百度公司向全国提供的电子地图服务。它拥有纸质地图所无法比拟的优越性,特别是在近年来移动设备智能化、轻便化的趋势下,再加上网络速度的提升,更是让百度地图与人们的生活产生更为息息相关。并且随着移动互联时代的到来,智能手机终端在我们的生活中扮演着越来越重要的角色,时刻影响着我们的日常生活。作为一次在移动终端的简单尝试,安卓校园小助手试图为广大师生提供在手机上的信息展示和道路指引。广大师生只需打开手机,轻轻一点,即能从网络中获取丰富的信息资源,方便快捷。程序设计的目的是希望能给需要此类信息的人们带来方便,同时自己在完成此程序的过程中学到知识和经验。论文系统地分析了河北农业大学校园助手软件开发的背景及过程,首先介绍了软件的开发环境,然后介绍了本软件的详细设计过程以及具体界面的设计和功能,最后对在本软件开发过程中的所遇到的问题进行了总结。基于Android的校园通系统是利用
Eclipse、AndroidSDK、开发Android程序的Eclipse插件作为开发工具,基本流程首先要安装Eclipse。本软件应用于Android手机,方便学校师生在手机上就能直观的了解到河北农业大学的相关信息及校园风貌,并且学校师生可以使用软件提供的图书扫描功能进行图书条形码的扫描,从而获得图书信息。关键词:安卓,手机导航,百度地图,网络传输,条形码图像处理库
AbstractWiththeadventoftheeraofmobileInternet,smartphonesterminalinourlifeplaysamoreandmoreimportantrole,momentaffectsourdailylives.Asasimpleattemptatthemobileterminal,theandroidcampuslittlehelperistryingtoshowforthemajorityofteachersandstudentstoprovideinformationonamobilephoneandroadguide.Thegeneralteachersandstudentsneedtoopenthephone,gently,namelycanobtainabundantinformationresourcesfromtheInternet,convenientandquick.Hopeisthepurposeofdesignthisprogramcanbringconveniencetopeopleinneedsuchinformation,atthesametimetheirlearnedknowledgeintheprocessofcompleteoftheprogramandexperience.Papersystematicallyanalyzedthehebeiagriculturaluniversitycampusassistantbackgroundandprocessofsoftwaredevelopment,firstintroducedthesoftwaredevelopmentenvironment,thenintroducesthedetaileddesignofthesoftwareprocessaswellasthespecificinterfacedesignandfunction,andfinallytotheproblemsinthesoftwaredevelopmentprocessaresummarized.BasedonthecampusoftheAndroidsystemisAndroidprogramdevelopedbytheEclipse,AndroidSDK,Eclipseplug-inasadevelopmenttool,thebasicprocesstoinstalltheEclipseinthefirstplace.ThesoftwareusedinAndroidphone,convenientschoolteachersandstudentsonamobilephonecanbeintuitiveunderstandingtotherelevantinformationofhebeiagriculturaluniversityandthecampuslandscape,andschoolteachersandstudentscanusethesoftwareprovidedbyscanningthebooksqrcodescanningfunction,bookinformationisachieved.keywords:Android,JSON;eclipse;networktransmission;opensource;servers;mobileclient
目录摘要 II1绪论 11.1前言 11.2开发概述 11.3手机操作系统的开发现状 11.4Android的构架分析 21.5Android特征 21.6论文结构 32开发环境和开发技术 42.1Eclipse和Android的简介 42.2应用程序框架 42.3系统运行库 42.4Linux内核 52.5Android应用的构成和工作机制 52.6Android与其他手机操作系统的比较 62.7本章小结 63系统的需求分析 73.1设计思想 73.2经济可行性 73.3系统可行性分析 73.4操作可行性 73.5系统技术性分析 73.6系统的需求分析 74基于安卓平台的百度地图导航设计 94.1百度地图API申请和使用简介 94.2百度地图SDK简介 104.3百度地图库文件的工程配置流程 114.4百度地图初始化的代码配置流程 115ZXing条形码识别和豆瓣读书API 145.1ZXing的简介: 145.1.1一维码 145.1.2二维码 145.2ZXing调用过程 155.3豆瓣读书 155.3.1豆瓣图书API调用流程 156校园助手系统设计与实现 166.1总体设计结构图 166.1.1该系统的架构如图: 166.1.2该系统的功能结构图: 166.2总体设计实现 176.2.1欢迎界面: 176.2.2校园新闻: 176.2.3校园导航: 186.2.4图书扫描: 197总结以及展望 207.1总结 207.2展望 208系统测试知识 218.1测试作用 218.2测试目的 218.3测试方法 21致谢 22参考文献 23附录 24 -PAGE27-1绪论1.1前言随着更行各业的技术迅猛发展,移动通信设备与Internet向移动终端的普及,年轻一代的手机用户对移动终端的要求越来越高,而Symbian,WindowsMobile,ios等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。Android是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。手机校园通系统能很好的帮助本校师生及外来人员直观的了解到本校的相关信息和校园风貌,对于不熟悉校园的人来说,在导航功能上也起到很重要的作用。打开软件就能看到学院的平面图结构,能帮助新来人员迅速的熟悉校园环境。1.2开发概述随着移动互联网高速的发展,校园手机用户数量不断攀升,手机校园通系统能简单直观的为校园手机用户展示河北农业大学的风貌,对于不熟悉校园的人来说,在导航功能上也起到很重要的作用。基于安卓系统开发的校园导览系统是一个稳定、快捷的览视平台,是手机用户的最佳选择。1.3手机操作系统的开发现状苹果iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等产品上。IOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhoneOS,因为pad,iPhone,iPodTouch都使用iPhoneOS,所以2010WWDC大会上宣布改名为iOS(IOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML以及3G技术。Windowsmobile系列操作系统是从微软计算机的Windows操作系统上变化而来的。Windowsmobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件设置(如内存、储存卡容量等)上也采用其他操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。Windowsmobile系列操作系统包括SmartPhone以及PocketPCPhone两种平台。PocketPCPhone主要用于掌上电脑型的智能手机,而Smartphone则主要为手上智能手机提供操作系统。Linux系统是一个源代码开放的操作系统。由于其开源性,手机制造商可以根据实际情况开放自己的Linux手机操作系统,从而也能够吸引更多的软件制造商在其上开发更多的应用软件,丰富的第三方的应用。但是Linux操作系统也还存在一些不足,集成开放环境和基于Linux的产品与PC的连接性比较差等。1.4Android的构架分析Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、KeyApps、Middleware、LinuxKernel四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。Android的架构是由Linux内核、C/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的。图1-1Android架构 1.5Android特征应用框架:用于开发可重用、可替代的组件。Dalvik虚拟机:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGLES1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLite提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音频、视频和静态图像格式,如MP3、JPG、PNG等。OpenCore是Android多媒体框架的核心,所有Android平台的音频和视频采集、播放的操作都是通过它来实现的。通过OpenCore,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)GlobalSystemforMobileCommunications,全球通讯系统,俗称“全球通”,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。蓝牙,EDGE,3GandWiFi:(依赖硬件)蓝牙和Wi-Fi都是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(EnhancedDataRateforGSMEvolution),是增强型数据速率GSM演进技术。Camera,GPS,compass,andaccelerometer:(依赖硬件)GPS(GlobalPositioningSystem),即全球定位系统。它是由一个由覆盖全球的24颗卫星组成的卫星系统。Compass是一个开放源码的Java搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。Eclipse是个集成开放环境。1.6论文结构绪论分析了系统的研究背景,介绍了当前手机操作系统、即时通讯软件的发展现状。第一章绪论第二章开发环境和开发技术第三章系统的需求分析第四章基于安卓平台的百度地图导航设计地五章ZXing条形码识别和豆瓣读书API第六章河北农业大学校园通系统设计与实现第七章总结以及展望第八章系统测试知识致谢参考文献附录
2开发环境和开发技术河北农业大学校园通系统是利用ANDROID面向对象的编程方法(OOP)以及基于Eclipse+ANDROIDSDK作为开发工具,Android会同一系列核心应用程序包一起发布,该应用程序包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。其解释如下:2.1Eclipse和Android的简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台,由IBM倡议开发,通过安装插件组件构建的集成开发环境。Android是谷歌(Google)公司推出的手机开发平台,与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。2.2应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。2.3系统运行库程序库:Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:系统C库一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedLinux的设备定制的。媒体库基于PacketVideoOpEncore;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。SurfaceManager-对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。LibWebCore一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。SGL底层的2D图形引擎3Dlibraries基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。FreeType位图(bitmap)和矢量(vector)字体显示。SQLite一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。运行库:Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。2.4Linux内核Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。2.5Android应用的构成和工作机制Android应用程序来说,是由Activity、IntentReceiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件Android应用程序中所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Android应用的构成和工作流程图如图2-1所示。图2-1Android的构成和工作流程2.6Android与其他手机操作系统的比较Android和WindowsMobile的区别:首先需要了解的一点是Android和WindowsMobile是两个运行在手持设备商的不同智能平台。Android是Google主导手机开放联盟开发的,WindowsMobile则是微软主导开发的。两个系统的差别在于三方面:一是系统内核:Android系统基于Linux内核,而WindowsMobile则是居于微软的WinCE。两者的架构完全不同。二是代码开源程度:Android完全开源,使用免费。但是WindowsMobile则完全相反,使用的话需要给微软一定的授权费用。因此Android更受程序员和手机厂商欢迎,更可以有效降低手机成本。三是两者的组件和功能不同:WindowsMobile扩展能力强,就像是一台掌上电脑。相对言之Android系统则是更注重于手机功能,目前来说在应用程序数量上弱于前者,但是毕竟是刚刚起步,由于其开源的特点,相信其应用程序数量会成几何形增长。Android平台和iPhone对比:苹果的APP是独创专用文件,开发者开发后审核速度慢,大部分软件是收费的。相反,安卓是通用的安卓机APK文件,开发者可以使用较低成本和时间开发,而且几乎全部免费。苹果手机性价比比较低,不如安卓很多机型性价比高,安卓便宜实惠,而苹果价格较高功能也不是尖端。另外在DIY美化方面安卓可以说是方法各种各样,也很简单明了,如刷MIUI系统,安装各种桌面,安装各种有趣的小插件,随随便便就可以美化系统,而且还不用担心给系统带来损害;苹果虽然也能进行美化,但是前提是要越狱,但是越狱带来了潜在的风险即——白苹果等,一旦出现白苹果就只能重新刷固件了,比安卓刷机稍微麻烦2.7本章小结 本章对Android平台的特征、架构以及Android应用的构成和工作机制进行了详细的分析。对于Android应用程序来说,主要由Activity、Service、IntentReceiver和ContentProvider四部分组成,但并不是对于每一个应用程序,这四部分都是必须的。Activity是应用程序中最重要的一个组件,我们对其进行了详细的分析,包括Activity的生命周期以及Activity之间的切换。最后对Android与其它的手机操作系统进行了比较,说明了Android的优势。
3系统的需求分析3.1设计思想设计思想是项目开始的第一项工作,用来整体把握整个项目。设计客户端程序:组织需要展示的数据,分类整理,设计页面UI布局。在开始页面展示客户端的按钮列表,二层页面展示了每一按钮按下后的文字信息,展示联网后下载的图片信息和加载的地图信息,通过与用户交互从而得到网络数据信息。3.2经济可行性此系统开发所需软件工具:Eclipse,AndroidSDK,均是开源工具,在网上都可以方便得下载到。开发需要在一台个人电脑上实现,由于现在的个人电脑有着价格越来越低,配置和性能也越来越高的特点,而此项目的开发并不需要配置特别高的电脑作支持。所以有了设备和工具支持,开发本项目几乎没有物理成本,仅仅是简单的人工成本,这样开发此项目在经济可行性上成为可能。整个系统建设完成后会给广大校园师生带来强有力的技术和信息支持,其用来查阅图书信息和浏览学校的地图,并能对其放大、缩小和移动,实现自我定位、位置查找和路径跟踪,提供学习场所、校内公交、健身、餐饮等一系列信息查询功能,满足了校园手机用户基本的地图导航服务需求。3.3系统可行性分析个人安卓智能手机可行性,现在,安卓智能手机的价格已经是越来越便宜,性能却是一天比一天好,本系统的开发可以为方便在校师生查阅相关资料提供了非常便捷的平台,节省资源提高个人管理生活和工作的效率,同时还能具有较高的安全性。同时本系统所枆资源小,每个人的安卓智能手机都能满足,所以本系统在运行上是可行的。3.4操作可行性客户端简洁的页面和结构清晰的布局,使得在使用时非常方便,在操作上要求非常低,只需简单的点击对应按钮,就能获取所需资源。就像平时观看电视节目按动遥控器一般。3.5系统技术性分析目前在网络方面,非常流行的就是Android语言,本系统依靠当前的技术水平完全能够实现。客户端的开发采用Java语言,在Windows或Linux系统中使用Eclipse平台开发。结合平时所学知识,自己有着编写过Java小项目和熟练使用Eclipse的经验,在技术上成为可行。Java是一种面向对象语言,结合JavaBean的使用,对于系统化的项目编写有着独特的优势,在稍大的系统当中,Java语言的面向对象性质能方便得操作各类数据,同时丰富的接口使得程序的扩展性和灵活性大大增加。使用系统或自定义类来完成工作,能够实现代码的重用效率,有效减少代码冗余。上述语言特性和Eclipse平台的可扩展及强大的功能支持着开发的技术可行性。3.6系统的需求分析本系统主要用于对手机上网用户,点击浏览该系统,主要是界面程序的开发、数据库的建立。应用程序功应完善,界面人机交互要好,而且操作要简单。数据库中的数据要条理清晰,易于维护,同时要保证数据库中的数据完整。能够节省时间,可以让在校手机用户快速的找到想要的信息,能很方便的了解学院新闻信息、平面结构、相关介绍及相关公告等内容。河北农业大学校园通系统是基于Eclipse、AndroidSDK、开发Android程序的Eclipse插件作为开发工具,ACCESS2003作为后台数据库支持。选择ANDROID语言,因为ANDROID基于不同的开发平台,更好的实现了人机交互。同时ANDROID语言简单,在较短的时间内能够开发出使用性强、功能完善,易于操作的程序,也能实现与数据库的连接。
4基于安卓平台的百度地图导航设计本系统的大部分功能是基于安卓平台的百度地图开发实现的,它不仅提供了构成地图的基本接口,还提供本地搜索,路线规划,定位等服务,我们可以使用百度地图AndroidSDK开发适用于移动设备的地图应用,通过接口,可以轻松访问百度服务和数据,构建功能丰富,交互性强的地图应用程序。下面就对百度地图的开发使用进行简单的介绍:4.1百度地图API申请和使用简介百度地图移动版API是一套基于安卓
2.1及以上设备的应用程序接口,通过该接口,您可以轻松访问百度服务和数据,构建功能丰富、交互性强的地图应用程序。百度地图移动版API不仅包含构建地图的基本接口,还提供了诸如地图定位、本地搜索、路线规划等数据服务,你可以根据自己的需要进行选择。
用户在使用API之前需要获取百度地图移动版API
Key,该Key与你的百度账户相关联,您必须先有百度帐户,才能获得API
KEY。并且,该KEY与您引用API的程序名称有关,KEY的申请具体流程如图4-1所示。图4-1申请百度API密钥
然后获得已申请的API密钥,如图4-2所示。
为了能使用百度地图应用,首先将API包括的两个文件baidumapapi.jar和libBMapApiEngine.so拷贝到工程根目录及libs\armeabi目录下,并在工程属性->Java
Build
Path->Libraries中选择“Add
JARs”,选定baidumapapi.jar,确定后返回,这样就可以在程序中使用API了。图4-2我的应用开始配置应用,我们需要配置我们应用的安全码(安全码的组成规则为:Android签名证书的shal值+“;”+packagename(即:数字签名+分号+包名))安全码的获取方式如下:使用Eclipse直接查看:windows->preference->android->build.图4-3图4-3获取自己的shal密码4.2百度地图SDK简介百度地图Android
SDK是一套基于安卓
2.1(v1.3.5及以前版本支持安卓
1.5以上系统)及以上版本设备的应用程序接口,您可以通过该接口实现丰富的LBS功能(1)地图展示:包括2D图、卫星图、3D图地图展示。
(2)地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。(3)地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据。
(4)线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。
(5)位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。
(6)实时路况:提供城市实时交通路况信息图。
(7)定位:采用GPS、WIFI、基站、IP混合定位模式,请使用安卓定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
百度地图Android
SDK从2.0.0版本开始采用的是矢量版的地图,开发者如果需要使用栅格版的地图数据,请使用1.3.5及之前的版本。4.3百度地图库文件的工程配置流程第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如图4-4所示。注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加图4-4工程配置第二步:在工程属性->JavaBuildPath->Libraries中选择“AddExternalJARs”,选定baidumapapi_vX_X_X.jar,确定后返回。通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。4.4百度地图初始化的代码配置流程百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:第一步:创建并配置工程(具体方法参见工程配置部分的介绍);第二步:在Manifest中添加使用权限、Android版本支持和对应的开发密钥;常用使用权限如下:<!--使用网络功能所需权限--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.INTERNET"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!--SDK离线地图和cache功能需要读写外部存储器--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><uses-permissionandroid:name="android.permission.WRITE_SETTINGS"></uses-permission><!--获取设置信息和详情页直接拨打电话需要以下权限--><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CALL_PHONE"></uses-permission><!--使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项--><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"></permission><uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_GPS"/>配置Activity:<activityandroid:name=".MapDemo"android:screenOrientation="sensor"android:configChanges="orientation|keyboardHidden"></activity>添加屏幕及版本支持:<supports-screensandroid:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:resizeable="true"android:anyDensity="true"/><uses-sdkandroid:minSdkVersion="7"></uses-sdk>
添加对应的开发密钥:<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="开发密钥"></meta-data>第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="helloworld"/><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapsView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"/></LinearLayout>第四步:创建地图Activity,并import相关类:importandroid.app.Activity;importandroid.content.res.Configuration;importandroid.os.Bundle;importandroid.view.Menu;importandroid.widget.FrameLayout;importandroid.widget.Toast;importcom.baidu.mapapi.BMapManager;importcom.baidu.mapapi.map.MKMapViewListener;importcom.baidu.mapapi.map.MapController;importcom.baidu.mapapi.map.MapPoi;importcom.baidu.mapapi.map.MapView;importapi.basestruct.GeoPoint;publicclassMyMapActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){}}第五步:初始化地图Activity、使用Key:完成以上步骤后,运行程序,即可在应用中显示地图。
5ZXing条形码识别和豆瓣读书API该系统的图书扫描功能是基于ZXing技术和豆瓣读书API开发的,通过扫描图书条形码查询得到图书的介绍,封面图,作者,出版社,出版时间,内容简介等。5.1ZXing的简介:ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。Zxing库的主要部分支持以下几个功能:核心代码的使用、适用于J2SE客户端的版本、适用于Android客户端的版本(即BarcodeScanner)、Android的集成(通过Intent支持和BarcodeScanner的集成)等5.1.1一维码条码是由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分。图5-1条形码解析图5.1.2二维码二维码
(dimensional
barcode)
,又称二维条码,是在一维条码的基础上扩展出的一种具有可读性的条码。设备扫描二维条码,通过识别条码的长度和宽度中所记载的二进制数据,可获取其中所包含的信息。相比一维条码,二维码记载更复杂的数据,比如图片、网络链接等。图5-2彩色二维图图5-3黑白二维图
5.2ZXing调用过程安装应用:在官网上找到APK对应的Googleplay的地址,下载APK进行安装。从官网下载两个java接口文件:IntentIntegrator.java和IntentResult.java.在当前的Activity中使用Intent,启动ZXing:IntentIntegratorintegrator=newIntentIntegrator(MainActivity.this); integrator.initiateScan();在第3步中同一Activity中重写onActivityResult()获取返回结果:IntentResultresult=IntentIntegrator.parseActivityResult(requestCode,resultCode,data); if((result==null)||(result.getContents()==null)){ Log.v(Utils.TAG,"Usercancelscanbypressingbackhardkey."); return; }5.3豆瓣读书豆瓣读书为豆瓣网的一个子栏目。豆瓣读书自2005年上线,已成为国内信息最全、用户数量最大且最为活跃的读书网站。豆瓣读书专注于为用户提供全面且精细化的读书服务,同时不断探索新的产品模式。到2012年豆瓣读书每个月有超过800万的来访用户,过亿的访问次数。豆瓣读书API提供多种方式获去图书信息,例如,通过书名搜索,通过ISBN查询,通过标签查询等,在该项目中用到的是“通过ISBN查询”来获取。5.3.1豆瓣图书API调用流程拼接出图书对应的URL:通过ZXing扫描就可以得到图书的ISBN,然后根据豆瓣图书API提供的拼接方法得出一本书对于的URL:http:///v2/book/isbn/+ISBN。图书信息下载:通过http中的个体请求进行数据下载,如果响应状态码为200,就意味着请求成功,下载所的数据为图书信息文件,文件格式为JSON。如果响应状态码为其他,就意味着请求失败,下载所得的数据为错误的信息。解析下载所得的JSON文件:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。所得JSON文件中包含的标签有:title,image,author,publisher,prbdate,isbn,summary;我们只需把各个标签的值解析出来,就能等到图书信息。
6校园助手系统设计与实现6.1总体设计结构图6.1.1该系统的架构如图6-1所示。图6-1系统架构6.1.2该系统的功能结构如图6-2所示。首页显示首页显示图书扫描校园网站校园地图使用摄像头扫描二维码打开校园网站查看信息公交查询定位POI搜索图6-2功能结构图6.2总体设计实现河北农业大学校园通系统手机客户端主要为校内外手机用户了解河北农业大学的一个平台,方便浏览校园新闻、信息查询、信息发布、校园交流等,为全校师生提供了一个方便的平台。导航包括:图书扫描、校园导航、校园网站、校园简介;具体介绍如下。6.2.1欢迎界面:为了防止网络不畅通,致使用户不能耐心等待,需给手机用户留一个缓冲的时间,我设计了一个简单、大方的欢迎界面。图6-3欢迎界面6.2.2校园新闻:这里可以查看河北农业大学发布的相关新闻,方便手机用户查阅通知公告,这里只做了校园新闻的效果图。图6-4访问校园网6.2.3校园导航:本栏目主要方便不了解河北农业大学的手机用户设计的,因为新人来到陌生的地方,不了解地理方位,所以在此软件里添加了校园导航系统,方便新生或家长快速掌握河北农业大学的地理方位。图6-5公交查询6.2.4图书扫描:这里可以使用一维码扫描功能对图书的一维码进行扫描,从而得到图书的简介。图6-6开启手机摄像头图6-7返回图书信息
7总结以及展望7.1总结我在学校经过3个多月的安卓学习和实践,在即将学业要结束的时候,我设计出了一个基于Android平台的手机校园通系统,该系统具备一个可以商用的几乎所有的条件,实现了校园新闻发布、平面结构图展示、相关信息发布和查询等功能,这是校园通系统的基本要求。作为一个校园通系统,系统提供了多种分类浏览和快捷的查询方式,借用户迅速定位自己想要的信息。但是由于时间、技术等各方面因素,本系统仍不完善,有很多问题需要解决,结合在系统开发过程中的思考和各方面的意见,发现以下一些尚不成熟需要改进和完善的地方:系统总体规划欠缺,系统在开发过程中就感到总体规划存在一定问题,这时才认识到软件开发过程的重要性。功能不够完善:规划时出现的功能现在由于时间,技术等原因不能实现。码中没有写注释。良好的写代码习惯是应该在代码中加入注释,以便以后维护更新系统的时候容易让人读懂,这个缺陷的产生是因为开发时偏重速度导致的。设计开发一个软件,首先要了解所涉及到行业的现状,一定要想办法进行行业调研,从不同途径获取该行业的专业知识。合理安排系统设计开发时间,进行实际开发会发现需求分析与系统设计占主要的时间,如果前面的工作做好了,编码实现占用的时间很短。所以我们要借助软件工程的思想对软件开发过程进行控制。总之在这次的系统设计中,从中学到了许多以前书本上没有学到过的,这更增强了我的理论基础知识,从中受益多多。7.2展望学习和教育是无止境的,是人生一辈子的事情,正是由于这种无限的需求,使得各种各样的基于网络形式的导览平台不断出现,Android同时也获得了大量开发者的支持。据Google称,在其推出后的两个月内,程序员下载这个软件开发平台的次数已经高达250000多次。尽管在如此庞大的下载数量中只有一小部分开发者真正开始编写实际的应用程序,但我们却由此可以看出惊人的开发商兴趣。相比之下,在Symbian操作系统推出一年后,其操作指南的下载次数只有70000次左右。
8系统测试知识8.1测试作用系统测试是信息系统的开发周期中一个十分重要的活动。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免遗留下差错,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误则会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模系统,系统测试的工作量大约占整个软件开发工作量的40%~50%。而对于一些特别重要的大型系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段总和的若干倍。因此,系统调试与测试工作的作用和意义那是不言而喻的。8.2测试目的这个软件测试目的的观念对于我们的测试工作起着重大的影响。因为人类思维的严密性是有限度的,加之开发人员的主观的、心理的、经验等方面的因素,实践证明,软件在测试前是不可能没有错误的,只是缺少发现。系统测试就是以找到系统存在不足的地方为目的,不是要证明程序没有错误,能正常运行,而是要找出哪些地方容易发生错误,不能正常运行,要以十分挑剔的态度,去寻找程序的不足之处,这样才能使我们做出来的软件表现完美。因此测试的目的就是发现程序的错误。系统测试的最主要的原则就是测试工作应该避免由原开发软件的个人或小组来承担。8.3测试方法在源程序做好后,先要经过人工测试,然后再进行机器测试。因此这套餐饮系统首先由个人进行了复查,接着进行机器测试,然后进行单元测试、组装测试、确认测试及系统测试,登录界面的测试为例:(1)用正常数据测试(2)用异常数据测试(3)用错误数据测试试验程序对错误的处理能力,包括显示出错信息及容许修改错误的可能性。具体检验内容有:输入键号错误时(包括错的键号和不应该有的键号)能否及时检出和发出出错信息,并允许修改;输入数据错误时(包括错误数据、不合理数据和负数)能否及时查出或发出出错信息,并允许修改。
致谢从这篇论文选题到论文撰写结束的这段时间里,感谢伟大的母校给我们搭建的沃土,让我在这里不断的成长,慢慢的变得成熟起来,还要衷心的感谢我的指导老师周桂红老师,感谢他对我的悉心指导。周老师严谨的治学精神,忘我的工作热情,丰富的实践经验,高尚的品德和渊博的知识使我受益颇深。我不仅在学习能力,科研能力上取得很大的进步,而且学到了许多为人处世的道理。在论文写作过程中,从资料收集,开题报告,撰写初稿到修改定稿,周老师从多个方面悉心指导,我才能顺利完成这篇论文。在学习和生活中,恩师所给予的至真至诚的关怀和谆谆教导,我将终生铭记,并将恩师作为今后工作和学习中的楷模,努力工作,以更加出色的成绩回报恩师。当然还要感谢帮助过我的同学,我们在相互学习和交流中,解决问题共同进步,最后还有我们信息院的老师,感谢你们为我们的学习与成才创造的各种条件和付出的辛勤劳动。感谢在百忙之中来参加论文评审的各位老师及专家们,你们,辛苦了!感谢你们为本文提出了很有价值的意见和建议。同时还要感谢信息学院的领导和老师们多年来对我的培养和支持,是你们为我提供了良好的学习环境和机会。在此我还要感谢我的父亲、母亲,正是他们二十多年来的关心、鼓励和支持,才使得我可以走到今天。为了明天更美好,我会更加努力,更加卖力去创造。
参考文献[1]孙晨霞杨兴运,《Java程序设计》出版社:中国计划出版社[2]李波,《Android4.X从入门到精通》,清华大学出版社,2012[3]杨丰盛,《Android应用开发揭秘》,机械工业出版社,2010[4]柯元旦,《Android内核剖析》,电子工业出版社,2011[5]李宁,《Android应用开发实战》,机械工业出版社,2012[6]ChrisHaseman,Apress,《AndroidEssentials》,2008 [7]EOE移动开发社区,《android开发入门与实践》(第2版)人民邮电出版社[8]MarkL.Murphy著《BeginningAndroid》
附录(1)在android的手机客户端。具体代码流程为定义一个了Button类btnGO,从界面中取出按键将btnGO实例化,创建一个Uri的链接到服务器端,用到的技术就是手机浏览器WebKit。Android应用端开始链接服务器端,将服务器端的页面信息通过手机客户端的WebView显示在Android
手机界面上。以下是主要的实现代码: publicclassMainActivityextendsActivityimplementsOnClickListener{ privateButtonmStartScan; privateButtonmStartSchool; privateButtonmStartMap; privateProgressDialogmProgressDialog; privateDownloadHandlermHandler=newDownloadHandler(this);@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initViews();initBrowser();initMap();} @Override protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ IntentResultresult=IntentIntegrator.parseActivityResult(requestCode,resultCode,data); if((result==null)||(result.getContents()==null)){ Log.v(Utils.TAG,"Usercancelscanbypressingbackhardkey."); return; } //因为下载需耗时,为了更好的用户体验,显示进度条进行提示。 mProgressDialog=newProgressDialog(this); mProgressDialog.setMessage(getString(R.municating)); mProgressDialog.show(); //启动下载线程 DownloadThreadthread=newDownloadThread(BookAPI.URL_ISBN_BASE+result.getContents()); thread.start(); } publicvoidonClick(Viewv){ if(v.getId()==R.id.main_start_scan){ startScanner(); } elseif(v.getId()==R.id.main_start_school) { startSchool(); } elseif(v.getId()==R.id.main_start_schoolmap) { startMap(); } } privatevoidinitBrowser() { mStartSchool=(Button)findViewById(R.id.main_start_school); mStartSchool.setOnClickListener(this); } privatevoidinitViews(){ mStartScan=(Button)findViewById(R.id.main_start_scan);mStartScan.setOnClickListener(this);}privatevoidinitMap(){ mStartMap=(Button)findViewById(R.id.main_start_schoolmap); mStartMap.setOnClickListener(this);} /***通过Intent启动第三方应用"ZXing"进行图书条形码扫描*/privatevoidstartScanner(){ IntentIntegratorintegrator=newIntentIntegrator(MainActivity.this); integrator.initiateScan();}/***通过Intent启动浏览器*/privatevoidstartSchool(){ Intentintent=newIntent("ent.action.VIEW",Uri.parse("/")); intent.setClassName("com.android.browser","com.android.browser.BrowserActivity"); startActivity(intent); }/***通过Intent启动学校地图*/privatevoidstartMap(){ Intentintent=newIntent(); intent.setClass(MainActivity.this,MyMapActivity.class); startActivity(intent);}/***迁移图书籍信息显示界面,并将图书信息传与*/privatevoidstartBookInfoDetailActivity(BookInfobookInfo){ if(bookInfo==null){ return; } Intentintent=newIntent(this,BookInfoDetailActivity.class);intent.putExtra(BookInfo.class.getName(),bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年中职高分子材料(高分子材料基础)试题及答案
- 医院质量管理工作培训
- 污水处理基本知识培训
- 医疗器械培训售后工作总结
- 制药车间安全生产
- 双帮工作制度
- 合议室工作制度
- 团少队工作制度
- 地方志工作制度
- 坐班工作制度
- DB31/T 5000-2012住宅装饰装修服务规范
- 钢结构预拼装方案及标准
- 马工程西方经济学(精要本第三版)教案
- 【初中 语文】第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- GenAI教育在不同场景下的应用案例分析与演进路径
- GB/T 44815-2024激光器和激光相关设备激光束偏振特性测量方法
- 某爱琴海购物中心开业预热推广方案
- 口腔颌面部肿瘤-血管瘤与脉管畸形的诊疗
- 康复质控中心建设思路和工作计划
- GB/T 44457-2024加氢站用储氢压力容器
- 和父亲断绝联系协议书范本
评论
0/150
提交评论