基于Android的地图定位与搜索应用程序设计毕业设计(29页).doc

上传人:1595****071 文档编号:37155065 上传时间:2022-08-30 格式:DOC 页数:29 大小:456KB
返回 下载 相关 举报
基于Android的地图定位与搜索应用程序设计毕业设计(29页).doc_第1页
第1页 / 共29页
基于Android的地图定位与搜索应用程序设计毕业设计(29页).doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《基于Android的地图定位与搜索应用程序设计毕业设计(29页).doc》由会员分享,可在线阅读,更多相关《基于Android的地图定位与搜索应用程序设计毕业设计(29页).doc(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-基于Android的地图定位与搜索应用程序设计毕业设计-第 - 26 - 页 济南大学泉城学院毕业设计题 目 基于Android平台的地图 定位及搜索应用程序设计 学 院 工学院 专 业 网络工程 班 级 1101 学 生 曹峰 学 号 2011011151 指导教师 姬广永 二一五 年 四 月 二十五 日摘 要随着Android Zheran Fang,Weili Han,Yingjiu Li. Permission based Android security: Issues and countermeasuresJ. Computers & Security,2014,:.技术

2、的发展和智能移动设备的普及,基于Android 系统的手机地图应用也越来越广泛。本次设计主要目的在于为Android平台用户提供一个简洁易懂的集地图定位及搜索功能于一体的手机App,方便喜欢出行旅游或者外地出差的用户快速确定自己当前所在位置,以及准确搜索目的地位置。基于Android平台的地图定位及搜索现在应经成为最常见的移动互联应用,定位和搜索功能指的是通过获取特定的经纬度坐标在地图上显示该地理坐标的相关信息。最大的优点在于其具有丰富的硬件选择性和良好的数据开发性。经过一周观察其他关于手机地图的app,再经过多次总结修改最终确定出这次基于Android平台的地图定位及搜索应用程序设计设计内容

3、主要包括以下几个方面:系统需求分析、Android应用程序开发及运行环境、系统设计和处理流程、系统功能设计、Android系统应用程序体系结构、Android UI布局及人机界面、系统开发所需组件及数据存储等技术、手机GPS卫星定位模块、地图加载功能、目标位置搜索及详情展示等。关键词:Android;定位;搜索;应用程序ABSTRACTWith the development of Android technology and smart mobile devices, mobile phone map application based Android system is more and

4、more widely. The design of the main purpose is for the Android platform users to provide a simple set of maps and search functions in one of the mobile phone App, convenient like travel or business trip users to quickly determine their current location and destination location, accurate search.Locat

5、ion map of Android platform and search should now become the most common mobile Internet applications based on location, and the search function refers to the acquisition of specific latitude and longitude displays information about the geographic coordinate on the map. The biggest advantage lies in

6、 its rich hardware selectivity and good data development. After a week of observation about the other mobile phone map app, after several summary revision finally determined this map location of Android platform and application program design design search based on content mainly includes the follow

7、ing several aspects: The system needs analysis, Android application development and running environment, system and process design, system function design, the Android system application architecture, Android UI layout and man-machine interface, system development required components and data storag

8、e technologies such as mobile phone, GPS satellite positioning module, map loading function, the target location search and information display.Key words:Android; Location; Search; Application目 录摘 要- 1 -ABSTRACT- 2 -1.前 言- 5 -1.1.选题背景- 5 -1.2.课题的意义- 5 -1.3.Android的现状与前景- 6 -1.4.研究内容- 7 -2.技术支持与百度地图A

9、PI- 8 -2.1.手机地图服务- 8 -2.2.定位技术- 8 -2.3.系统相关类- 9 -2.4.百度地图API- 10 -3.Android应用程序开发流程- 13 -3.1.Android应用程序运行流程- 13 -3.2.Android开发环境配置- 14 -3.3.关键技术和原则- 14 -4.系统的分析与设计- 16 -4.1.需求分析- 16 -4.2.系统构架分析- 16 -4.3.确定UI布局- 17 -4.4.功能设计- 18 -4.5.数据库设计- 19 -5.系统主要功能的实现- 21 -5.1.主界面的实现- 21 -5.2.地图浏览功能的实现- 22 -5.3

10、.地图模式选择功能的实现- 24 -5.4.定位功能的实现- 25 -5.5.搜索功能的实现- 28 -5.6.天气预报模块的实现- 29 -5.7.系统的优化与发布- 30 -6.总结与展望- 31 -6.1.工作总结- 31 -6.2.问题与展望- 31 -参考文献- 33 -致 谢- 35 -1. 前 言1.1. 选题背景就目前国内外来说,Android操作系统在手机市场上占据着一个相当大的比重。据统计在2012年,全球Android手机的销量大约在4.8亿部左右,在智能手机市场的份额达到了68.8%的高度,到2013年,Android手机在全球的销量飙升到了7.812亿部,同时,在智能

11、手机市场的市场份额也达到了78.9%的新高度 佚名.三星移动互联网时代的下一个霸主J.中国经济周刊,2013,(15):68-69.。由于Android系统相较于其他系统拥有更好的开源性,因此开发者可以根据自己实际需求的不同对安卓的软件包进行对应的修改。也由于系统开源性较好相应的拓展性也比较好,这一方面方便了众多应用开发者将不同的应用移植到同一个开发平台极大的方便了移动应用的集合;另一方面,厂商可以根据自己的需要同过修改安卓的SDK软件包进行“定制化开发”。我认为Android之所以发展势头如此迅猛有以下三个原因:免费、开源性好、良好的运营策略。这三个原因为安卓在将来的发展中打下了坚实的基础。

12、免费吸引了很多厂商加入,这对提高市场份额起了很大的作用;代码的开源会为开发者节省宝贵的开发时间从而吸引了更多的开发者进入应用开发;丰富的应用也吸引了越来越多的用户选择。而且谷歌也在不断的进行系统研发,对版本的更新也从不间断,这有效的保障了Android手机用户的良好体验。随着智能手机逐渐走进普通人的生活,它将成为人们获取外界信息的主要设备 舒贤华.基于Android平台的手机Web地图服务设计D.大连海事大学,2009.DOI:10.7666/d.y1548258.。所以说,在Android平台开发地图服务应用程序的发展前情非常可观。现许多手机地图大多都做的比较复杂,许多普通人用着根本不方便,

13、本次程序设计将解决这个问题,以服务广大普通人为最终目的。Android平台为广大开发者提供的功能有许多,其中就包括灵活的地图展示功能和方便快捷的地图控制功能,方便开发者在Android平台进行地图服务应用程序的开发。另外,Android平台基本上是免费的,所以在降低软件成本方面有较好的优势,最能够终让每位用户自由获取需要的信息,这也将为手机地图服务的普及做出重要贡献。1.2. 课题的意义在现代,数字通信技术飞速发展,特别是3G通信技术逐渐成熟,这造成了智能手机的应用越来越广泛,几乎每十个国人有九人会拥有一部手机。工业和信息化部最新发布2015年3月份通信业经济运行情况报告显示,利用手机上网的用

14、户数再创历史新高,目前移动电话用户在我国的规模将近13亿,移动互联网用户规模近9亿,同比增长5.7%。3月份,4G用户在这时候依然保持高速增长态势,造成超过2300万的净增数量。通信技术的发展不仅推动了智能手机的高速发展,而且还因此造成了手机应用软件近年来的高速发展,与手机地图服务有关的软件更是层出不穷。近年来,人们高度关注LBS,LBS是一种基于位置的服务,它主要是通过特定的方式获取到用户的GPS位置信息,在特定平台的支持下,为用户提供相应服务的一种增值业务 白凤文,许华燕.国家地理格网在数字城市建设中的应用J.测绘通报, 2012,(4):92-94.,目前,LBS被称为最具实用性的移动互

15、联网应用。现在的主流的地图服务大都是以单机和网页等方式运行,这些方式大都比较笨重,灵活性不高,不仅不适合用户外出、旅游使用,而且在进一步发展和应用上受到极大的限制。通过无线移动通信网络,可以轻松打破地理位置的局限性,为人们的出行带来极大地方便。并且,目前大多数手机地图服务设计的内容都比较复杂,一些普通用户使用起来非常不方便。基于以上分析,开发出一款简洁实用的Android手机地图服务软件具有极好的实用意义。另一方面, Android手机操作系统是Google公司及其开放手机联盟(OHA)于2007年11月5日正式向外界展示的,是全球第一个专门为移动终端的开发而打造的平台,具有免费、完整、开放的

16、特点 柳婷.基于Android手机地图服务系统的设计与实现D.北京邮电大学,2013.,这是一个具有划时代意义的真正意义上的移动设备开发平台。正是因为其开源性的特点,使得Android从刚刚推出时就受到了很多开发者的高度关注。更是由于其免费与开源性的特点,Android操作系统不只是局限于手机端,在许多笔记本电脑或其他智能设备上也支持Android操作系统的安装使用。所以基于Android平台的应用程序的开发将会有不可限量的发展前景 王力生,叶希哲.一种基于Android的防火墙的研究与实现J.计算机安全,2009,(10):36-38.DOI:10.3969/j.issn.1671-0428

17、.2009.10.011.。所以,研究Android平台的体系架构,开发Android端应用程序具有很大的现实和理论意义。1.3. Android的现状与前景在国内,随着Android的住逐渐崛起,Android在中国的粉丝也越来越多,许许多多的系统开发者都选择投身Android的开发当中。据相关部门统计表明,在过去的几个月,Android手机在国内的持有量大幅上升,用户对Android的态度也发生了翻天覆地的变化。总而言之,Android在国内的发展前景不可限量,但是还存在一些小小的瑕疵,其中之一便是许多开发商只为自己利益以为的索取,而不以服务大众为目的,之开源不开放,这样的发展情况最终将不

18、利于Android在国内的健康发展。在国外,Android当前正处在蓬勃发展的阶段。根据美国市场调研机构的最新报告显示,仅仅是2012年的时候,基于Android系统的手机的销售量已经占据了全美总销售量的28%,而同样应有雄厚背景的IPhone只占21%,这充分显示出Android在国外的市场占优比要高于其他智能系统,可想而知,现如今随着Android的不断开发推广,这个比重将会变得更大,因此,进行Android系统开发的开发者将会越来越多,选择Android系统手机的人会越来越广泛,它在国外的霸主地位将不可动摇。Android英文原意是 “机器人”,自从Google公司开发开发出基于linu

19、x的开源手机操作系统后,现在,Android特指全球第一个真正具有开源、完整、免费特点的手机操作系统,目前已经发布的版本从Android 1.5到Android 5.1,应经拥有多达不下十个版本,现在最高的版本是5.1,但是目前市场占有率最高的还是Android2.3, 因为该版本依然是目前最稳定的版本。另外,Android 3.0是专用于平板电脑的 闫伟.基于Android平台的手机地图服务系统的设计D.浙江师范大学,2012.DOI:10.7666/d.y2193811.。Android系统具有向下兼容的特点,即低版本系统软件可以在高版本系统中运行。目前,Android平台在市场上依然拥有

20、很多优势,其中最突出的还是免费和开源,这绝对是无可争议的。它的免费指的是Google公司免费向全球提供Android操作系统,所有的移动电话供应商都可以免费使用Android操作系统,这将为他们省去大部分制造成本,使智能手机开发的门槛极大的降低,极大地推动了Android系统在全球智能手机市场的普及。所说的开源,就是指Android系统的源码是对外开放的,任何供应商都可以自己对其进行更改和再次开发,设计出适合自己的独特版本,不止如此,其开源的特点也为Android手机开发者提供了更广阔的发展空间。从以上信息不难看出,Android发展前景不可限量,作为手机开发人员一定要抓住这个机遇,因为根据艾

21、媒咨询(iiMedia Research)统计数据显示Android开发者的数量从2008年至2013年正在急速增加,这也是手机开发人员的一个机遇,通过许许多多的市场分析也许大家就会明白Android的步伐现在迈的还是很大,能否跟上它的脚步,就看抓不抓得住这个千载难逢的机遇了。1.4. 研究内容本文的研究内容主要包括:研究Android平台的开发流程、了解Android平台的内部结构框架、研究GPS定位方面的内容、研究在Android平台上进行应用程序的开发过程、结合百度地图API实现基于Android平台的地图定位与搜索服务的应用。根据我的设想,本次地图应用应该包括以下几个模块:地图模块,可

22、以进行主流地图的操作,如放大、缩小、拖动等;定位模块,可以通过GPS获取用户当前地理坐标,并在地图标记;搜索模块:搜索模块分为两种情况,一是定点搜索,用于搜索确定位置,二是范围搜索,用于搜索一定范围内的建筑物;收藏模块,顾名思义用于收藏用户拜访过的以及用户关注的地理位置信息;天气模块,天气模块是本次设计的扩展内容,实现目的是方便用户了解当地天气情况,选择合适的出行方式。2. 技术支持与百度地图API既然要做关于地图的APP,首先就要了解一下相关的技术支持。Android平台手机地图开发的相关技术主要包括手机地图服务、GPS的定位技术以及本次用到的百度地图API,下面将依次介绍着三种技术的相关情

23、况。2.1. 手机地图服务手机地图服务主要是运用GPS技术准确定位手机移动用户的地理位置,帮助用户了解周边位置情况,并通过客户端,方便用户在移动互联网与手机地图服务器之间搜索、查询路线位置的应用。手机地图服务不仅能够使用相关文字表述查询信息,并且能够通过地图信息直观表达给用户,友好的人机交互界面,提供了良好的用户体验 崔杰.基于协议网关的企业级分布式即时通信系统的研究与实现D.华南理工大学,2010.。查询接口与服务器连接接口主要通过手机地图客户端来提供。手机地图能够执行放大、缩小和移动等操作,不仅可以利用文字表述反馈给用户查询结果,还能够利用地图信息将查询结果在地图上直观的显示出来。客户端以

24、HTTP提交的方式向服务器端发送请求,服务器端对收到的请求做出相应的处理,将处理后得到的地图数据以栅格数据的方式返回给客户端 张艳芳.Android手机Web地图服务的应用设计D.南昌大学,2010.DOI:10.7666/d.y1657049.。它的大致过程如图2-1所示。客户端向服务器端发送的是HTTP请求;服务器端向客户端传输的是栅格数据。图 21 地图查询流程图2.2. 定位技术手机定位技术是一项能够获取并在地图上标识移动手机或终端用户位置信息的技术和服务,基于GPS的定位方式指的是利用手机上自带的GPS定位模块将自己的位置信号发送到后台业务来实现手机定位的。基站定位的原理是利用手机相

25、对基站的距离来确定手机位置的,基站定位方式不需要手机拥有GPS功能 IT网那些事儿.2013.好搜百科.联机 2013年.引用日期:2015年4月24日. ,基站的密度在很大程度上将直接影响测量精确度,造成的误差有时甚至会超过一公里。二者相比较,显然基于GPS的定位方式定位精度比较高。除了以上这两种定位方式,我们还可以利用Wifi在小范围内达到定位的效果。我们还可以根据提供服务的方式不同将定位系统大致分为两种:自有手机定位系统和公用定位服务 stefanie1007.2014.百度百科.联机 2014年.引用日期: 2015年4月24日. 。 自有手机定位:自有手机定位系统不仅灵活而且易于控制

26、,是目前手机定位系统的首选,自有手机定位系统一般与企业或政府内部网相连,而且为他们提供的基于位置的服务大都与自身业务相关。利用自有手机定位系统的业务主要有:货物和事件定位、人员考勤以及对其进行基于地理位置的分析和统计等。 公用定位服务:公用定位服务一直以来都是由移动运营商提供。现在市场上专门为某个企业或政府部门自己服务的私有定位系统大多用的公用定位服务。目前应用这种定位方式的业务或场所主要有:物流货物、公安执法、车辆或长途车定位以及紧急救援定位等。2.3. 系统相关类Android.Location是地理定位服务包,可以实时获取当前设备所处的地理位置信息,不仅如此,他还提供了基于网络和GPS的

27、定位服务 Enek,MeDaniel P.Understanding.Android Security.IEEE Computer Society,2009.。GPS_ROVIDER可以定位当前设备的地理位置,一般用在设备自身定位等功能上;NETWOR_PROVROER提供GPS和网络的定位服务。Android.Location定位的相关类如表2-1所示: 位置类Location定位管理类LocationManager位置提供者LocationProvider定位监听类LocationListener位置标准类Criteria表 21 定位相关类Location:提供地理位置信息,经纬度、高度

28、、测量速度等。 getLongitude()方法获取经度信息, getLatitude()方法获取纬度信息, getAltytyde()获取高度信息, getSpeed()方法对应获取速度信息。LocationManager:这是定位系统的核心组件,可以实时获取和更新地理位置信息。 调用getLocationManager()方法返回最新位置信息。 调用requestLocationUpdates()方法用于注册地理位置更新事件。 调用requestLocationUpdates(String,long,float,LocatonListeiier)方法注册接收位置跟新事件的接收器。 调用re

29、questUpdates()方法删除注册信息,停止位置更新事件。LocationProvider:位置服务的抽象类。可以周期性的报告当前设备的地理位置信息 夏国平.基于Android的车载智能导航系统的研究与设计D.电子科技大学,2012.。每个定位服务提供商都会提供一套准则,所有LocationProvider都有自己的使用准则。 enableProvider()方法用于启动LocationProvider。 disableProvider()方法用于关闭LocationProvider。LocationListener: 用于实时监听从LocationManager通知的位置变化。调用on

30、LocationChanged()方法,实时更新定位位置。 实现一个LocationListener接口获取GPS信息。 当GPS的位置信息发生变化时,会调用onLocationChanged()方法 崔栩凯.基于Android手机的定位及信息检测的应用开发D.北京邮电大学,2013.。 当GPS的状态改变时,会调用onStartChanged()方法。Criteria:此类可以根据查询条件提供位置信息。比如地图解析精度、功耗、海拔高度、速度等,系统可以根据筛选条件选出合适的属性定位者,这个方法主要通过LocationProvider来实现。2.4. 百度地图API百度地图API是百度集团专门

31、免费为开发者提供的基于百度地图服务的应用接口,它不仅免费向开发者提供地图展示、搜索与定位、云存储和检索等多种强大功能,同时还为开发者集成了Android SDK、定位SDK等多种开发工具与服务。百度地图API适应范围非常广泛,不仅适用于PC端,还适用于移动端、服务器等多种设备,是一个多种操作系统下的地图应用开发接口 杨刚.基于GPS的城市公交运营管理研究D.大连海事大学,2013.。系统构架图如图2-2所示图 22 百度地图API系统构架图百度地图 Android SDK是一个应用程序接口,基于Android2.1及以上版本设备,我们可以通过该接口实现丰富的LBS功能:地图:提供地图(2D、3

32、D)的展示和缩放、平移、旋转、改变视角等地图操作;POI检索:可根据关键字,对POI数据进行周边、区域和城市内三种检索;地理编码:提供地理坐标和地址之间相互转换的能力;线路规划:支持公交换乘查询、公交信息查询、线路规划和路径检索;覆盖物:提供多种地图覆盖物(自定义标注、几何图形、文字绘制、地形图图层、热力图图层等),满足开发者的各种需求;定位:采用多种定位模式,任务步骤是先用定位SDK获取到当前或特定位置的定位信息,然后使用地图SDK将定位信息展示出来;离线地图:支持使用离线地图,不仅可以大量节省用户数据流量,同时可以为用户的地图体验提供更方便的途径;导航:支持调启百度地图导航和Web导航来满

33、足用户对导航功能的需求;LBS云检索:支持用户检索存储在LBS云内的自有POI数据,并展示;特色功能:提供短串分享、Place详情检索、热力图、调启百度地图等特色功能,帮助开发者搭建功能更加强大的应用;应用百度地图API进行开发,必须经过两个重要的步骤:1) 下载百度地图开发包在使用百度地图API之前,首先需要在创建的工程中引用百度地图API开发包,只有将开发包引用进我们的工程才能进一步使用百度地图API,开发包里面应该包含两个文件: libBMapApiEngine.so和baidumapapi.jar 张志清.基于Android的移动社交产品客户端设计与实现D.北京交通大学,2012.。首

