android手机使用GPS定位会非常费电。google工程师在quora上做了具体的解释,有兴趣可以看看

https://www.quora.com/Battery-Life/Why-does-GPS-use-so-much-more-battery-than-any-other-antenna-or-sensor-in-a-smartphone

GPS is expensive because it is a very slow communication channel—you need to communicate with three or four satellites for an extended duration at50 bits per second. There is no time division as in other communication mechanisms, necessitating powering the antenna for the duration of any communication. Worse, while the GPS is on, the system cannot enter a sleep state. Mobile devices such as Android and the iPhone achieve their battery life largely because they can aggressively and quickly enter into and exit from sleep states.GPS prevents this.

GPS's battery draining behavior is most noticeable during the initial acquisition of the satellite's navigation message: the satellite's state, ephemeris, and almanac. Acquiring each satellite takes 12 to 30 seconds, but if the full almanac is needed, this can take up to 12 minutes. During all of this, your phone is unable to enter a deep sleep. A-GPS (Assisted GPS) partially solves this, by sending the navigational message to your mobile device over your cellular data network or even Wi-Fi. As the bandwidth of either of these greatly dwarves the 50bps of the GPS satellites, the time spent powering the GPS antenna or avoiding deep sleep is greatly reduced.

Nonetheless, even with A-GPS, using your GPS is a noticeable battery hog. This is again due not to powering the GPS itself, but by preventing the phone from going to sleep. Compounding the cost, most mapping software is processor-intense. A well-designed app can make a significant difference here; Google Maps boasts several optimizations to reduce battery consumption from GPS usage.

1、解决方法就是这个帖子里面讲的,每隔一段时间才监听一次GPS信息。当监听到GPS信息后,关闭GSP,设置一个定时器,等待若干时间后重启GPS。

来源

https://stackoverflow.com/questions/7872863/keeping-a-gps-service-alive-and-optimizing-battery-life

2、及时注销定位监听

在获取到定位之后或者程序处于后台时,注销定位监听,此时监听GPS传感器相当于执行no-op(无操作指令),用户不会有感知但是却耗电。

public void onPause() {super.onPause();locationManager.removeListener(locationListener);
}
public void onResume(){super.onResume();locationManager.requestLocationUpdates(locationManager.getBestProvider(criteria, true),6000,100,locationListener);
}

来源http://www.jianshu.com/p/5d83d8649c98

3、设置较长的GPS更新的最短时间,设置最少间隔1秒钟

Android程序调用GPS时,都是直接用函数

public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)

其中,minTime是间隔多长时间获得一次GPS更新,minDistance是间隔多少距离获得一次GPS更新。

注1:两者都设置时(都不为0),那必须在两个条件同时满足时才通知我们的应用。
注2:由于长期使用GPS模块非常耗电,所有Android建议我们在允许的范围内尽可能地将minTime设置长一些(特别是后台的线程)
注3:当minTime设置不为0(哪怕是1秒),每隔一秒尝试去获取gps数据时都要重新搜星(也就是不会基于上次的定位快速优化并提高精度)。

http://blog.csdn.net/zmpcwl/article/details/10594305

百度地图或者其他地图也是类似的。

4、用Battery Historian分析电池消耗。

为了搞清楚持续监听和间隔监听两种方法的耗电情况,做了一次对比

第一张图是持续监听,调用requestLocationUpdates之后,一直在监听,不停止。可以看到08:58:21到09:10:48这段12分钟时间gps一直在耗电。

第二张图是间隔监听,调用requestLocationUpdates之后,等到获得第一个正确的gps位置之后就调用removeGpsStatusListener停止监听,然后在5分钟之后重新监听。可以看到20:58:21到20:59:00这段时间gps在耗电,然后在后续的5分钟没有gps消耗,在21::04:05开始重新监听,开始了gps消耗,15秒后获得了新的gps地址,又停止监听,gps消耗又没有了。

