Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

We all know that GPS draws a considerable amount of battery power. Does anyone know of any studies that test the "granularity" of a GPS signal with how much battery is consumed?

I'm not talking about the device-GPS vs cell network triangulated GPS either, the applications in Android can select a distance (1 meter, 5 meters, 500 meters, etc) at which they will be notified of a changed location. I imagine that regardless of what this value is set at, the GPS is actively getting a new location very rapidly, and only notifying the app as soon as it wants.

Does anyone know of any studies for power draw with different GPS settings? Thanks!

share|improve this question

2 Answers 2

up vote 5 down vote accepted

GPS is a passive technology - it doesn't get notified of a new position, it works it out by listening to the GPS signals it receives and doing some maths.

The options in GPS apps that allow you to choose the minimum distance are there to make your location appear more stable - small variations in your calculated location would otherwise make for lots and lots of waypoints on your track (if that's what you're recording), making for a much increased filesize.

Depending on what your app does when you change position, you might get some power savings by increasing this value, but that would be down to the app doing less with the position once it has it, rather than by getting your position less frequently.

The Glympse app, for example, continually sends your position to the Glympse servers. If you could choose how often to update that position you could maybe save some power, but you wouldn't be saving any power on the GPS side of things.

share|improve this answer
    
Matt, thanks for the answer. I assumed that the GPS was basically a linear cost, and the rate at which it was awakening my listener was the real variant in this. Do you know of any research on power drawn for a constant GPS who's not moving vs one which is constantly triggering listener updates? –  Adam Jan 19 '11 at 17:22
    
@Adam: Sorry, I don't know of anything that will give you absolute numbers. If you accept that the GPS is a fixed power cost, then you would assume that the secondary cost of doing 'whatever you do with the updates' is going to drop to almost zero if you don't move. YMMV - best thing is probably to test it out yourself :) –  Matt H Jan 24 '11 at 15:40

First reason, the GPS can reduce power consumption if the GPS is turned off, however if the GPS is turned off and the user moves too far away, the GPS will have to redo a lot of initialization calculations (which can take about 5 minutes in typical GPS device, though can be slightly faster if the device knows an approximate location or if it does not need to be too accurate), this initialization wastes a lot of power and so Android usually keeps the GPS turned on for a while. The GPS driver uses those parameters to make decisions whether to turn off GPS or keeping it turned on will be much more economical.

Second reason, poorly written applications are much more difficult to write with how Android's GPS API is. If the GPS driver simply fired callbacks as fast as it can, then poorly written software can just process as much as it can, instead of filtering only those that it needs. Also, this kind of API forces programmer to explicitly think about their frequency and accuracy requirement, and allow the driver to better manage power vs accuracy tradeoff.

In many cases, in areas with high cell tower density, Android might decide to simply use network location and on other places to use GPS when the network location is unreliable. All that can be done transparently to application programmers.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.