34、先在工程libs文件夹中,将baidumapapi.jar拷贝到根目录,然后在根目录下创建armeabi子目录,将libBMapApiEngine.so扔到该目录下。最后在工程属性Libraries中选择“Add External JARs”,再选择baidumapapi.jar,确定选择,这样就可以使用百度地图API了。2) 申请API密钥在使用百度地图SDK为您提供的各种LBS能力之前,我们需要到百度地图开发首页获取到百度地图API开发密钥,给密钥关联我们的百度账号 代士磊.基于Android的路内停车位查询系统的设计与实现J.华南理工大学,2013.。因此,我们必须先有百度帐户,才能获得

35、开发密钥。并且,该密钥与我们创建的过程名称有关,具体流程在百度LBS开放平台有具体介绍。在AndroidManifest中添加开发密钥、所需权限等信息:1) 在application中添加开发密钥:2) 添加所需权限:3. Android应用程序开发流程每个Android应用程序的开发都是有一定的流程的,既有相同的地方也有各自的特点,在本节将简单介绍Android应用程序的具体开发流程。3.1. Android应用程序运行流程Android应用程序运行在手机端或者是虚拟机中。一个Android程序需要打包成.apk文件安装后才能运行。运行过程比较复杂,下面简单介绍下。当一个程序安装好后,And

