安卓系统的手机定位软件开发与设计doc.docx

上传人:b****5 文档编号:7852399 上传时间:2023-01-26 格式:DOCX 页数:6 大小:22.44KB
下载 相关 举报
安卓系统的手机定位软件开发与设计doc.docx_第1页
第1页 / 共6页
安卓系统的手机定位软件开发与设计doc.docx_第2页
第2页 / 共6页
安卓系统的手机定位软件开发与设计doc.docx_第3页
第3页 / 共6页
安卓系统的手机定位软件开发与设计doc.docx_第4页
第4页 / 共6页
安卓系统的手机定位软件开发与设计doc.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

安卓系统的手机定位软件开发与设计doc.docx

《安卓系统的手机定位软件开发与设计doc.docx》由会员分享,可在线阅读,更多相关《安卓系统的手机定位软件开发与设计doc.docx(6页珍藏版)》请在冰豆网上搜索。

安卓系统的手机定位软件开发与设计doc.docx

安卓系统的手机定位软件开发与设计doc

安卓系统的手机定位软件开发与设计-

摘要:

如今,手机的智能化及人性化已经成为手机发展变革的必然趋势,无线通信技术、GPS定位技术的手机定位软件应用也愈发成熟,为用户提供了无尽的便利服。

文章就基于安卓系统的位置信息服务探讨了目前手机定位软件在导游系统终端中的技术设计与开发,希望为用户出行提供集旅游、购物、社交三位一体的综合性信息平台。

关键词:

安卓系统;LBS;手机定位软件;智能导游;位置信息服务

位置信息服务即LocationBasedService,简称LBS。

通过由运营商所提供的无线通讯网络或GPS等外部定位方式来获取移动终端用户的具体地理坐标信息,并在GIS等地理信息系统平台的支持下,为用户提供智能终端定位、智能导游等增值服务。

具体来说,地图定位、自动触发景点多媒体信息、游览轨迹信息和周边服务设施信息都应该是LBS所涉及的服务范围。

利用信息化技术将游客、旅游实体、旅游实体管理者这3方联系到了一起,并达成了交互的目的。

也正是基于此系统,游客可以在出行期间得到更好的信息化服务。

1.安卓系统下LBS智能终端导游系统的关键技术阐述

位置信息服务LBS主要是基于3方技术来共同完成的,它们是来自于移动终端的定位软件技术、网络通信技术以及安卓系统。

以下就一一阐述这3方下的具体关键技术特点。

1.1定位软件技术

定位软件技术是LBS智能导游系统应用中的关键核心,一般起到功能作用的是SkyhookWi-Fi定位系统和蜂窝基站定位系统,包括外部全球定位系统GPS。

这几项技术都通过天线向外部发送信号,并寻求距离自己最近的复数基站,通过它们的信号转递进行信号定位。

而SkyhookWi-Fi则运用到了固定热点技术,它能直接与手机或其它智能移动终端的MAC地址相互绑定,实现对系统无线信号的接入,从而获取用户想要的地理定位信息。

另外,利用智能手机内部的微机电三轴加速传感器也能够实现对智能导游系统功能的应用。

其功能实现原理是手机在空间坐标系中同时向3个方向轴上输出加速度分量,并通过这3个方向的加速度积分计算来推导出空间三维速度和位置,为用户提供准确的服务。

网络通信技术包含许多种,比如套接字通信,HTTP协议,增强现实技术等等。

首先说套接字通信(socket),是网络通信技术的基础,能够支持TCP/IP协议获取最基本的网络通信包,从而实现对客户端服务器的连接,进一步获取本地IP,本地DNS,远距离IP及DNS。

另外,安卓系统中的SDK、CFNetworkframewrok也能为基础网络通信接口提供网络通信服务,实现远程位置查询。

而HTTP协议则提供了简洁快捷的应用层技术,基于信息传输主体内容的实体、通信层与应用层之间的通信连接、HTTP所传输的消息内容、客户端向服务器发送的内容请求、接受客户请求时HTTP月艮务器端的响应以及由URI表示网络服务中的资源来为LBS提供更好的网络技术支持。

