ndroid平台系统的应用开发腾讯云开发者社区

Android作为Google移动互联网战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google的目标是让移动通信不依赖于设备,甚至是平台。出于这个目的,Android将完善而不是替代Google长期以来推行的移动发展战略:通过与全球各地的手机制造商和移动运营商成为合作伙伴,开发既实用又有吸引力的移动服务,并推广这些产品。

随着城市化的进展和家用轿车的普及.原本根遥远的全球卫星定位系统(Global Position System.6Ps)的使用越来越多,但车挪导航仪高昂的价格和每次地图数据痒升级所需的费用.导致车载GPS导航产品仍旧没有非常普及。而且适用于在个人徒步行走的GPS实时导航产品还非常少。

GPS导航系统是集中应用了自动定位技木、地理信息系统(简称GI S)与数据库技木、计算机技术、无线通信技术的高科技综含系统。依据车载导航系统把车辆和道路综合起来考虑.运用各种高新技术系统可以有效解决交通问题。目前随着智能手机的普及.如何在智能手机中开发GPS导航系统可以说是目前的一个热点问题。

1、Android SDK架构

Android平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。

第一层,应用程序层,该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

第二层,应用程序框架层,该层是Android应用开发的基础,开发人员大部分情况是在和它打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。

第四层,Linux内核,Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

2、开发环境

操作系统:Microsoft Windows 7

IDE: Ecplise  Latefrom Version 3.3.1.1

开发包:Android SDK

模拟机:Android2.1或Android2.3等

1、GPS导航应用系统设计规划

本设计的实现思路是在智能手机上开发一个GPS应用程序,运行该程序后,在其主界面上可以创建一个新的跟踪,然辰在后台启动一个Service,定时读取GPS数据获得用户目前所在的位置信息,将其存入数据库中,用户可以选择以往的跟踪记录,将其轨迹显示在蚍.由此可以记录用户去过的位置。

基于上面的思路,基于Android的GPS导航应用开发的框图如图1所示:在智能手机的硬件平台上,基于android手机操作系统来开发GPS导航应用。我们可以把这个GPS应用开发分为如下步骤: (1)规划应用UI。(2)设计储存,创建数据库、表。(3)实现页面Active的跳转。(4)实现服务Service。(5)完善和实现程序。(6)程序打包、签名并发布。

2、性能

(2)项目调用 camera 后显现的取景,受真实手机的摄像头像素数等指标的影响,因此不同的手机运行本项目后取景图像可能质量不一样。

(3)项目本身是eclipse环境下的android项目,需要在已经添加了android插件的eclipse中以工程文件形式打开。

3、可靠性与可用性

本项目在motorola defy+ 手机上测试可以正常运行,因此在android2.1或更高版本的android真实手机上均可运行;在模拟机方面,系统版本为 android2.1或者更高的版本并保证系统剩余内存为1M的模拟机上都可正常运行。

Android在GPS导航系统软件设计过程中,主要利用了Android软件平台的5大功能模块,分别为Android应用程序层、应用框架层、普通函数程序库、Android:运行环境和Linux内核层。在应用程序层利用Android的各种组件API接口,开发了针对GPS导航的GPS、Ca)ogle Map电子地图的Java应用程序,并由内核层提供了相应的底层驱动。

首先我们建立项目,在Eclipse中依次选择File—New-'*Android Project项,输入项目名称和其他的辅助信息。下面我们具体进行GPS导航应用的开发。

1、项目各界面实现

手机屏幕中的一个界面就是一个Activity.所以Activity可以算是Android当中最基本的模块之一,一个Android应用程序我们可以认为就是由多个Activity的交互组成的,这多个Activity之间可以进行相互跳转。不同的Activity实现不同的功能。

GPS导航应用的界面主要有主界面,地图定位界面,新建跟踪界面,个性化设置界面以及帮助界面等。主界面的目标是展示一个“以往跟踪的列表”,下面以实现主界面为例进行设计。