36、roid系统会给这个程序分配一个私有存储空间,即 “Security Sandbox”,目的是用来存放配置清单文件以及二进制资源文件等,如图3-1所示。图3-1 Android应用运行分析图同时,系统会分配一个唯一的ID标识给每一个安装的应用程序,目的是用来区分不同应用程序的文件和资源,系统还可以通过设置权限限制每个应用程序只能访问自己的资源和文件。设置权限可以保证应用程序之间的安全性和独立性,但是,有时一个应用程序可能需要访问其他应用程序的数据和系统资源, Android平台提供了两种解决方式:1) 一种方法是让几个应用程序使用一个ID,这样它们之间就可以相互访问其他应用程序的文件;当然也可

37、以让几个应用程序同时使用一个虚拟机,在一个进程中运行。2) 另一种方法是在安装应用程序时,可以让用户设置权限,然后每个应用程序根据用户自己设置的权限访问其他程序的数据和系统资源。经过多次试验以及相关资料验证,Android应用程序的运行会经历以下工作过程,如图3-2所示。通过这个示意图,我们可以清晰地了解到Android应用程序运行的过程。图3-2 Android应用编译过程3.2. Android开发环境配置Android开发环境的搭建是进行Android应用程序开发必不可少的一个过程,搭建环境需要准备Java JDK、Eclipse(或MyEclipse)、Android SDK以及ADT