1.3安卓系统

安卓系统出现相对较晚,主要采用了软件堆层的主题架构,并细分为3大部分,底层Linux内核、中间层函数库Library及虚拟机,还有上层具体app应用软件,它们都是由C语言、c++、JAVA等计算机语言所编写的程序。

针对LBS来说,安卓系统中的Linux和ApplicationFramework则更加关键。

Linux主要为安卓系统提供核心系统服务,是连接智能手机软硬件系统的抽象层,并将二者细化分层。

所提供的服务也是统一的,能够屏蔽一些不相关层的信息,使各个信息层之间处于不关联状态。

而ApplicationFramework则是利用安卓系统中的开发应用程序来简化手机系统结构,并将LBS中所需要应用的视图、音频等组件集合起来,允许用户使用各个应用程序来访问其它数据,这在智能导游系统中是十分重要的,即通过对系统资源的共享应用来实现手机定位。

2.基于LBS的安卓智能手机导游系统软件设计

整体而言,基于LBS的安卓智能手机导游系统软件应该包括优化了的封装位置定位服务、高品质的网络通信服务、实时的数据缓存服务以及其它一部分交互展示功能。

正是这些关键技术的加入才丰富和提升了手机定位软件的应用性能和运行效率。

2.1基于LBS的相关定位控件设计

2.1.1控件设计

BPLocation是LBS中一个较为重要的位置服务控件,它能够创建uIAccelerometerDelegate与CLLocationManagerDelegate接口,通过它们实现对GPS位置信息的获取。

同时它也能计算GPS漂移数据量,实现对用户运动轨迹函数的推算、区域检测等等。

近似于BPLocation类的相关函数种类众多,文中简单介绍3种:

instance是典型的BPLocationManger类,它属于静态函数,能够根据系统应用来实现XCBPLocationManger变量的获得;LocationManager则通过设置DesiredAccuracy来获取用户的位置方向与具体信息数据;还有accelerometer,它是基于UIAcceIerometer抽象类的控件,它就是利用到了微机电的三轴加速传感器,可以在用户手机LBS软件客户端的x,y,z三个轴上实施加速度,进而计算用户手机设备智能导游系统的运行速度,起到纠正手机内部GPS定位误差的作用。

在具体应用中,LBS的相关控件会根据手机的位置实施运动轨迹的定位,可以实时记录用户的运行轨迹,一旦出现任何漂移,也能将这些偏差自动滤掉,这就是过滤偏移。

过滤偏移共有2种方式:

利用GPS历史记录确定偏移是否存在;再者就是利用计算机的运行速度和加速度来确定定位是否存在偏移,这种方法更加合理,而且精确度也有保证。

区域检测也可以通过手机安卓系统检测游客在所规定区域范围内的运动轨迹,这是智能导游系统所惯用的技术。

当游客离开规定区域时,系统会发送消息通知用户,告知用户的运行轨迹,比如一些用户在跑步时会用到的计步软件,它的检测原理主要以规定区域中心点作为主要检测中心,当用户运动时,系统会为其与区域中心点做比较,所比较出的结果就是用户以中心点为轴心的运动轨迹。

2.2基于网络通信系统的相关模块设计

就网络通信系统模块设计而言,主要将研究重心放在BPFormDataRequest和BPRequestQueue的设计上。

BPFormDataRequest是BPHTTPRequest的子类,在扩展手机智能导游系统对POST的支持时,就要实现基于POST的所有位置数据请求参数设置和相关文件上传,这样才能发挥BPFromDataRequest的实际作用,明确数据24#的路径和网络通信模块的所有通信接口。

相对而言,BPRequestOueue则衔承于NSOperationOueue模块,它能够管理并实现BPHTTPRequest的实时复数请求,同时也允许其对象在网络环境中发送任何位置信息请求,它与普通的传输信息模块是不同的,它对位置信息的确定性更强,而且严重依赖于图像来定位如图l所示。