在Android中生成屏幕界面主要使用的是跨平台的扩展标记描述性语言xml进行配置生成的方式,在main。ml使用了LinearLayout命令进行布局(采用了垂直方式),放置一个TextView和一个ListView组件,其目的用来显示最近跟踪的列表。对于布局,使用了”fill parent”>,因此在宽度和高度方向,都是填充满父容器。

使用MapView:

2 、GPS定位功能实现

Android操作系统支持GPS API,可以这样设置Criteria对象:Criteriac=new Criteria();创建一个Criteria对象,接着将Criteria对象传递给LocationManager对象,LocationManager对象提供了多种方式来获取经纬度坐标和其它数据,它获取定位数据的方法如下:对于经纬度,getLatitude()返回纬度数据,getLongitude()返同经度数据:对于海拔高度,hasAltitude()判断是否有海拔数据,而getAltitude0则以米为单位返回海拔数据。

Android 支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置。应用程序可以定时请求更新设备当前的地理定位信息。应用程序也可以借助一个 Intent接收器来实现如下功能:以经纬度和半径划定的一个区域,当设备出入该区域时,可以发出提醒信息。

LocationManager: 本类提供访问定位服务的功能,也提供 获取最佳定位提供者的功能。另外,临近警报功能 (前面所说的那种功能)也可以借助该类来实现。

LocationProvider: 该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。

LocationListener: 提供定位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。

Criteria:该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。

Android也提供了一组访问 Google MAP的API,借助Google MAP及定位API,我们就能在地图上显示用户当前的地理位置:

MapActivity: 这个类是用于显示Google MAP的Activity类,它需要连接底层网络。

MapView: MapView是用于显示地图的View组件。它必须和MapActivity配合使用。

MapController : MapController用于控制地图的移动。

Overlay:这是一个可显示于地图之上的可绘制的对象。

GeoPoint: 这个一个包含经纬度位置的对象。

下面让我们来实际使用它们:

我们将来开发一个应用,它将能在Google Map上显示用户当前的位置。我们会通过使用Google Map API来显示地图,然后使用定位API来获取设备的当前定位信息以在Google Map上设置设备的当前位置。用户定位会随着用户的位置移动而发生改变。

Activity:

首先我们需要一个继承了MapActivity的Activity类:

另外,要使用Google Map服务的话,我们需要一个API key。我们可以 通过如下方式获取API key:

2) 使用keytool工具来生成认证信息(MD5),使用如下命令行:

keytool -list -alias androiddebugkey -keystore <path_to_debug_keystore>.keystore -storepass

android -keypass android

3) 打开 “Sign Up for the Android Maps API”页面,输入之前生成的认证信息(MD5) 后将获取到你的API key。

让我们来继续补全MyGPSActivity类的代码,以使用MapView:

使用定位管理器:

之后,我们需要将我们原先的MyGPSActivity作一些修改,让它实现一个LocationListener接口,使其能够监听定位信息的改变:

让我们来添加一些代码,对LocationManager进行一些初始化工作,并在它的onCreate()方法中注册定位监听器。

现在的代码中的onLocationChanged方法就会在用户的位置发生500米距离的改变之后进行调用。这里默认使用的 LocationProvider是“gps” (GSP_PROVIDER) ,不过你可以根据你的需要,使用特定的Criteria对象调用LocationManger类的getBestProvider方法获取其他的 LocationProvider。以下代码是onLocationChanged方法的参考实现:

上面的代码用于获取当前的新位置并更新地图上的位置显示。

我们还可以为应用程序添加一些诸如缩放效果,地图标注,文本等功能。

添加缩放控件:

添加Map Overlay:

下面的代码是定义一个overlay:

上面的这个overlay会在地图上显示一个“Here I am”的文本。

让我们把这个overlay添加到地图上去:

3、 Google MAP电子地图显示处理

利用Android平台开发导航地图过程中,主要采用Android提供的MapView和MapActivity这两个类实现。其中MapView是一个展示地图的视图,它可以获取键盘事件(onKeyDown和onKeyUp)来支持地图移动和缩放功能,同时也支持多层Overlay,可在地图上画坐标、写地名、画图片等。MapView只能通过MapActivity来建立,因为MapView需要在后台使用文件系统和网络,所有这些线程需要在Activity的生命周期中被控制。