38、。1) 下载并安装JDK。2) JDK安装完成后,需要配置环境变量,JAVA_HOME、PATH、CLASSPATH。环境变量配置好后,运行命令提示符:java version,javac如果返回信息,则设置成功 Android开发环境的安装0L: 。3) 接下来安装Eclipse。Eclipse为Java及Android开发的IDE。4) 安装好Eclipse后,还需要安装Android SDK。SDK的中文翻译为软件开发包,顾名思义,这就是一个可以让软件开发者使用的特定开发工具的集合。在谷歌官网我们可以根据不同需求下载合适SDK。5) 最后安装并配置ADT。经过以上步骤后,我们就可以创建我

39、们的项目了。3.3. 关键技术和原则Android的应用程序开发既有传统软件开发的特点,又有自己独特的地方,因为它主要运行在手机端,所以我们需要考虑到手机的运行速率,因此我们在设计程序时应该尽量充分利用手机硬件资源,优化内存占有率,降低应用程序的耗电量,同时还要考虑实际手机屏幕的大小,应该为常见屏幕做到各种屏幕分辨率的适配。要做出一个完美的Android应用程序必须掌握Android开发过程中的几个关键技术。1)开发语言。现在的Android应用程序的开发语言大都是是基于Java语言的,所以进行Android开发需要熟练掌握java语言的运用。当然,现在的Android不再局限于Java语言,