如果客户通过手机端创建BPHTTPRequest模块,并发送信息请求,所发送的信息将以队列形式等待响应处理,此时LBS也会监测定位信息的传送状态。

当请求处理完毕,服务器端将会收到所返回的结果并做记录,同时释放用户所要求的请求资源。

2.3基于UI视频图像交互展示技术的系统设计

手机智能导游软件要实现对视频图像的交互展示,就必须基于展示模块来设计UI。

本文所介绍的是对定位软件系统中原始UIImageYiew的扩展,即BPImageView的应用,能够实现地图类型数据的可视化分析,为智能导游系统提供更多的位置空间数据和可视化功能,以地图和影像的形式展示出来。

为了实现地图、影像等数据的可视化,需要通过ARView模块中的动态加载及流技术对地理位置信息进行强化。

所以本文主要介绍了基于UI视频图像交互展示技术的系统设计,希望帮助手机实现对地理数据可视化信息获取的功能强化。

2.3.1基于BPImageView模块的网络图片加载设计

因为BPImageView是UIImageView的子类,所以应该实现其父类UIImageView对所有图片显示类以及图片存储数据的合理运用。

这里采用的方法是利用BPImageView来接收setImageURL消息,然后引用基于BPImageLoader的可视化信息强化输出方法。

此方法可以达到查看网络中缓存数据存在性的目的。

如果数据存在,就说明它们可以直接以图片的形式载入。

如果数据不存在,则表示要再次通过BPImageLoader类进行loadlmageForURL数据的调用,重新加载图片。

2.3.2ARView视图功能UI强化的设计

首先要说,ARView是具备2部分视图的,它们是兴趣点POI视图和实施传输视频流如图2所示。

2个POI点视图处于叠加状态,这就可以确定POI的兴趣点,如果以视图表示POI,就可以了解到用户对该POI点视图的兴趣度。

这里采用一个叫做placesOfTnterestCoordinates的数组,通过四维向量来表示数组中用户所记录的兴趣点坐标,这样就可以利用系统来记录用户的位置信息,为用户导航。

3.结语

基于安卓系统的手机定位软件的开发与设计应该是全方位的,LBS位置信息服务的多角度设计理念也恰好迎合了这一点发展需求,让手机智能系统更加人性化、系统化和精确化,特别是可视化与智能定位的巧妙设计应用也体现了它对于目前无线通讯服务的重要性。

而且这种位置信息服务技术也切实地运用到了诸如旅游这样的人类大型产业中,为社会发展赢取了一定的效率和效益。

所以说,LBS技术是一种具有巨大潜能的,前景无限美好的现代化技术,也希望它可以应用到除旅游外的其它各个领域,发挥它的科技智慧,为人类造福。

 

安卓学习的有效方法有哪些

安卓开发学习的方法

1.Java基础

很多朋友一上手就开始学习Android,似乎太着急了一些。

Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。

那么Java学到什么程度才算是过关呢?

我个人认为至少要掌握以下两个方面的内容:

a)Java基础语法:

具体的知识点列表可以在这里下载:

《Java知识点列表》V1.0。

这部分内容没有讨价还价的余地,必须烂熟于胸。

至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;

b)设计模式:

由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。

设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。

这部分内容可以在《EffectiveJava》和《Agile.Software.Development:

Principles,Patterns.and.Practices》这两本书中找到。

2.Linux基础知识

大家都知道,Android系统的基础是Linux操作系统。

在开发过程当中,我们也需要使用到一些Linux命令。

所以说一些Linux的基础知识是必须的。

3.数据库基础知识

这个比较简单,就是一个增删改查的数据库操作。

4.网络协议

至少需要学习两种基础的协议,HTTP协议与Socket协议。

5.Android基础知识

有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?

至于基础知识的学习顺序,最好的方法就是按照AndroidSDK帮助文档当中的DevGuide里面的顺序。