android手机gps定位开发省电要点相关推荐

  1. android功耗(23)---gps定位开发省电要点

    android手机gps定位开发省电要点 android手机使用GPS定位会非常费电.google工程师在quora上做了具体的解释,有兴趣可以看看 https://www.quora.com/Bat ...

  2. android 手机 GPS定位

    欢迎转载,转载请注明出自:www.androidkaifa.com,安卓开发网            开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面www ...

  3. android gps定位太慢,小米手机gps定位慢怎么解决?小米4解决GPS搜星慢的方法

    经常使用小米4进行导航或者地图的用户可能会发现,小米4的搜星比较慢,有时候明明是晴朗开阔的天气,却迟迟无法定位GPS.那么小米手机gps定位慢怎么解决?其实小米4的搜星慢是软件优化的问题,可以通过打补 ...

  4. Android系统GPS定位实现

    一.定位方式简介 定位基本分为三种方式,特点如下: 1.wifi定位:IP地址定位,根据ip地址查询实际的地理位置,因为动态获取ip的操作,定位不准确 2.基站定位:根据基站(信号塔)的个数以及手机与 ...

  5. 无需任何费用的手机GPS定位

    无需任何费用的手机GPS定位 GPS定位不是你要告诉别人你所在的位置作标,而是你自己要知道当前所在的位置以及周围环境,这就要求你至少有一个GPS设备,所幸的是一般智能手机都有这个功能,关键是怎样利用手 ...

  6. ionic cordova 引用百度地图以及利用手机GPS定位

    首先引入百度地图 在html文件里面加入 <head> <script type="text/javascript" src="http://api.m ...

  7. Android手机系统软件apk开发制作

    Android手机系统软件apk开发制作 随着Android安卓系统的日益广泛使用,越来越多人发现手机潜在的力量,当然手机应用软件app的朝阳也随之并进,手机app软件潜在着无线巨大的发展空间和利益金 ...

  8. 最全的解决方案,安卓手机gps定位慢怎么办?轻松几步搞定

    http://bbs.hutoufeng.net/forum.php?mod=viewthread&tid=18774&page=1&extra=#pid20004 近日我在论 ...

  9. 华为P9怎么修改AGPS服务器,如何提高华为P9的GPS定位服务 提高手机GPS定位服务教程...

    2016-11-09 17:06:09 如何提高华为P9的GPS定位服务 提高手机GPS定位服务教程 GPS全球定位系统,大家因该都知道手机都有这个功能,rom基地小编今天就来跟大家讲解一下如何提高G ...

最新文章

  1. 校招9.28笔试题:1-N 的幂集中集合个数 去除含相邻数字的集合
  2. 利用SQl对数据库实行数据拆分与组合
  3. 【分析】腾讯年终总结:微信用户一天到晚都在干啥
  4. http 状态码 504 502
  5. vmware克隆linux虚拟机网卡无法上网的解决办法
  6. CoreData 从入门到精通(三)关联表的创建
  7. Lua的协程和协程库详解
  8. 尚硅谷mysql高级思维导图_幕布高级版,不花钱也能用!极简大纲笔记 | 一键生成思维导图...
  9. 如何解决使用PCS7时报警无法确认的问题?
  10. 机器人动力学——拉格朗日法
  11. C++实现【启发式搜索】算法
  12. 线性代数 or 量子力学 ?(七——薛定谔方程详解)
  13. 如何正确nandflash的块地址和页地址
  14. 计算机专业总人数所占比例公式,excel统计数据所占比例的教程详解
  15. Spring Security,没有看起来那么复杂(附源码)
  16. 【转载】专家答疑:Silverlight的用户体验优化
  17. 刺激战场国际服至暗之夜僵尸模式通关技巧:不用卡点也可以?
  18. Tushare安装使用经验分享
  19. C++语法基础—— 判断语句习题——ACwing
  20. metalink简介

热门文章

  1. python将中文数字与阿拉伯数字互换
  2. Swift控件封装-分页控制器
  3. CSGO地图制作:优化编译时间
  4. 【小技巧】通过MATLAB检测工程中是否有文件夹,并创建文件夹
  5. linux使用模板函数,Linux常用C函数
  6. springboot+websocket+layui制作的实时聊天室,后端开发入门样例
  7. 办公计算机配置单,普通办公电脑怎么配?office三件套办公电脑主机配置推荐
  8. 考研数学如何整理错题笔记?140分学长总结的模板,拿走直接用(含错题笔记)
  9. Socket.io解压缩
  10. USB2.0 扩展器(一拖四)原理图、PCB,可打样使用