40、也有许多应用程序是用c/c+开发的,不过这种语言的开发主要用于需要高效操作底层硬件时的开发。现在的主流Android应用程序都是Java语言开发的,所以掌握Java语言才是Android开发的基础。2)节省电源技术。一部手机非待机状态时的用电量一直都很大,所以Android开发时必须考虑到节省手机电池电量,提高电池使用寿命。研究证明手机的耗电量与多种因素有关,比如屏幕的亮度、进程的数量等,所以要降低电池耗电量,必须为程序选择一个合适的背景,尽量减少不必要的进程,尽早关闭已经处理完任务的进程。此外,大多数手机自带功能如震动、蓝牙等都是非常耗电的,所以像这些硬件模块在不需要时尽量不要开启。3) 多

41、线程技术。在Java语言中,多线程技术是一项重要技术,对于需要用Java语言开发的Android应用,多线程技术也是必不可少的。在Android开发中使用多线程技术能充分利用手机硬件资源,进而有效的提高程序的执行效率,所以,多线程技术是Android开发过程中的必备技术。在默热情况下,Android应用程序只有一个主线程,这意味着应用程序要处理的任务如果太多的话,会在主线程中占用太长时间,最终将会造成主线程的阻塞,进而引发应用程序无响应,用户体验就会很差,为了解决这个问题,就需要在Android应用程序中把那些占用线程时间长的任务放到一个新开的子线程当中进行,等子线程任务处理完后只要发消息给主