6.服务器端开发知识

由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。

至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:

a)JavaEE:

就是上面邮件当中所提到的SSHStruts+Spring+Hibernate。

这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。

但是使用这种技术开发服务器端程序,非常麻烦。

即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;(缺点)

b)PHP:

简单易学,开发快速。

但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;

c).NET:

这项技术的特点和JavaEE差不多,但是要想掌握.NET,则需要掌握c#,也是个麻烦的事情;

d)rubyonrails:

这是我个人最喜欢的服务器端技术,简洁,优雅,寥寥几行代码,就可以实现很复杂的功能,但是这需要Ruby语言知识作为基础;

android初级工程师的攻略

一、明确自我定位

现在你是初级工程师,但是你想当个高级工程师,所以,你就要给自己定个目标,即:

我是要成为高级工程师的男人。

有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就会成为你的B格。

也就是说,虽然我现在是小菜,但是我不是一般的小菜,从而内心有一种自豪感,而这种自豪感会给你提供正能量。

这一条是虚的,但是是有用的。

二、学习路线

首先找本android入门的书来看,市面上大部分书都是入门的书,要把基本的东西搞懂,在学习的工程中要顺带写点demo。

需要注意的是,demo要自己写,哪怕照着书上的抄,也不能直接把书中的demo运行一下。

这个是有很大的区别的,代码感觉必须要通过敲代码来培养,抄一遍代码和运行一遍demo效果是截然不同的,这点一定要注意。

入门的书看完后,基本就可以上手做一些开发了,比如公司的一些项目啥的。

到此,我们已经成为初级工程师了,这个时间一般1-3个月即可。

Android中级工程师初级工程师攻略:

中级工程师这个阶段很重要,一般来说需要1年左右的开发经验就能达到。

首先,要找家靠谱的公司去做android,什么是靠谱的公司,就是在里面能学到东西,可以先不考虑待遇什么的,毕竟技术有了,后面待遇也就自然有了。

平时在公司要认真做项目,积极主动,一切以学知识为目标,不要图轻松少做项目。

同时还要学习公司内部高级工程师、架构师们写的代码,加以理解变为自己的东西。

这些都是工作中的经验,除了工作,还需要在业余时间勤奋

学习才可以。

业余时间是指非工作时间的其他时间,而且这个时间利用的越多,你的成长之路历程就会越短,你就能越快地提高技术。

大家不要小看业余时间,甚至好多情况下,只有工作时间是远远不够的,必须在业余时间也学习才行。

安卓学习的建议

1.写一个app,比如高仿系列,或者自己做一个app发布也行

2.建立一个博客,csdn或者个人博客都行

这一条在我的眼里,是必须的,因为学习讲究总结、融会贯通,而博客刚好可以给我们一个写总结的地方。

时不时把自己的知识汇总下写一篇博客出来,这对自己是一个提高,对别人也是一个帮助。

这个怎么说呢,当你写博客,你就会发现一个知识你自己会了和写出来这是不一样的,能写出来才是真正地懂了。

另外,当你的博客写好了,会有好多人看,这对你也是一个欣赏和激励,让你觉得你的辛勤劳动更有价值,这种利人利己的事,是一定要做的。

刚开始写点基础的,慢慢就要写点难一点的,这样才能逐步提高。

除了写博客,平时也要在内心多总结、思考才行,比如可以想想,android中所有的IPC方式有哪些等。

写博客和做开源,对于提高个人知名度很有作用,而一旦有了知名度,很多好事就都来了。

3.建立或者参加开源,比如github

开源的好处就不同提了,github上各色各样的开源都有,平时大家都是拿来用,但是自己写一个开源给全世界的人用,不是一个很美好的事情吗?

建议大家参加开源,因为开源看起来档次比较高。

4.研究android中一些高级的概念、源码等

这个是很重要的,除了量变外,还需要质变。

作为一个中级工程师,必须在核心技术上也有所提高,比如aidl、remoteviews、android内部的运行机制等

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1