位置服务与地图应用.ppt_第1页
位置服务与地图应用.ppt_第2页
位置服务与地图应用.ppt_第3页
位置服务与地图应用.ppt_第4页
位置服务与地图应用.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1,位置服务与地图应用,2,学习目标:,了解位置服务的概念 了解地图密钥的申请方法 掌握获取位置信息的方法,3,1 位置服务,位置服务 位置服务(Location-Based Services,LBS) 又称定位服务或基于位置的服务 融合了GPS定位、移动通信、导航等多种技术,提供与空间位置相关的综合应用服务 位置服务首先在日本得到商业化的应用 2001年7月,DoCoMo发布了第一款具有三角定位功能的手持设备 2001年12月,KDDI发布第一款具有GPS功能的手机 涉及商务、医疗、工作和生活的各个方面,4,1 位置服务,位置服务 Android平台支持提供位置服务的API,在开发过程中主要用到LocationManager和LocationProviders对象 LocationProviders是提供定位功能的组件集合 获取LocationManager可以通过调用android.app.Activity.getSystemService()函数获取,代码如下 String serviceString = Context.LOCATION_SERVICE; LocationManager LocationManager = (LocationManager)getSystemService(serviceString); Context.LOCATION_SERVICE指明获取的是位置服务 getSystemService()函数,根据服务名称获取Android提供的服务,5,1 位置服务,位置服务 指定LocationManager的定位方法后调用LocationManager.getLastKnowLocation()方法获取当前位置 目前LocationManager中主要有两种定位方法 GPS定位:精确但定位速度和质量受卫星数量和环境影响 网络定位:精度差,但速度较GPS定位要迅速,6,1 位置服务,位置服务 LocationManager支持定位方法,7,1 位置服务,位置服务 使用GPS定位获取位置信息的代码如下 String provider = LocationManager.GPS_PROVIDER; Location location = locationManager.getLastKnownLocation(provider); Location对象包含了可以确定位置的信息,如经度、纬度和速度等 通过调用Location中的getLatitude()和getLonggitude()方法可以分别获取位置信息中的纬度和经度: 1 double lat = location.getLatitude(); 2 double lng = location.getLongitude();,8,1 位置服务,位置服务 为了使GPS定位功能生效,还需要在AndroidManifest.xml文件中加入用户许可 实现代码如下 ,9,2 Google地图应用,2.1 申请地图密钥 使用Google提供的地图服务,实现地理信息可视化开发 使用MapView(com.google.android.maps.MapView)将Google地图嵌入到Android应用程序中 使用MapView进行开发前须向Google申请经过验证的“地图密钥”(Map API Key) “地图密钥”是访问Google地图数据的密钥,无论是模拟器还是在真实设备中需要使用这个密钥,10,2 Google地图应用,2.1 申请地图密钥 使用Google账户,即Gmail电子邮箱注册“地图密钥” 找到保存Debug证书的keystore的保存位置,并获取证书的MD5散列值 keystore是一个密码保护文件,存储Android的证书,11,2 Google地图应用,2.1 申请地图密钥 获取证书的保存地址的方法:首先打开Eclipse,通过Window Preferences打开配置窗体,在Android Build栏中的Default debug keystore中可以找到,12,2 Google地图应用,2.1 申请地图密钥 获取Debug证书MD5散列值,需在命令行环境下 切换到keystore的目录,输入如下命令 keytool -list -v -keystore debug.keystore Keytool是JDK提供的工具,如果提示无法找到keytool,可以将/bin的路径添加到系统的PATH变量中,13,2 Google地图应用,2.1 申请地图密钥 在提示输入keystore密码时,输入密码android,或直接输入回车,MD5、SHA1和SHA256散列值将都显示出来。如下图所示,14,2 Google地图应用,2.1 申请地图密钥 申请“地图密钥”的最后一步是打开申请页面,输入SHA1散列值 申请页面的地址是/intl/zh-CN/android/add-ons/google-apis/maps-api-signup.html,15,2 Google地图应用,2.1 申请地图密钥 获取Map API Key页面,16,2 Google地图应用,2.1 申请地图密钥 输入MD5散列值后,点击Generate API Key按钮,将提示用户输入Google账户,正确输入后账户后,将生产申请“地图密钥”的获取结果,如下图所示,17,2 Google地图应用,2.2 使用Google地图 MapView是地图的显示控件,可以设置不同的显示模式,例如卫星模式、街道模式或交通模式 MapController是MapView的控制器,可以控制MapView的显示中心和缩放级别等功能 建立工程时需将com.google.android.maps扩展库添加到工程中,这样就可以使用Google地图的所有功能 添加com.google.android.maps扩展库的方式是在创建工程时,在Build Target项中选择Google APIs,18,2 Google地图应用,2.2 使用Google地图 引入Google地图扩展库(图),19,2 Google地图应用,2.2 使用Google地图 程序运行时需要连接互联网,运行结果如下图所示 地图模式 卫星模式,20,Android NDK开发,21,学习目标:,了解Android NDK的用途和不足 了解Android NDK编译环境的安装与配置方法 了解Android NDK的开发步骤,22,1 NDK简介,Android NDK Android NDK(Android Native Development Kit)是一系列的开发工具,允许程序开发人员在Android应用程序中嵌入C或C+语言编写的本地代码 Android NDK优势 解决了核心模块使用托管语言开发执行效率低下的问题 允许直接使用C/C+源代码,极大的提高了Android应用程序开发的灵活性 Android NDK不足 Android NDK不会提升所有Android程序的执行效率,但一定会增加程序的复杂程度和调试难度,23,1 NDK简介,Android NDK 程序开发人员需要仔细权衡Android NDK所能提升的运行效率与增加的复杂程度是否在可接受的范围内。选择使用Android NDK应主要出于以下两种目的 一是Android应用程序框架无法满足运行效率时 二是需要使用大量已有C/C+源代码,24,1 NDK简介,Android NDK Android NDK提供一系列的工具、编译文件、文档和示例代码,用于从C/C+源代码中生产本地代码库,还提供了将本地代码库嵌入到apk文件的方法 Android NDK所包含的大量本地系统头文件和库文件,主要是用来支持未来版本的Android系统 Android NDK所支持的最低版本的Android系统是1.5版本,如果使用本地Activity则所需要的最低Android系统版本为2.3版本,25,1 NDK简介,Android NDK 最新版本的Android NDK支持ARM指令集,包括ARMv5TE、ARMv7-A和x86 ARMv5TE机器码可以在所有基于ARM的Android设备上使用,ARMv7-A机器码则只能运行在具有ARM7 CPU的Android设备上,如Verizon Droid手机和Google Nexus One手机 ARMv7-A与ARMv5TE指令集的差别主要在于,ARMv7-A支持硬件FPU(浮点运算单元)、Thumb-2和NEON指令集 程序开发人员可以针对不同目标设备,在Android NDK中使用不同的ARM指令集支持不同的架构,也可以同时将支持多个架构的指令集编译到同一个apk文件中,26,2 NDK 开发环境,NDK开发环境包括Eclipse、Android NDK和Cygwin Eclipse建立Android工程和编写程序代码 Android NDK提供编译脚本和工具 Cygwin完成Linux环境下的交叉编译,将C/C+的源代码文件编译成Android系统可调用的共享连接库文件,27,2 NDK 开发环境,Android NDK编译环境支持Windows XP、Linux和MacOS Windows系统的编译环境配置方法 下载Android NDK的安装包 下载并安装Cygwin,28,2 NDK 开发环境,下载Android NDK的安装包 Google的Android开发者网站下载Android NDK的安装包,下载地址是/sdk/ndk/index.html,下载页面如下,29,2 NDK 开发环境,下载并安装Cygwin Android NDK目前还不支持在Windows系统下直接进行交叉编译,需安装Linux模拟器环境Cygwin,完成C/C+代码的交叉编译工作 Android NDK要求Cygwin的版本高于1.7,因此最好安装较新版本的Cygwin Cygwin的最新版本可以到官方网站下载,30,2 NDK 开发环境,下载并安装Cygwin 在Cygwin的安装过程中,需要将Devel下的gcc和make的相关选项选上,如下图所示,否则Cygwin将无法编译C/C+源代码文件,31,3 NDK 文档和示例,Android NDK的目录结构 在介绍NDK开发前,首先熟悉一下Android NDK为程序开发人员提供的资料和示例。Android NDK的目录中包含7个子目录和7个文件 build目录保存了编译脚本和配置文件 docs目录是帮助文档目录 platforms是保存了编译过程中可能用到的头文件和库文件,并根据Android版本和CPU类型进行了分类,32,3 NDK 文档和示例,Android NDK的目录结构 sources目录中保留了程序中可能用到的C/C+源代码文件,CPU类型检查和本地Activity的C/C+源代码文件就在这个目录中 tests是测试代码目录 toolchains是交叉编译工具目录 documentation.html是帮助文档的起始页,可以通过该文件快速浏览docs目录中的所有帮助文档,33,3 NDK 文档和示例,Android NDK的目录结构 GNUmakefile编译配置文件 ndk-build是交叉编译的快捷脚本 ndk-gdb用于Debug调试的脚本 README.txt和RELEASE.txt分别是Android NDK的说明文档和版本信息,34,3 NDK 文档和示例,Android NDK的目录结构 GNUm

温馨提示

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

评论

0/150

提交评论