42、线程进行更新即可。举个例子来说,如果要下载的文件过大,就需要很长的下载等待时间,这样就不能将下载任务放到主线程进行,最好的办法就是开启一个子线程来完成,完成之后放个消息给主线程,通知主线程任务已完成,整个过程如图3-3所示。图3-3 Android多线程示意图4. 系统的分析与设计在进行开发之前我们需要对系统进行必要的分析与设计,然后根据分析与设计有计划地进行程序的设计,这样可以有效的避免盲目无目的的设计操作。,要做到有计划设计,我将系统的分析分成了几个模块:需求分析、系统构架的分析、UI布局分析、功能分析,最后是数据库的设计分析,接下来我将依次对这几个模块做详细的分析设计。4.1. 需求分析

43、本次设计的目的很明确,即设计一款Android平台集定位与搜索功能于一体的地图服务应用程序。通过现有手机地图软件的结构功能等方面分析,发现现有手机地图大多以盈利为目的,许多普通用户用起来很不方便,虽然结构很复杂,但同时也将内容复杂化了,许多普通用户理解起来将会很麻烦。在此基础上,本着从人性化方面以及对整个软件功能需求考虑,对系统框架做出准确的把握。4.2. 系统构架分析本次系统采用层次化结构设计,它的总体构架如图4-1所示,主要有:UI层:即用户交互界面,就好比我们人体的肢体跟皮肤等表面可以看到的部分。主要用于用户操作并将用户操作数据发送给底层,然后从底层获取到用户需要的数据通过各种途径表达给

