您好,欢迎访问三七文档
基于android平台的个人定位系统的设计与实现文献综述灾害信息工程系信息管理与信息系统胡**07302**摘要:每一个互联网领域的从业者都会思考什么是下一个Facebook,什么是下一个Twitter。对于这个问题一些人给出了这样的答案,LBS(LocationBasedService)基于地理位置的信息服务,本毕业设计的课题的研究目标就定位在LBS应用的技术探索,以及搭建相应的技术框架。关键词:LBS,个人信息定位,Android技术一、前言当前社交网络(SNS)应用风靡全球,facebook成立不到三年就成为了价值10亿美金的公司,而紧随其后的twitter,更是在2年之内上市成为了价值10亿美金的公司。在中国本土市场上也出现了很多相应的模仿者,比如说人人,开心,新浪微博等。对于从事这些领域的公司而言,SNS的流行,带来的是实实在在的真金白银,我想每一个互联网领域的从业者都会思考什么是下一个facebook,什么是下一个twitter。对于这个问题一些人给出了这样的答案,LBS(LocationBasedService)基于地理位置的信息服务。对这个答案做一些思考之后发现,能够这么说不是没有道理的。究其原因我想只能有一点,就是LBS有更高的商业价值。首,基于LBS可以做说车载导航,这样的产品就可以直接面向客户,为大家解决导航的问题,从而实现盈利;其次,针对个人而言,当我们在某一个陌生的地点,利用LBS可以很快的熟悉地形,利用gps技术精确的定位到当前的位置,然后在地图上面寻找目标地点,而商家可以乘此机会在地图上动态的贴上自己的位置,从而赢得客源。当然以上也仅仅是LBS的一些应用举,我想只要不断的去挖掘,一定能够发现更多的机会。而目前在国内做这些应用的大概有30家公司左右,比较出名的大众点评,开开,街旁,区区小事,等等。相对于互联网的其他的领域,这个领域技术上也比较成熟,而上层杀手级别的应用也还比较少,所以我们有很多机会。而本次的毕业设计的课题的研究目标就定位在LBS应用的技术探索,以及搭建相应的技术框架。二、个人信息系统的现状虽然目前在市面上有一些定位设备,比如说车载导航,还有专门的Gps装置,但是这样的装置对于个人而言的话并不是很方便,而且价格上也是让人无法接受,加入说个人定位系统能够以一种软件的形式存在于手机之中,与手机合二为一,这样的话一来可以免费为大家提供服务,二来从便携性的角度来说也是非常的合适的。由于3G的开始的时间不长,以往在2G的环境之下网速过慢,加之手机端操作系统过于臃肿,比如诺基亚的扩展性不是很好,等等一些方面的原因吧,使得我们要向在手机端做出一款比较出色的应用来讲是比较困难的,但是现在情况不一样了,Google和苹果这样的公司,把地图底层的一些技术都给我们做好了,所以呢,我们只是需要专注于自身的逻辑问题的处理,并不需要太多的去关注底层的技术是如何实现的,打造出一款定位系统的技术难度大大降低。而目前在中国本土的电子市场上也是有一些LBS方面的应用,比如说大众点评,开开,街旁,都做的很不错,无论是从界面的UI,还是自身的软件的架构来讲都不错。但是整个市场的个人定位信息系统的数量还是比较少的,而且精品也是屈指可数。三、Android平台简要介绍Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android2.4Gingerbread和Android3.0Honeycomb。(一)应用程序Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类(class)负责创建视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(stopped),甚至被系统清除(kill)。View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。(二)中介软件操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(VirtualMachine)。Bionic是Android改良libc的版本。Android同时包含了Webkit,所谓的Webkit就是AppleSafari浏览器背后的引擎。Surfaceflinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的BionicLibc。Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideoMultimediaFramework(PVMF)、OperatingSystemCompatibilityLibrary(OSCL)、Common、OpenMAX。Android使用skia为核心图形引擎,搭配OpenGL/ES。skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,目前Skia也是GoogleChrome的图形引擎。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtualMachine)。Dalvik虚拟机是一种“暂存器型态”(RegisterBased)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Dalvik虚拟机可以有多个实例(instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。(三)硬件抽像层(HardwareAbstractionLayer)Android的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Androidframework与Linuxkernel隔开,让Android不至过度依赖Linuxkernel,以达成kernelindependent的概念,也让Androidframework的开发能在不考量驱动程序实现的前提下进行发展。HALstub是一种代理人(proxy)的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数(operations),并由Androidruntime向HAL取得stub的operations,再callback这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即moduleID,就可以取得操作函数。(四)编程语言Android是运行于Linuxkernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开。bionic/libc/kernel/并非标准的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所产生的,这样做是为了保留常数、数据结构与宏。目前Android的Linuxkernel控制包括安全(Security),存储器管理(MemoryManagement),程序管理(ProcessManagement),网络堆栈(NetworkStack),驱动程序模型(DriverModel)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。(五)Android平台五大优势特色1、开放性在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。2、挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。3、丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。4、不受任何限制的开发商Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。5、无缝结合的Google应用如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。四、个人定位系统横向对比(一)大众点评网系统框架:采用九宫格模式主要功能解析:搜索餐馆、通过AGPS尝试定位你当前的位置,然后搜索附近的餐馆、可以根据菜系和价格进行筛选;不仅可以查看餐馆的具体地址、电话等信息
本文标题:文献综述参考
链接地址:https://www.777doc.com/doc-2338381 .html