Why do navigation apps drain your battery?

I went to a survival run training camp this last weekend (which was awesome!), but I didn’t know if they had power or not, so I didn’t bring my lightning cable[1]. I used Google’s app to navigate the 1.5 hour drive consisting of mostly long highway stretches (15 miles here, 30 miles there, etc). This navigation drained my battery by approximately 30% one-way, for a total of 60% both ways, leaving me less power for the trip than the transit.

Being an iOS developer, I know a fair amount about location power management, and this stack overflow post is basically correct in its listing of GPS accuracy modes:

  1. GPS – kCLLocationAccuracyBestForNavigation;
  2. GPS – kCLLocationAccuracyBest;
  3. GPS – kCLLocationAccuracyNearestTenMeters;
  4. WiFi (or GPS in rural area) – kCLLocationAccuracyHundredMeters;
  5. Cell Tower – kCLLocationAccuracyKilometer;
  6. Cell Tower – kCLLocationAccuracyThreeKilometers;

Obviously, if you’re driving in a city and blocks matter, you need high accuracy. I have no problems with running the GPS all the time in a city. But if I’ve just been told to drive 30 miles – just over 48 kilometers. Turn the GPS off. Kilometer accuracy is more than good enough to make sure I’m not wildly off track and to know when I’m getting close, and using the GPS takes WAAAY more power than using cell towers (especially since the phone has to talk to the cell towers anyway). Seriously, leave the GPS off until I’m near the next turn![2]

[1]In retrospect, bad idea. Always take your charger just in case.
[2]The only reason I can see to use GPS on long highway stretches is if the phone is actively running the app because someone is staring at the little GPS dot the whole time. If the user wants to stare at their dot for 30 miles and use the energy to do so, fine. But the app knows when it’s been backgrounded; It knows when nothing interesting will happen for miles and miles. Please: Leave the GPS off until I’m close.

About Bion

I'm a software developer at Modo Payments, a mobile payment provider. When I'm not hacking away the office, you I'm usually at home hacking on something else. Or practicing Aikido. Anyway, I just post things here that Google couldn't help me with, so maybe it'll help you in the future. Since you're reading this, I guess it worked :)
This entry was posted in Technology and tagged , . Bookmark the permalink.

2 Responses to Why do navigation apps drain your battery?

  1. Drew says:

    High accuracy matters not only if you are in a city; it matters in any situation where you can take a wrong turn. (That’s why they call it: turn-by-turn navigation.) So even if you are kilometers away from your destination, but you can take a wrong turn at any number of prior roads, accuracy matters.

    You might be surprised to learn how inaccurate the GPS receiver in a mobile phone really is. The GPS readings are routinely off by thousands (plural) of feet. The way accuracy is improved to what iOS reports to applications is actually one of the best kept secrets in iOS. Firstly, by taking repeated readings over long periods of time. Secondly, by integrating inputs from a wide variety of sensors, including the accelerometer, magnetometer, and gyroscope. Thirdly, by performing vector analysis, such as motion prediction, and, on iOS 6, consulting map data on Apple servers to compute a vector field to weight the results, including comparing against the readings of prior drivers.

    You’ll notice that, per the SO post, GPS flips on at kCLLocationAccuracyNearestTenMeters, which leaves two more accurate power grades. How are these two more accurate grades achieved? They are achieved solely on the basis of enabling additional sensors and performing more involved data crunching. In other words, perceiving the GPS radio to be the big bad wolf in battery life is inaccurate.

    But that aside, to achieve a power grade in which GPS is not constantly on, you need to step down to kCLLocationAccuracyHundredMeters in an urban area, which is entirely insufficient to place you on a street in a city environment, or kCLLocationAccuracyKilometer on a rural area, which is laughably insufficient.

    If you want to reduce power usage, don’t use turn-by-turn navigation on long trips. Use some other application that does not try to reroute you if you make a mistake.

  2. Efi says:

    Hi Guys,
    Using a GPS really drains the IOS battery as you said.
    In IOS 7, we found that you have to keep the GPS alive all the time, because there is this 3 minutes approach, that does not enable you to use it again when it is closed.
    My app was initially planned to “wake” the GPS every 2 minutes, check for speed for 20 sec. , and get it to sleep again for 2 minutes.
    do you know of a method that will enable not to drain the Battery in these 2 minutes? (we thought of using the “3 kilometers” accuracy for 2 minutes, and then for 20 seconds use the “Best” accuracy, but its not really helpful.
    It will be lovely to hear your thoughts.

Leave a Reply

Your email address will not be published. Required fields are marked *