44、用户。UI层主要用来实现与用户的交互、传递信息等,从一定程度上来说,UI层的设计就是地图服务的基础。控制层:控制层就好比我们人体的关节和神将末梢,它位于UI层跟业务逻辑层之间,使用各种接口控制二者之间的业务处理,起到松耦合的作用,使代码可以更健壮,处理业务逻辑更高效。业务逻辑层:业务逻辑层就好比我们人体的大脑,它的主要任务是进行事件处理、搜索、查找等复杂业务操作。在整个系统中统筹作业,是数据交互的媒介。数据访问层:该层好比人体内部神经或血管,主要用于对用户自身数据或文件的访问,对其进行增删查改等操作。方便进行用户验证,同时也是客户端请求数据的支持。图4-1 系统构架图4.3. 确定UI布局布局

45、问题是设计和开发Android应用软件首先要考虑的问题。美观和简洁的应用程序设计,一方面能有效提高使用者的用户体验,另一方面友好的交互界面能够有效提高程序执行效率。Android系统用户界面的生成方式主要有两种。一种是利用界面接口和xml文件进行配置;另一种是通过代码控制生成。Activity是Android开发平台四大组件之一,Activity通过绑定一个UI布局实现一个用户交互界面。在手机屏幕上无法直接显示Activity实例,但是在Activity中可以做很多事。Android平台上主要的布局对象有五种,他们分别是:线性布局(LinearLayou):LinearLayout布局方式是按

46、照垂直或水平顺序依次排列里面的控件元素,每个控件元素都占有一行或者一列。如果是垂直排列,那么每个控件元素不管宽度是多少都将占有一行,向下依次排列;如果是一个水平排列,那么每个控件不管多高就将占有一列,向右依次排列。绝对布局(AbsoluteLayout):AbsoluteLayout布局方式是用坐标指定每个控件元素相对于手机屏幕左上角(0,0)的绝对位置来实现布局,这种方式只适用于允许拖拽控件的开发当中。在实际开发中,因为这种布局不适用适配各种屏幕分辨率,所以通常不采用。相对布局 (RelativeLayout): RelativeLayout布局可以按照各个元素之间的相对位置关系完成布局。在此布局中android:layout_below,android:layout_above等与相对位置有关的属性都是有效的。子元素通过设置自己的ID跟相关位置属性确定最终布局。当然,在指定相对位置关系时,相对的子元素必须在之前定义,否则会报异常。表格布局 (TableLayout): 实际应用中,通常TableLayout会与TableRow搭配使用,TableLayout置底,T

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com