第五部分、总结

利用android操作系统在智能予机上实现了GPS导航的应用开发,利用终端各功能模块的整合,配合相应的软件驱动,完成指定的功能,如对定位信息进行数据处理,计算所在位置的经度,纬度,海拔,速度和时间等,并实时将定位的参数传输到服务器管理平台,方便管理人员对相关车辆进行实时监控与调度,提高T作效率和运营效益。因为GPS系统具有全天候、全球覆盖、三维定速、定时、高精度、快速、省时、高效率、应用广泛、多功能等特点,因此,可广泛应用子陆地、海洋以及航空航天等。而能实时更新的Google Map地图的使用,更能直观地将丰富的城市地图、全国的公路网图、加油站、便利商店、政府机关、旅游景点、餐馆、医院、停车场等信息同步地在智能手机卜显示出来,方便使用者(不仅仅是汽车驾驶员)进行查询参考,这是以后Android个性化应用开发,这将是一个潜力巨大的市场,会吸引无数软件开发厂商和开发者投身其中。

THE END
0.AndroidGPS允许使用GPS定位信息if(requestCode==0x123&&grantResults.length==1&&grantResults[0]==PackageManager.PERMISSION_GRANTED){// 创建LocationManager对象locManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);LocatjvzquC41yy}/lrfpuj{/exr1r1jg6A
1.Android系统GPS定位实现android查找定位本文详细介绍Android设备上实现GPS定位的方法,包括三种定位方式的特点、获取经纬度的具体步骤、监听位置变化的实现,以及必要的权限配置。 一、定位方式简介 定位基本分为三种方式,特点如下: 1.wifi定位:IP地址定位,根据ip地址查询实际的地理位置,因为动态获取ip的操作,定位不准确 jvzquC41dnuh0lxfp0tfv8W[uj{bpp4ctvodnn4fgvgjn|4;24<64?:
2.AndroidGPS定位功能实现示例简介:在Android平台上实现GPS定位是开发位置相关应用的基础。本文通过”LocationDemo”示例程序,指导开发者如何在Android Studio环境下通过GPS服务获取设备的实时经纬度坐标,并详细介绍了实现该功能的必要步骤和关键知识点。包括如何在AndroidManifest.xml中声明权限、在Activity中处理权限请求、获取LocationManager实例、实现LocatijvzquC41dnuh0lxfp0tfv8|gkzooa;;;298358ftvkimg8igvcomu866;5:46:>
3.Android中GPS定位的用法实例Android这篇文章主要介绍了Android中GPS定位的用法实例,是Android程序设计中比较经典的应用,需要的朋友可以参考下jvzquC41yy}/lk:30pku1jwvkerf1>99234ivv
4.授權Google地球存取你的位置|GoogleEarth|Googlefor視需要開啟「使用精確位置」。否則系統會使用概略位置。 在地球上尋找自己 在Android 手機或平板電腦上,開啟 Google 地球應用程式。 輕觸藍色的「探索地球」按鈕。 輕觸右下方的「我的位置」圖示location_searching。 變更定位模式 你可以變更定位模式,確保 Google 地球能隨時找到你的位置。 jvzquC41fg|fnxugtu4hqxlng0io1vfru1jpe~rgpvgukxs1gcxuj8feegyt/utecvoppHuncvlptvBcpfxpkm+jn?€i/}|
5.Android编程之实现GPS定位(转)androidsdk设置mp4gps文章浏览阅读827次。本文详细介绍了如何在Android环境下使用SDK开发应用程序,特别是如何获取设备的GPS位置信息,并展示了如何将这些信息显示在自定义视图上。通过创建Activity、使用XML布局以及重写View的onDraw方法,开发者可以实现Android程序的GPS定位功能。jvzquC41o0hmqp3euft/pny1eciuw|1ctzjeuj1fgzbkux196;68@<;
6.AndroidGPS定位步骤Android GPS定位步骤 为确定设备所在位置,需要进行以下步骤的操作。 提供位置服务,需要获得LocationManager对象。使用LOCATION_SERVICE参数调用android.app.Activity.getSystemService()函数获取一个LocationManager实例。 android.app.Activity.getSystemService()函数代码如代码所示。jvzquC41o0nr{s3eqo5fok4Eqn{np86:90nuou
7.基于谷歌地图的Android导航应用设计AET越来越多的互联网应用被移植到智能手机中来,导航软件在智能手机中的应用成为了研究热点之一。在目前大部分智能手机都提供GPS定位服务以及3G 无线网络越来越普及的双重驱动下,在Google 地图中实现导航服务,是具有可行性的。 本文提出并实现了一种基于Google Map Api 的Android导航应用,能够给用户提供人性化和智能化的jvzq<84o0enjpjfgv0ipo8ftvkimg86842<2
8.Android通过GPS获取定位的方式androidgps定位在Android应用中获取GPS定位需要添加ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限,然后创建定位服务类,通过LocationManager获取实例,注册LocationListener来处理位置更新。文章还提到了获取最新位置的方法以及需要注意的设备支持、用户授权和电量问题。此外,建议开发者扩展技能,关注架构设 jvzquC41dnuh0lxfp0tfv8~kjcttu8ftvkimg8igvcomu86537?8597
9.GNSS原始测量数据|Sensorsandlocation|AndroidDevelopers您可以使用 Android Studio 构建一个应用来捕获 GNSS 原始测量数据和其他位置数据,并将其记录到一个文件中。如需查看此类应用的示例源代码,请参阅GPS 测量工具。 GoogleGNSSLogger是一款使用此功能开发的示例应用。要通过该示例应用获取 GNSS 输出,您的设备必须支持 GNSS 原始测量数据。 jvzquC41fg|fnxugt0gof{tkf0ipo8igxgrpr8xgpuusu6fpf/rpejykqp5tgwxqtu5hp|xAjnC{j6hp
10.android手机GPS快速定位方法(转)szw0127彻底解决9108GPS定位慢之末日秒定解决方法论坛里有关这样的帖子不多,跑了很多冤枉路。这不,跑了N天,用尽了坛子里及网上的大部分方法,终于可以秒定了自己的9108GPS了。以前用的是IP3gs,越狱后,用的是高德地图,GPS那个叫快啊,现在入手9108,原来自带的上限导航觉得不jvzquC41yy}/ewgnqiy/exr1kegokmt1ctzjeuju15949A720jznn
11.AndroidGPS定位详解及实例代码AndroidAndroid还不仅仅是这些,视图类型也可以混合使用。Android还带了一个widget库,这个类库包括了滚动条,文本实体,进度条以及其他很多 控件。这些标准的widget可以被重载或被按着我们的习惯定制。现在让我们来进入我们的例子。二、Android GPS定位实例这个演示应用程序将演示了用户的当前的经度和纬度(在文本框中显示)。onjvzquC41yy}/lk:30pku1jwvkerf1B8:694ivv
12.AndroidGPS定位的实现(1)老码农豆豆Android GPS 定位的实现(1) 今天弄了一个多小时,写了一个GPS获取地理位置代码的小例子,包括参考了网上的一些代码,并且对代码进行了一些修改,希望对大家的帮助。具体代码如下: 要实用Adnroid平台的GPS设备,首先需要添加上权限,所以需要添加如下权限: <uses-permission android:name="android.permission.ACCESS_FINE_jvzquC41yy}/ewgnqiy/exr1hn`drsdkp5btlmkxg532:513452886;2:;2:7mvon
13.Android中实现GPS定位的简单例子Android这篇文章主要介绍了Android中实现GPS定位的简单例子,例子逻辑清晰,但相对简单了些,需要的朋友可以参考下 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用! 【如果你想靠AI翻身,你先需要一个靠谱的工具!】 今天弄了一个多小时,写了一个GPS获取地理位置代码的小例子,包括参考了网上的一些代码,并且对代码进行了一jvzquC41yy}/lk:30pku1jwvkerf1>72554ivv
14.移动端性能测试之Android应用性能优化测试篇其实我们一款应用耗电量最大的部分不是UI绘制显示等,常见耗电量最大原因基本都是因为网络数据交互、GPS定位、大量内存性能问题、冗余的后台线程和Service等造成。 Android应用耗电量优化建议: 优化电量使用情况我们不仅可以使用系统提供的一些API去处理,还可以在平时编写代码时就养成好的习惯。具体的一些建议如下: jvzquC41fg|fnxugt0nvc€jk0eun1ltpuwsft8hp1huswv4vqrod1;7:
15.单杰:从专业遥感到大众遥感城市交通拥堵现象严重影响了车辆行驶,而传统导航系统并没有考虑实时交通状况,难以为使用者推荐最佳的行驶路线。印度学者Dhar等提出了一个大众共享交通信息的手机导航系统[13]。该系统旨在利用大量用户上传的GPS定位信息估计各个交通节点的拥堵情况,为使用者推荐最省时的行驶路线。利用该系统,他们比较了谷歌地图推荐的3条行jvzquC41ocoo0|li0ynv0niw0et0kwkq13979862654ivv
16.【AndroidApp】GPS获取定位经纬度和根据经纬度获取详细地址讲解简介:【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细) 需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、获取定位信息 开启定位相关功能只是将定位的前提条件准备好,若想获得手机当前所处的位置信息,还要依靠下列的3种定位工具。 jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1:8;:;<9
17.Android通过GPS获取定位的流程步骤AndroidlocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);在上述示例中,我们使用 LocationManager.GPS_PROVIDER 作为位置提供者,表示使用GPS定位。0, 0 表示最小时间间隔和最小距离变化都为0,即实时获取位置更新。如果要准确获取地理位置,尽可能保证获取的位置信息不为空,则需要用到jvzquC41yy}/lk:30pku1ywqitgn1;>364
18.Android中GPS定位的简单应用MSTKAndroid中GPS定位的简单应用 在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void android.location.LocationManager.requestLocationUpdates(Stringprovider, long mijvzquC41yy}/ewgnqiy/exr1ouzl1y456;75;=3jvor
19.androidGPS定位及空值报错测试及分析qishangui(true);//允许产生开销criteria.setPowerRequirement(Criteria.POWER_LOW);//消耗大的话,获取的频率高criteria.setSpeedRequired(true);//手机位置移动criteria.setAltitudeRequired(false);//海拔//获取最佳provider: 手机或者模拟器上均为gpsString bestProvider = manager.getBestProvider(criteria,true);//使用GPSjvzquC41yy}/ewgnqiy/exr1iwohg8ftejowg8723451:85:14<39>750jznn
20.10.14AndroidGPS初涉·Android基础入门教程·看云在我们使用GPS定位前的第一件事应该是去判断GPS是否已经打开或可用,没打开的话我们需要去 打开GPS才能完成定位!这里不考虑AGPS的情况~ 1)判断GPS是否可用 private booleanisGpsAble(LocationManager lm){returnlm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)?true:false;} jvzquC41yy}/mjsenq{e0ls1mctdnxzf1ctetxnf/v{uq{ncn1>84A:
21.AndroidGPS定位(获取经纬度)android获取经纬度文章浏览阅读7.6w次,点赞24次,收藏114次。本文详细介绍Android平台下GPS定位原理及其实现方法,包括权限配置、关键类与接口介绍、定位流程解析及示例代码。jvzquC41dnuh0lxfp0tfv8z234>229721cxuklqg1fkucrqu17863@>98
22.更改位置信息设置|Sensorsandlocation|AndroidDevelopersPRIORITY_HIGH_ACCURACY- 使用此设置可以请求尽可能精确的位置信息。使用此设置时,位置信息服务更有可能使用 GPS 来确定位置。 PRIORITY_LOW_POWER- 使用此设置可以请求城市级别的定位精确度,即大约 10 公里。这是一个粗略的准确度,消耗的电量可能会比较少。 jvzquC41fg|fnxugt0gof{tkf0mpqpqg0et0fn{gnqv0unsuqty.cwi/nqibvrtp1nudc}nqp1iicwlg/nudc}nqp/yfv}npiu