基于android的指南针的设计与实现_第1页
基于android的指南针的设计与实现_第2页
基于android的指南针的设计与实现_第3页
基于android的指南针的设计与实现_第4页
基于android的指南针的设计与实现_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文设计题目基于ANDROID指南针的设计与实现学院软件学院2015年5月27日毕业设计(论文)任务书第1页毕业设计(论文)题目基于ANDROID的指南针的设计与实现毕业设计(论文)要求及原始数据(资料)1综述国内外ANDROID技术研究现状;2深入了解基于ANDROID的指南针的相关技术;3熟练掌握ANDROID技术的应用与分析,训练编写基于ANDROID的指南针程序的能力;4设计并实现基于ANDROID的指南针的各功能模块;5深入分析基于ANDROID的指南针的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。第2页毕业设计(论文)主要内容1综述ANDROID技术在指南针中的应用;2了解基于ANDROID的指南针的相关技术;3熟悉基于ANDROID的指南针的开发环境;4设计基于ANDROID的指南针的各功能模块;5深入分析基于ANDROID的指南针的关键技术与编写语言的设计流程;6熟练掌握基于ANDROID的指南针的各功能模块的编写;7设计与实现针对指南针某一功能模块的程序。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。第3页主要参考文献(资料)1ANDROIDAPPLICATIONDEVELOPMENT,1STEDITIONRICKROGERS,JOHNLOMBARDOOREILLYMEDIA,INCMAY26,20092GOOGLEANDROID开发入门与实战靳岩,姚尚朗人民邮电出版社200963IPHONE开发基础教程DAVEMARK,JEFFLAMARCHE人民邮电出版社200954ANDROID游戏开发实战宝典吴亚峰,苏亚光人民邮电出版社201075JOHNRECOMPONENTFRAMEWORKANDPATTERNSACMSIGSOFYSYMPOSIUMONSOFTAREREUSABILITY,19976杨芙清软件复用及其相关技术计算机世界3版,1999,37JOHNSONRE,FOOTERBDESIGNREUSABLECLASSJOURNALOFORIENTEDOBJECTPROGRAMMING19888何昭,李传湘,崔巍荃于面向对象框架的软件开发方法计算机工程,2002,2749王成翅,姚琳基于可重用框架的软件开发模式及其应用计算机应用研究10JAVA2实用教程(第二版耿祥义著清华大学出版社20031211ROSEMARYSTOCKDALEMANAGINGCUSTOMERRELATIONSHIPSINTHESELFSERVICEENIRONMENTOFETOURISMJJOURNALOFVACATIONMARKETINGJUL20071320521912LPEARCEYOUNGBUDGETTRAVELERSBACKPACKERSINAUSTRALIAJANNALSOFTOURISMRESEARCH1995VO122,NO481984313张海藩软件工程导论第4版J北京清华大学出版社,2006343814韩超ANDROID经典应用程序开发J人力资源出版社,201151815林城ANDROID23应用开发实战J机械工业出版社,201117321专业班级软件1104班学生公鹏耀要求设计(论文)工作起止日期2015年3月23日2015年7月3日指导教师签字日期2015年3月23日教研室主任审查签字日期系主任批准签字日期基于ANDROID的指南针的设计与实现摘要手机的迅速发展和手机上的指南针利用的日益增长,指南针利用功效开辟成为移动开发的一个热门话题。基于智能手机操作系统的硬件和软件的开放性和扩展性强等特色,开发基于ANDROID的指南针各种潜在的应用显得越来越必要。现在社会无线网络发展迅猛,手机发展快速,已经由90年代的模拟信号发展到现在的智能时代,4G时代已到来。在此基础上,嵌入式的移动终端操作系统相继出现,如苹果公司的IOS,微软的WP7/8,GOOGLE的ANDROID,黑莓的BLACKBERRY。ANDROID系统在嵌入式移动终端系统比较常见。ANDROID平台是开源的手机操作系统,由GOOGLE推出,基于LINUX26内核。ANDROID已经成为移动领域的研究热点。然而随着4G网络的高速发展,智能手机的普及越来越广泛,在社交,出行,旅游等生活等方方面面需求也日益增多。本文首先论述了指南针技术及其应用的发展趋势,还介绍了目前市面上的几个手机操作系统,对此次开发所使用的安卓手机系统进行了简单的分析,介绍了安卓手机平台的特色,平台的功能特点和大致体系结构,并对开发所需的工作作了较为仔细的介绍,同时介绍了本系统所需要的技术理论知识。然后对基于ANDROID平台指南针的设计与实现进行了详细的需求分析与设计,包括系统需求分析、功能分析、用户界面需求分析。并且对系统进行了模块设计。模块设计时,首先对系统整体进行结构分析,分清层次,然后分别对指南针软件的每个模块都进行详细的设计,包括类的设计及用户界面的设计。之后,结合安卓应用中GPS定位的理论和算法,设计和实现ANDROID指南针程序。该系统的主要功能包括本机定位,并通过指南针指针指向能够识别方向。在本文中,把GPS技术与新兴的智能移动终端平台整合,实现手机指南针功能。可以让人们在想要了解自己的位置和方向的时候能够通过本程序确定自己的方位和以及前进的方向。最后总结本文所做的工作进行,提出了对系统的不足和今后的改善的愿望。关键词ANDROID;JAVA;指南针;GPS;定位ADESIGNANDIMPLEMENTATIONOFANDROIDBASEDCOMPASSABSTRACTTHERAPIDDEVELOPMENTOFMOBILEPHONESANDTHEGROWINGPHONEUSECOMPASS,COMPASSUSEEFFECTOPENMOBILEDEVELOPMENTBECOMESAHOTTOPICBASEDSMARTPHONEOPERATINGSYSTEM,HARDWAREANDSOFTWAREOPENNESSANDSCALABILITYANDOTHERCHARACTERISTICS,THEDEVELOPMENTOFAVARIETYOFPOTENTIALAPPLICATIONSBASEDONANDROIDCOMPASSBECOMESMOREANDMORENECESSARYNOWSOCIALWIRELESSNETWORKISDEVELOPINGRAPIDLY,THERAPIDDEVELOPMENTOFMOBILEPHONES,HASBEENDEVELOPEDBYTHEANALOGSIGNALSTHE1990STOTHEPRESENTERAOFINTELLIGENT,4GERAHASCOMEONTHISBASIS,THEEMBEDDEDMOBILETERMINALOPERATINGSYSTEMHAVEEMERGED,SUCHASAPPLESIOS,MICROSOFTSWP7/8,GOOGLESANDROID,BLACKBERRYBLACKBERRYANDROIDSYSTEMINTHEEMBEDDEDMOBILETERMINALSYSTEMISRELATIVELYCOMMONANDROIDPLATFORMISANOPENSOURCEMOBILEOPERATINGSYSTEMLAUNCHEDBYGOOGLE,BASEDLINUX26KERNELANDROIDHASBECOMEAHOTTOPICINTHEMOBILESPACEHOWEVER,WITHTHERAPIDDEVELOPMENTOF4GNETWORKS,MOREANDMOREWIDESPREADPOPULARITYOFSMARTPHONES,SOCIAL,TRAVEL,TOURISMANDOTHERASPECTSOFLIFENEEDSAREINCREASINGTHISPAPERDISCUSSESTHEDEVELOPMENTTRENDOFTHECOMPASSTECHNOLOGYANDITSAPPLICATIONS,BUTALSODESCRIBESTHECURRENTNUMBEROFMOBILEPHONEOPERATINGSYSTEMMARKET,ANDROIDPHONESYSTEMUSEDFORTHEDEVELOPMENTOFASIMPLEANALYSIS,INTRODUCESTHECHARACTERISTICSOFANDROIDMOBILEPLATFORM,FEATURESANDROUGHLYARCHITECTUREPLATFORM,ANDMADEFORTHEWORKNEEDEDTODEVELOPAMOREDETAILEDDESCRIPTION,TECHNICALTHEORYALSOINTRODUCEDTHISSYSTEMNEEDSANDTHENDESIGNANDIMPLEMENTBASEDONTHEANDROIDPLATFORM,COMPASSONADETAILEDNEEDSANALYSISANDDESIGN,INCLUDINGSYSTEMREQUIREMENTSANALYSIS,FUNCTIONALANALYSIS,USERINTERFACEREQUIREMENTSANALYSISANDTHEMODULARDESIGNOFTHESYSTEMMODULARDESIGN,THEFIRSTSTRUCTURALANALYSISOFTHESYSTEMASAWHOLE,TODISTINGUISHBETWEENLEVELSANDCOMPASSSOFTWARESEPARATELYFOREACHMODULEAREDETAILEDDESIGN,INCLUDINGCLASSDESIGNANDUSERINTERFACEDESIGNAFTERTHAT,THECOMBINATIONOFTHEORYANDALGORITHMSANDROIDAPPINGPSPOSITIONING,DESIGNANDIMPLEMENTATIONOFANDROIDCOMPASSPROGRAMTHEMAINFEATURESOFTHESYSTEMINCLUDETHENATIVELOCATION,ANDCANBEIDENTIFIEDBYAPOINTERCOMPASSDIRECTIONINTHISPAPER,THEGPSTECHNOLOGYANDTHEEMERGINGSMARTMOBILETERMINALPLATFORMINTEGRATION,TOACHIEVETHEPHONECOMPASSYOUCANLETPEOPLEINWHENYOUWANTTOUNDERSTANDTHEIRPOSITIONANDDIRECTIONCANORIENTYOURSELFANDASWELLASTHEWAYFORWARDTHROUGHTHISPROCESSFINALLY,THISPAPERSUMMARIZESTHEWORKCARRIEDOUTANDPRESENTEDTOTHELACKOFIMPROVEMENTINTHESYSTEMSFUTUREASPIRATIONS目录摘要5ABSTRACT61绪论111ANDROID智能系统的发展现状112指南针技术背景介绍213ANDROID平台与其他平台的比较214本文的主要工作315论文的组织结构32ANDROID平台相关技术介绍521ANDROID的新特征522ANDROID架构特征6221ANDROID系统架构6222ANDROID组件设计模型723ANDROID应用程序的生命周期824ANDROID运行环境分析1125MVC框架技术113系统的需求分析1331系统的需求分析13311功能需求分析13312GPS定位模块需求分析13313指南针模块需求分析1432基于ANDROID平台的指南针的功能模块设计144基于ANDROID指南针系统实现1641开发前系统环境的配置及工具的安装1642ANDROID应用程序构成1743构建ANDROID应用程序用户界面1844指南针主程序实现1945指南针界面的LAYOUT布局文件20451几种LAYOUT布局方式20452系统界面和指南针界面的实现2146指南针各个模块的实现26461定位模块的实现26462指南针指针的实现27463指南针整体模块的搭建与实现2947系统的测试4148系统的安装4349本章小结43结束语44参考文献45致谢46外文原文471绪论随着我国信息化产业与3G网络的高速发展,智能手机越来越普及,,手机的传输速度也变得越来越快,GOOGLE为开发者提供了各种的API,方便开发者开发应用满足人们的日常需求,现在的智能手机已不仅仅局限于打电话,多种多样手机应用已经走进了人们的生活。11ANDROID智能系统的发展现状手机的广泛生产和使用,进一步提升了手机应用的价值,开发新的功能,已成为手机发展的一个热门话题,开放式手机的出现使智能手机有了更飞速的发展,真正意义上的开放,不只是开发工具,而是底层的源代码的完全开放,GOOGLE于2007年11月5日宣布推出一款全新的智能手机操作系统ANDROID。它是第一个真正免费开放和完整的移动软件平台。ANDORID平台是基于LINUX内核的,他的源码完全开放并且具有很好的可移植性和非常完善的网络支持,并能根据需要自由裁剪和定制,灵活度高。基于ANDROID的应用程序发拥有很大的自由度,其程序也具有很好的扩展性。与WINDOWSMOBILE、SYBIAN等厂商不同,ANDROID操作系统免费向开发人员提供,这样可节省近三成成本。ANDROID平台具有的五大优势总结如下非常棒的开放性,许可任何厂商的加盟,这个优点可以让它拥有更多的开发者,跟着用户的增加和应用的逐渐丰富,ANDROID平台也将很快走向成熟。没有了运营商的束缚,让手机加倍的贴近互联网。可移植性和软件兼容性更好,拓宽了软硬件的选择规模。给第三方开辟商供给了一个非常宽泛、自由的开辟情况,有利于应用的发展。和GOOGLE应用无缝的结合,充分发挥了网络资源的作用。作为一款新型的移动平台,ANDROID还有很大的完善控件,现在它在手机运营商、手机厂商、发者和消费者的地方得到了大力支持。2008年9月22日,美国运营商TMOBILEUSA在纽约正式发布第一款GOOGLE手机一TMOBILEOL。该款手机为宏达制造,是世界上第一部使用ANDROID操作系统的手机,它支持WCDMAHSPA网络,理论下载速率为72MBPS,并支持WIFI。可以看出ANDROID平台具有非常大的市场潜力,应用开发前景十分广阔。12指南针技术背景介绍通信技术的不断变更,使GPS系统将成为手机的标准配置,手机不只具有通信功能,还可以当作一个GPS定位系统。从GPS技术诞生之日起,改如何促进其大规模商业化使用就一直是其产业链中各个厂商努力的焦点而随着智能手机的开拓应用,众厂商的焦点就开始跟着转移。智能手机的出现对于地图导航软件厂商来说,是一个非常大的市场,对手机商家来说,需要不断开发新需求、找寻更大潜力的细分市场也是十分重要的。如今的手机市场增值不少,可供继续挖掘的空间己经不多,彩信、彩铃等业务都己经十分广泛的应用,而手机导航如同雨后春舆一般快速发展起来。GPS领域大厂SIRF已经收到了GOOGLEANDROID手机平台的SDK软件开发包,会立即开始ANDROID手机GPS功能模块的开发。2007年,中国智能手机市场获得长足发展。作为一个刚刚兴起的市场,智能手机正以惊人的速度成长。2006年,中国智能手机销售量为105万台,而2007年的前9个月中国市场总共销售了294万台。随着用户需求的不断提升,技术的不断演进,手机作为一个方便快捷的移动载体,正在不断融入到生活的方方面面。GPS导航功能是继拍照、音乐以后有望再度激发新一轮手机更新换代高潮的立异功效,凭仗功效实用性强、切近用户需求等光鲜特点,GPS手机正在成为市场新宠。一方面,GPS手机产业成熟度正快速提升。另一方面,带GPS功效的手机终端种类逐步丰硕,终端瓶颈题目将获得减缓。手机成长的将来是多样化的,低端通话功效的手机遇连续保存,同时具备更多功效的手机遇很快成长。手机平台上的GPS应用将不断得到开发。但就当前看来,手机GPS功能主要还是应用在个人的定位、导航方面,其它GPS应用的发展仍是跟不上手机发展的总体脚步,随着生产成本的下降、硬件功能的增强,手机GPS将会有更为辽阔的应用领域。13ANDROID平台与其他平台的比较提到智能手机的平台,不得不提到雄霸手机市场十年有余的SYMBIAN平台,2000年以来SYMBIAN系统一直占据智能系统市场的绝对份额,是智能领域的先驱者。该系统对于全球绝大多数学习者体验都是系统简单,容易操纵。好处有第三方软件多,操作与非智能手机相同,善于被绝大多数学习者学习。对于内存的要求低,很小的内存可以让手机运行的非常流畅,功耗低。缺点是SYMBIAN系统的各个版本之间的应用不兼容只能在诺基亚上使用证书签名较为繁琐等。WINDOWSPHONE7(微软),优点是硬件要求低,虚拟键盘设计简洁方便,流畅的全页面浏览,与绝大多数用户使用的WINDOWS功能相似,上手快。缺点对语音导航支持不够,不支持USB大容量存储,重力感应不能关闭,不能像ANDROID系统手机一样越狱,刷机等。对于BLACKBERRY(加拿大的黑莓),优点是通话质量好,信号强外观漂亮,有良好的学习者体验占用内存小,不需要强大的硬件支持。缺点是网络连接不稳定,软件应用相对较少,电脑向手机传输方式较为复杂。对于苹果公司的IPHONE,优点是触摸屏操作相当流畅,安全性较高,网络运行流畅。缺点是系统封闭,源代码不公开,蓝牙只支持苹果对苹果,不支持其他机型等。对于GOOGLEANDROID,让众人接受的优点是全屏触控、操作简单易上手、软件免费、刷机方便、上网功能流畅,已经完全融入WEB应用。ANDROID操作系统是开源的,具有开放性,应用程序平等,应用程序间无界限,能够快速方便的进行应用程序开发。ANDROID在中国也非常流行,中国的各大运营商都加入和ANDROID的开放联盟当中,并且都在研发出各式各样的ANDROID手机,因此ANDROID在中国的前景还是相当好的。14本文的主要工作本文课题题目是基于ANDROID平台的指南针的设计与实现。主要研究分析了最近发展迅速的智能手机系统ANDROID系统,比较了当今几个主流的智能手机系统,阐述了ANDROID的一些优越性。并对ANDROID平台进行了概述,分析了ANDROID的一些主要理论技术。还分析了当今的GPS技术的现状和ANDROIDGPS的一些理论技术。设计了基于ANDROID的GPS定位和指南针程序。本文的主要工作包括本文主要在ECLIPSE的开发环境下进行开发,通过ANDROIDSDK与JDK的相关API进行代码的编写与实现。本系统包括了通过手机能够看到本机所在地的经玮度、地址街道等。课题目标是在ANDROID手机上能够观察到自己的方位信息和位置信息。通过手机能够辨别方向。并且该系统在ANDROID模拟器上与真机上都可以运行,并且可以达到预期的效果。15论文的组织结构本文共分五章,内容安排如下第一章引言,介绍了ANDROID智能手机系统的发展现状和前景,阐述了ANDROID平台的优越性。并介绍了当今的指南针GPS技术的发展和应用。此外还介绍了本课题的课题任务和课题的意义。第二章对ANDROID平台进行了简单的概述。全面分析了进行本课题研究所需要的ANDROID和GPS以及指南针相关的理论知识基础。第三章对基于ANDROID的指南针软件的开发进行了需求分析。分析了用户对GPS定位和指南针程序的应用需求。还对整个软件进行了划分成模块的形式,对各个模块进行分析设计,并将其实现。第四章对开发工作进行了开发前的准备工作,保证一切工具都能比较完善,之后进行GPS测试仪器程序和指南针程序的编写并实现。并进行了最后的测试工作。第五章结束语,对本文工作进行全面总结,给出本文所取得的成果,指出存在的不足和改进方向。2ANDROID平台相关技术介绍本章主要介绍ANDROID手机平台的特点、应用程序的开发环境、应用程序的构成以及ANDROID的类库和开发本课题所需的相关理论知识。21ANDROID的新特征开放性ANDROID是被众多开发者公认的开放平台,它的开放性主要体现在上层的应用程序或者学习者界面的开放性,底层的操作系统的开放性,源代码的开放性,使得其能够吸引更多的开发者来进行ANDROID开发而不存在任何障碍。快速方便的应用程序开发ANDROID为开发人员提供了大量的使用库和工具,使得开发人员可以快速地创建自己的应用程序。例如,在其他平台的手机上要开发基于谷歌地图或百度地图的应用是十分困难的,但是在ANDROID平台把谷歌或百度地图集成进来,开发人员只需要从官网下载谷歌或百度地图的SDK,并且通过简单的几行代码就可以快速开发出基于地图的不同应用。ANDROID系统是工作于智能手机之上的操作系统处处体现了与手机相关的特性。由于手机硬件配置的关系ANDROID系统与PC机上的操作系统有着很大的差异。只有充分了解ANDROID系统特性才能开发出适合手机运用的软件。以下为ANDROIDSDK22的主要特性1)可重用和可替换组件的程序应用框架(2)针对移动设备优化过的DALVIK虚拟机(3)集成了基于开源WEBKIT引擎的网页浏览器(4)经过优化过的自定义2D图形库和基于OPENGLES10库可选硬件加(5)SQLITE结构化的数据存储数据库(6)支持常规的音频视频多媒体格式,如MPEG4、H64、MP3、AAC、AMR、JPG、PNG、GIFGSM电话硬件决定(7)蓝牙、GPRSEDGE、3G和WIFI无线网络(8)相机、GPS全球定位、导航和感应加速器(9)丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工具,以及ECLIPSE集成开发环境插件22ANDROID架构特征221ANDROID系统架构ANDROID是由5部分组成,分别是LINUXKERNEL、ANDROIDRUNTIME、LIBRARIES、APPLICATIONFRAMEWORK、APPLICATIONS。第二部分将详细介绍这5个部分。下面自底向上分析各层。1LINUXKERNELLINUX内核层LINUX内核层是在整个ANDROID系统架构的最底层,它主要起的核心服务的作用,主要负责对ANDROID系统的进程、内存、驱动管理,安全模块也在这一层中得到了体现。内核层也为ANDROID系统与硬件之间的交互搭建了桥梁。2ANDROID运行时库LINUX内核层的上层即为ANDROID运行时库层,由图中可以看出在这一层中主要包含两大主要部分,分别是CORELIBRARIES核心库层与DALVIKVIRTUALMACHINEDALVIK虚拟机。对于核心库来说,主要提供了JAVA语言API中的大多数功能,同时包含了ANDROID常用的一些核心API,如ANDROIDOS、ANDROIDMEDIA等。对于DALVIK虚拟机这一模块,ANDROID系统不同于J2ME,ANDROID应用程序都会有一个独立的进程,即每个ANDROID程序都有一个独立的DALVIK虚拟机实例,DALVIK运行的主要机制是依靠转换工具DX将JAVA字节码转换为DEX格式。3LIBRARIES应用程序框架是贴近于应用程序的软件服务,而更底层的则是ANDROIDR的函数库,这一部分是应用程序框架的支撑。WEBKIT最新的WEB浏览器引擎,支持ANDROID浏览器与一个可嵌入的WEB服务器。SGL底层的2D图形渲染引擎,为开发者提供开发2D提供服务。SSL主要负责安全通信,在ANDROID上通信过程中实现握手。OPENGLES相对于SGL提供2D图形渲染,此层的主要功能是根据OENGLES10API的标准实现3D绘图函数库。LIBCANDROID并没有采用GLIBC作为C库,而是采用了GOOGLE自己开发的BIONICLIB。它从BSD继承了标准的C系统函数库,是专门为基于嵌入式LINUX设备定制的。4APPLICATIONFRAMEWORK(应用程序框架层)ANDROID应用程序框架层处于系统运行库层的上层,这一层是我们从事ANDROID开发基础,比较核心的一些应用程序是通过这一层来实现的,应用程序框架包含了视图系统、活动管理器、通知管理器、内容提供器、窗口管理器、位置管理器、资源管理器、电话管理器、包管理器与硬件服务等。5APPLICATIONS(应用程序层)这一层在整个系统架构中处理最上层,这一层的开发需要应用程序框架层的API提供支持,这一层主要是用JAVA语言编写的,开发人员可以在这一层进行各式各样的应用程序开发,并发布应用。222ANDROID组件设计模型ANDROID的组件设计模型,是ANDROID的程序开发以及理解ANDROID的安全模型的基础。ANDROID的应用程序,在官方文档定义中,是指APK为后缀文件所包含的代码逻辑被视为一个应用。ANDROID应用由若干组件构成,构成ANDROID应用的四大组件是ACTIVITY,SERVICES,CONTENTPROVIDERS,BROADCASTRECEIVERS。一个问题是,组件和普通的ANDROIDJAVA对象有什么区别首先,组件必须在ANDROID应用的配置文件中定义,由系统管理的调度,具有独特的生命状态周期,其次,组件是ANDROID应用安全管理的最小粒度的单元。ANDROID组件的进程运行环境(1)ANDROID是一种多学习者的LINUX操作系统,每个应用使用不同的学习者ID进行运行。ANDROID对应用的数据文件进行LINUX操作层次的权限保护,赋予并仅仅赋予程序学习者的ID以访问权限,使用其他学习者ID运行的程序无法越权访问程序所保护的数据。(2)每个进程有独立的JAVA虚拟机器,不同的应用隔离在独立的JAVA虚拟机器中。(3)缺省的情形下每个应用运行在独立的进程中,当任意一个组件需要运行,ANDROID负责启动应用进程。当进程中所有的应用组件都停止运行,则ANDROID负责停止应用进程,释放资源。(4)如果两个应用需要紧密耦合的共享应用的数据,需要将两个应用安排在同一个应用进程运行,此时,要求两个应用具有相同的签名。23ANDROID应用程序的生命周期ACTIVITY,SERVICE,CONTENTPROVIDER,BROADCASTRECEIVER是ANDROID应用程序常用的四大组件,而开发者在平时的软件开发中最常用到的生命周期是ACTIVITY与SERVICE,下面分别介绍下ACTIVITY与SERVICE的生命周期1ANDROID中ACTIVITY的生命周期ANDROID是围绕移动应用的唯一需求进行设计。在特定情况下,ANDROID可以识别出移动设备上受限制的资源(如内存和电量),以及提供相应的机制保护这些资源。这些机制在ANDROID的ACTIVITY生命周期体现得很明显,定义了ACTIVITY从创建到销毁的过程状态和事件。你对那些事件的ACTIVITY监视器和作用是通过初始化每个事件对应的ACTIVITY类中重写后的方法ONCREATE方法是在ACTIVITY第一次被创建的时候被调用。在这个方法中,你可以正常创建你的视图和打开ACTIVITY需要用到的所有数据文件,以及初始化你的ACTIVITY。当调用ONCREATE方法时,ANDROID框架在ACTIVITY运行之前会通过创建一个BUNDLE对象来保存ACTIVITY的状态。ONSTART方法在ACTIVITY显示在屏幕之前被调用。一次ONSTART调用完成时,如果你的ACTIVITY变成前端ACTIVITY显示在屏幕上,控制权将交给ONRESUME方法,ONRESUME将等待被调用。如果你的ACTIVITY由于某些原因不能变成前端ACTIVITY,控制权将交给ONSTOP方法,ONSTOP将等待被调用。ONRESUME方法是在调用ONSTART方法之后使得ACTIVITY变成前端ACTIVITY时可以调用。在这个状态下,ACTIVITY是正在运行地,并且与学习者进行交互。ACTIVITY接收键盘和触摸的输入,以及在屏幕上显示ACTIVITY的学习者界面。ONRESUME也可以在当前ACTIVITY失去前端焦点,且前端被另外一个ACTIVITY占用时调用,占据前端的ACTIVITY最终会在你的ACTIVITY调用ONRESUME后失去前端焦点,同时你的ACTIVITY会重新回到前端。这就是在你的ACTIVITY开始(或者恢复)的位置做更新学习者界面的工作(例如接受本地更新或者是运行一个动画。ONPAUSE在ANDROID打算恢复另一个ACTRIVITY到前端的时候调用。在调用ONPAUSE后,你的ACTIVITY不再有权使用屏幕,因此,你将停止那些不必要消耗电量和占用CPU使用权的事务。如果你的ACTIVITY是在运行一个动画,那样没有人将可以看到它,所以你也不妨在你的ACTIVITY未重新获得前端前终止动画的播放。你的ACTIVITY需要使用一个好的方法去存储一些状态,以便使你的ACTIVITY可以重新获得前端当然,这也并一定能保证你的ACTIVITY可以恢复。如果移动设备的存储空间全部被你的ACTIVITY占用,已经没有足够的存储空间给别的程序使用,这样你的ACTIVITY将释放所占有存储空间,给系统进程使用。一旦你退出这个方法,ANDROID会在任何时候将你的ACTIVITY杀死,你最终将失去对它的控制。2ANDROID中SERVICE的生命周期SERVICE的生命周期与ACTIVITY的生命周期是类似的,但是在一些重要的地方还是有些不同的ONCREATE和ONSTART的不同当客户端调用CONTEXTSTARTSERVICE(INTENT)方法时,SERVICE才启动。如果一个SERVICE当前没有运行,ANDROID会启动它,并且紧跟着ONSTART方法后调用ONCREATE方法。如果一个SERVICE当前正在运行,它的ONSTART方法会通过一个新的INTENT对象再次被调用。因此,对于在一个单独运行着的SERVICE来说,不断重复的调用ONSTART方法是很有可能,也是很正常的。对于一个ACTIVITY来说,ONDESTROY方法是在SERVICE将要结束时调用。ANDROID将在没有任何客户端需要启动或绑定一个SERVICE时结束它。对于大多的ACTIVITY来说,ANDROID可能也会在内存不足的时候结束一个SERVICE。如果这样的事情发生,ANDROID将会在有足够内存空间时尝试重启这个SERVICE,因此,如果你的SERVICE需要存储许多数据来为以后的重新启动使用,这样最好在调用ONSTART方法开始时进行。通常由以下四个组件来构建一个完整的ANDROID应用程序(1)活动(2)意图接收器(3)服务(4)内容提供者然而,并不是所有的ANDROID应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建ANDROID应用程序时,需要将它们注册在ANDROIDMANIFESTXML文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个ANDROID应用程序所必需的。活动是以上四个组件中最常用的一个。每个活动都是ACTIVITY的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,ANDROID会为每个应用程序保留从主界面开始的历史堆栈。ANDROID通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动作对应的数据则以URI的形式表示。例如显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。除此之外,还有一个被称作意图过滤器INTENTFIHER的相关类。当发生一个有效的目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在ANDROIDMANIFESTXML文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如一个活动使用STARTACTIVITYMYINTENT来调用其他活动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配MYINTENT意图的活动。随后,这个新的活动接收到意图MYINTENT的通知并开始运行。当STARTACTIVITY方法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点(1)活动可以通过一个以意图形式产生的请求来重用其他组件的功能。(2)活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。24ANDROID运行环境分析ANDROID环境下的应用程序与你平时常用的桌面环境应用和服务器环境应用有点不同。这些不同主要在于唯一的手机环境和ANDROID环境下的一些关键概念。当你要为ANDROID平台的手持设备写应用程序时,你将用到这些概念指导应用程序的设计和执行ANDROID包含了一些基础独立于特殊应用程序接口的机制(INTENTS),在ANDROID应用程序中,你不是仅仅只能用特殊的应用程序进行发送邮件,而是,你可以应用任何有效的应用程序进行邮件的发送。操作系统只关注什么应用程序可以发送邮件,并在你需要使用时启动它,并连接到你请求位置将邮件发送出去。学习者可以应用不同的浏览器,不同的MP3播放器以及不同的邮件客户端等等,ANDROID将为你启动相应的程序。25MVC框架技术MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSPSERVLETJAVABEAN的模式1、视图视图是用户看到并与之交互的界面。对老式的WEB应用程序来说,视图就是由HTML元素组成的界面,在新式的WEB应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括ADOBEFLASH和像XHTML,XML/XSL,WML等一些标识语言和WEBSERVICESMVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。2、模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBS和COLDFUSIONCOMPONENTS这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。3、控制器控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击WEB页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。3系统的需求分析31系统的需求分析需求分析对于开发一个系统是相当重要的,需求分析主要是对软件开发进行前期的准备工作并对软件开发过程中可能出现的问题进行分析与解决,好的需求分析可以使系统在后续的开发中变的简单,明朗,最重要的一点是能够满足良好的学习者体验。311功能需求分析此系统设计的任务本文的目标是通过ANDROID的一些编程知识和ANDROID的API,通过设计一个基于ANDROID平台的指南针程序。这个工程能够测量出当前位置和指向方位的各种信息。该系统从功能上分两个大的模块,一个是GPS定位和指南针程序模块。总体的功能模块图如图31所示。图31312GPS定位模块需求分析在GPS定位模块,用户可以进行两方面的操作,查看位置信息和查看方位。用例图如图32所示。图32313指南针模块需求分析用户打GPS指南针程序图标,将ANDROID智能手机放水平,等待少许时间就能够在程序中看到比较详细的方向指示,如图33所示。图3332基于ANDROID平台的指南针的功能模块设计重点介绍基于ANDROID平台指南针软件的设计,首先对系统进行的层次结构分析,对软件中各个功能进行了详细的设计,以及各个模块功能的设计。本系统采用的是层次化的结构设计,包括数据访问层,业务逻辑层,控制层以及用户视图层总体结构如图35所示。整个系统通过GPS程序实现定位功能,指南针程序能够实时指明本地的方向。如图34图344基于ANDROID指南针系统实现41开发前系统环境的配置及工具的安装在ANDROID平台上搭建环境主要有以下三个步骤。步骤一,需要将发设备配成JAVA环境,这就需要首先安装JDK以及JRE。本软件是在WIN7的平台上开发的。安装步骤如下,点开我的电脑,选择属性,然后依次选择【高级系统设置】【环境变量】,在【系统变量】中新建“JAVAJHOME”以及“CLASSPATH”,对已有的“PATH”增加以下内容,注意CLASSPATH变量内容的以及PATH变量的“”JAVA_HOMECPROGRAMFIIESJAVAJDKL60CLASSPATHJAVA_HOMELIBDTJARJAVA_HOMELIBTOOLSJARPATHJAVA_HOMEBIN设置好之后在命令提示符中运行指令JAVAC,查看环境是否配置成功。然后接下来配置ANDROID的SDK。将SDK下载好解压到C盘的根目录下面,然后在之前的PATH环境变量中增加内容“CANDROIISDKWINDOWSTOOLS”。步骤二,安装ECLIPSEECLIPSE作为JAVA语言强大的开发工具,将其下载下来,是免安装的,它自动查找JDK的安装路径并与其关联。步骤三,对安装好的ECLIPSE进行ANDROID环境的搭建。下载好ANDROID的ADT之后,运行ECLIPSE,并依次点击“HELP”“IIISTALLNEWSOFTWARE“O在弹出的界面中选择“ADD”,根据开发程序员个人意愿命名,然后在LOCATION中指向下载好的ADT的路径。然后点击完成按钮。系统会自动重启ECLIPSE0ECLIPSE重新启动之后,在弹出的界面点击左侧的按钮“ANDROID”,根据在右侧指向安装SDK的路径。在完成ECLIPSE环境搭建之后,还需要配置ANDROIDVIRTUALDEVICE。其实用来描述模拟器的属性,用来设置ANDROID模拟器的内存尺寸等属性。在ECLIPSE中选择“WINDOW”一“ANDROIDSDKANDAVDMANAGER“,弹出的界面即为AVD的管理界面,可以创建新的AVD,也可以对之前加载好的AVD进行进行属性的设置。以上工作完成之后就能进行代码的编写工作了。42ANDROID应用程序构成一般ANDROID应用程序是构建从以下四个部分活动,广播接收器,服务,内容提供商。需要指明的是,四个结构部分并不非得创建在每个ANDROID应用中,某些可能组成这些组件的组合。只要应用程序必须具有的组件,必须在ANDROIDMANIFESTXML中列出来,这是一个必备的用来定义应用程序组件和功能的XML配置文件。四个组成部分如下1活动ACTIVITY活动是最基本的应用ANDORID的应用组件,每一个ACTIVITY经常是个独立的显示在手机屏上,实现一个ACTIVITY先从APJYITY的基类中继承,之后通过视图显示主界面控制,再后进行每一个事件的发生响应。好多应用程序都是在多个屏幕上显示。例如一个短信应用程序也许在通信薄中显示一个屏,发送短信,另一个手机屏幕进行短信的编写,并能够查找选定收信的人,还有一个屏是用来查询之前的聊天记录和一些短信的删除等的操作。从之上可以看出每一个手机屏的切换都是从一个ACTIVITY切换到另一个ACTIVITY,完成下个活动。通常情况,操作现在的手机屏必需一个另一个屏幕的值。例如可以将用户返回到接从手机地址簿中的照片作为头像电话发送短信。当开启一个新的手机屏的时候,当前的手机屏会自动的切换到暂停状态进入到堆找中。手机应用者可以返回操作在后面开到前一个画面。我们可以选择性地删除一些屏幕也没有必要保留,因为每个程序从桌面打开ANDROKL将留在堆桟。ANDROID手机屏幕之间的切换是通过调用特有类INTENT来实现的。它是用来描述应用想要进行什么操作想干什么。其中有两个比较重要的数据结构部分分别是动作和对应动作的数据。经常使用的动作类有下面几个PICK、EDIT、VIEWMAIN活动的门户等。而相对应动作的数据是用URI的方式进行显示的。比方说如果要查阅某人的相关信息,就必须创建一个动作类型和对应的动作的URI,分别是动作类型为V旧W的INTENT和一个关于这人的URI。相关联的是INTENTFILTER类。在要求INTENT做一个事情同时,INTENTFILTER用来描述哪些INTENT能够被一个ACTIVITY或广播接收器操作。当进行一个发送短信的ACTIVITY的时候,必须先声明一个类,这个类就是INTENTFILTER类,这个INTENTFILTER必须会处理相关的V旧W动作和如何表示某人的URI。INTENTFILTER应该定义在ANDROIDMANIFESTXML中。手机屏幕的切换,如果是通过解析INTENT进行,是非常容易的事情。首先如果向前进行某种操作,ACTIVITY会开始调用STARTACTIVITYMYINTENT这个方法。之后,系统查找所有被安装的应用程序定义的INTENTFILTER文件,找到与MYLNTENT最相符的INTENT相应的ACTIVITY。当MYLNTENT到达新的ACTIVITY后,ACTIVITY运行。在STARTACTIVITY方法进行被调用的时候会自动解析MYLNTENT,这样会有两方面的好处一是ACTIVITY可以反复的用从别的组件中产生的INTENT的方式请求。二是另一个新的ACTIVITY被允许在任意的时刻替代一个与之有相同INTENTFILTER的ACTIVITY。3服务每一个服务有一个比较长的生命周期时间,并且不会显示用

温馨提示

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

评论

0/150

提交评论