Gregory Hildstrom Projects Publications Resume Links Contact About Google+ Facebook Youtube Donate




Android Battery Life


I switched from iPhone to Android in September 2012 after having an iPhone (3G then 4) for about four years. I develop on Linux at work all day and I liked many of the features on the Nexus 7 tablet my brother let me play with. The iPhone 5 launched and looked nice, but it didn't really wow me. I also liked the idea of Android's cross-platform development environment, no Apple Mac computer required. Curiosity finally got the better of me and I got a Google/Asus Nexus 7 tablet and then a Google/Samsung Galaxy Nexus phone soon afterward. Android Jelly Bean 4.1.1 is fast, feature-packed, and intuitive, which was a bit of a surprise. There was a small learning curve, but nothing a day of tinkering and a few Google searches couldn't handle.

Android phones have a reputation for being battery hogs. I had the phone for about a week and loved it, but I was starting to think there might be something to the battery life myth. I thought wifi and sync may have been to blame, so I switched them off, hardly touched the phone, and even forced it to 2G cellular, but battery life was still terrible at around 12 hours. After a bit of tinkering, I finally achieved 2+ day battery life without crippling the Galaxy Nexus' great features. Wifi is a lower energy per bit link than any cellular data connection, so leave it turned on if you have access to it. Access points are automatically associated with locations, which allows the GPS chip to be switched off to save power without disabling location services. Sync, the two circular arrows in the power widget, only affects apps registered as syncing apps like email, gmail, g+, calendar, facebook, etc. The critical thing to realize is that Android is a true multitasking operating system and apps do not have to be flagged as "sync" apps to run services in the background. I think app background services are much more prevalent on Android than iOS, which only seems to have a concept of apps registering in "notifications" or apps continuing to run while minimized. This contributes to the poor battery life perception of Android. That is why the breakdowns in settings->battery and settings->apps are so awesome for keeping tabs on things. I noticed that the Sygic app (offline maps & navigation) was eating quite a lot of battery even though I was not navigating anywhere and I had closed it after testing it. A few times I checked and it was not listed as a running service; its service had been cached and was in the cached processes list instead. I also noticed a few games were running background services, which is ridiculous. I do not understand why games like Dead Trigger and Wind-up Knight want to run a background service; it should be easy to disable in the app configuration and it should be opt-in instead of opt-out. I had installed well over a hundred apps and uninstalled others, without rebooting for two weeks, since I did the system upgrade to Jelly Bean. Also, I noticed app update notifications pretty frequently. So, I set out to make some changes to improve battery life. Here's how I configured it:

* power control widget on main screen
** automatic screen brightness
** sync on
** gps on
** bluetooth off
** wifi on

* uninstalled "the weather channel" app
** background service
** its widget requires gps
** the android news & weather widget is great and I chose 3-hour update frequency
** the google now weather card is also great

* changed settings in sygic
** connection
*** unchecked automatic sign in
*** removed login
*** unchecked traffic data
*** unchecked news & updates
** battery management
*** made sure background navigation was unchecked
*** made sure settings were set to optimized

* settings->wireless&networks
** nfc enabled

* settings->display
** static plain black background
*** white and color eat battery on amoled
** two minute sleep

* settings ->location services
** all three boxes checked

* settings->security
** pin
** power button instantly locks

* settings->backup&reset
** back up checked
** automatic restore checked

* settings->accounts->corporate
** calendar sync is on
** contacts sync is off
** email sync is off
** inbox check frequency never

* settings->accounts->google
** sync
*** syncing everything except magazines and movies
** maps & latitude
*** location reporting enabled
*** report from this device checked
*** enable location history checked
** location
*** google's location service checked
*** location & google search checked
** google+
*** notifications on
*** messenger on
*** hangouts on
*** instant upload on

* settings->date&time
** automatic date & time checked
** automatic time zone checked

* changed settings in play store
** unchecked notifications
** unchecked auto-update apps
** checked update over wifi only
** unchecked auto-add widgets

* home screen
** calendar widget
** news & weather widget
** power control widget

* left 1 screen
** shazam widget
** soundhound widget
** sound search widget
** a few of my audio-related app launchers
Then I rebooted the phone and fully charged it overnight. I used email a few times, used messaging a few times, talked on the phone for 30 minutes, read my facebook news feed and looked at some pictures twice, read my google+ news feed and looked at some pictures twice, and updated a grocery store list on google drive half a dozen times while I shopped. The next day I installed two apps, used email a few times, used messaging a few times, and I went through my settings a bunch while writing this. Battery life was greatly improved because of my changes and probably because a few background services did not restart after the reboot. Unfortunately, even with automatic stuff disabled in the app configuration, Sygic service continued to wake up and do something, and it continued to eat battery. Forcing that service to quit did nothing; it would just relaunch later and resume. Sygic ate 18% of my battery over the entire discharge, after applying the settings above, and I never even launched it. Right click on any of these images and select "view" or "open image in a new tab" to view the full-resolution version. Here were my results:


Next, I uninstalled Sygic, cleaned up after it, and tried Navigon. Navigon has similar options for disabling traffic and updates, but it also has another checkbox for disabling Internet communication. After closing the Navigon app, it did not seem to have any sort of background service and it did not eat any battery during my next full discharge cycle. Here were my results:


Now I am very happy with my battery life. I have been using the phone very similar to how I used my iPhone 4, with the exception of the calendar and weather widgets, and I get similar battery life. I usually have Messaging, Gmail, Chrome, Google+, and Facebook apps open and minimized. The battery life is actually pretty impressive considering the difference in hardware compared to my iPhone 4; the Galaxy Nexus has a bigger screen, more pixels, faster cellular data radio, more processor cores, and higher peak processor clock speed. I'm also happy that the Dead Trigger and Wind-up Knight services did not return automatically; I'm guessing that they launch when the game launches and remain afterward. I recommend taking a periodic look at Settings->Battery and Settings->Apps->RUNNING. I'm ok with some extra unnecessary stuff in Settings->Apps->CACHED as long as it does not end up with a significant percentage of battery consumption. After getting my Galaxy Nexus phone dialed in, I applied the same configuration strategy to my Nexus 7 tablet with great results.