The definitive guide on hacking the Nexus 4, part 8: How to maximize and optimize battery life
The definitive guide on hacking the Nexus 4, part 8
Legal disclaimer: We are not responsible for any damage or loss to your device or computer system. Therefore, should you decide to follow these steps, you do so at your own risk and peril and agree to hold us harmless from any damage or loss you may experience. Should you disagree with the foregoing, please do not read any further.
Unfortunately, there’s no magic app that will double the battery life of your Nexus 4, but there are certain ways to minimize power consumption. We don’t necessarily suggest that you do to do all of these steps as your phone should still be enjoyable to use. Therefore, we’re only giving you the following list so that you pick and choose which methods you would like to adopt. Battery savings could be very minimal depending on the method, but together, hopefully it’ll make a difference. If you have any questions or comments or other battery saving ideas, please leave a note below and we’ll add your suggestion.
1) Lower the screen brightness
2) Minimize LTE/Bluetooth/GPS/NFC/Wifi usage
3) Disable Google Now
4) Enable Airplane Mode in radio dead zones
5) Monitor battery usage
6) Monitor CPU usage
7) Disable Autosync
8) Use a static wallpaper
9) Uninstall unnecessary apps
10) Lock timeout
11) Disable widgets that you don’t need
12) Do not use a 3rd party task killers to kill apps
13) Upload and sync only on Wi-Fi
14) Turn off sounds
15) Turn off Vibrate and Haptic Feedback
16) Install an ad blocking app
There are various apps that can block most ads in Android. I use something called AdFree (free), but a good alternative is AdAway (free) and Adblock Plus. These apps require root access to run. They will update the HOST file in Android, therefore blocking most ads from loading. Less internet requests should mean less battery usage. Google removed all 3 apps from the Google Play store (March 2013), therefore I updated the links to their homepages. You can just “sideload” the apps.
17) Set the date and time manually
This is probably overkill, but you can disable automatic date & time and time zone and set the time, date and time zone yourself in order to reduce internet updates. Go into “Settings” then “Date & time”
18) Turn Android debugging off
The argument goes that by enabling USB debugging, it starts the ADB server daemon and it’s waiting for requests. We’re not sure if there is any negative battery impact by leaving it enabled, but just to make sure, we’ll disable USB debugging. Go into “Settings” then “Developer Options”
19) Turn auto rotate screen off
You can also consider disabling auto-rate. When auto-rotate is enabled, internal sensors are activated to keep track of its angle. You may save some battery by disabling it.
20) Disable location settings
You can disable “Access to my location”, therefore apps won’t be able to use GPS or google’s location services via Wi-fi and cellular towers. If you need to use Google Maps or Navigation, just enable GPS as usual.
21) Install a custom kernel
A custom kernel can have a lot of positive effects on battery life as they’re optimized for that purpose. You can also try Faux123′s custom kernel if you’re currently using Franco’s kernel. We’re not sure which kernel is more battery efficient, but feel free to try yourself and let us know. Please note that if you’re already running the Franco kernel, you need to flash the latest CyanogenMod nightly BEFORE you flash the Faux123 kernel, otherwise you may get stuck in a bootloop.
22) Install an efficient launcher
Nova Launcher Prime is coded very efficiently and one of the most popular. It can potentially save some battery life. Other alternative launchers can be found here.
21) Disable animations
No matter which launcher you’re using, try to disable the scroll effect animations when changing home screens and between app drawer screens. The less animation, the better.
22) Reduce the number of home screens
If you can, reduce the number of home screens. We only have 1 blank home screen.
24) Add a “Go to sleep” button
Add a “Go to sleep” button to your Quick settings panel. Instead of pushing the power button and hoping that the phone goes to sleep, you can direct the phone to go to sleep via the Quick settings panel. To add the button (assuming you’re using CyanogenMod +10.1), go into “Settings”, then “System” then “Quick Settings panel” then “Tiles and layout” then push “+” to add the “Go to sleep” button.
25) Disable backup my data
You can disable “backup up my data” as well. Before you do a factory reset, you should turn this back on in order to resync your data.
26) Log out of Google Talk
Google Talk logs you in by default, therefore it keeps a constant data connection. If you don’t use Google Talk often, sign out.
27) Turn off LED notifications
Some say that the little LED light prevents the phone from sleeping. You can experiment and decide for yourself. Go into “Settings” then “System” then “Notification Light”.
28) Turn off battery life if low.
There’s no reason to have a light blink when your battery is low. The light will only make you drain more battery. Therefore, go into “Settings”, then “System” then “Battery Light”
29) Disable notifications in Facebook
You should disable Messenger location services (which tells people where you are via GPS when you send someone a facebook message) and you can consider disabling notifications. You won’t receive facebook notifications anymore, but you can still update facebook manually when you’re in the facebook app. A lot of people advise against use the facebook app entirely if one is concerned with battery life and to only use the facebook mobile website, but we think that if you disable messenger location services and notifications, it should be okay to use. In the facebook app, go to “Account” then “App Settings”.
30) Lowering the minimum clock speed
Reports seem to suggest that there is very little benefit in undervolting the CPU clock speeds, so we’re not going to do this, but we wanted to let you know that the option is in franco.Kernel updater. If you do want to give it a try, check out this thread at XDA.
32) Turn off logs
You can disable certain logs in franco.Kernel updater to save a little bit more battery.
33) Use a conservative Governor
If you’re using Franco’s kernel, try the “Conservative Governor” for the maximum battery life. If your phone seems less responsive, you can switch it to “On Demand Governor” afterwards. We haven’t noticed any sluggishness with the Conservative Governor, so it should work fine for you as well. If you don’t see “Conservative” as an option, it probably means that you’re not using Franco’s kernel. If you updated the CyanogeMod nightly build, it probably installed the stock CM kernel. If you want to try the stock CM kernel, you can try using “Powersave” Governor. Essentially, it locks the maximum clock speed to the lowest clock speed you have enabled. If you’re using Faux123, set the governor to “Intellidemand” for the best battery life. You can follow Faux123′s recommended settings here.
34) IO Scheduler
The input output scheduler sets the rules for how data requests are processed (in what order). In Franco’s kernel, there are 4 options for IO Scheduler. “Deadline” is the default choice, but we’re not even sure if the IO scheduler makes a difference as far as battery life is concerned. You can leave it at Deadline or you can try the other ones if you like.
What’s the difference between the IO schedulers? If we use an ice cream parlor as an example and there was a lineup for ice cream and the shop adopted the Noop scheduler. The first come first serve rule would apply. If the ice cream shop adopted the CFQ (completely fair scheduling) policy, the shop would let each person buy one ice cream cone and they would have to go back to wait at the end of the line if they wanted a second one. If the shop adopted the Deadline scheduler, there would set a 2nd line for the elderly or for children. This line would take priority over the regular line and the priority line would get served first. If the shop adopted the Row scheduler… well, i don’t know how to expand this analogy. Row stands for “Read over write” therefore it prioritizes read speeds over write speeds. This means decreased performance when installing apps or transferring files to the phone. We’re going to go with “Deadline” as it seems to be a good balance between performance and battery life. If you would like to read more about IO Schedulers, read this and this.
That’s it! The 8 part series is finally done! We gathered these tips from various websites, but we found the following threads at XDA especially informative (1, 2, 3, 4, 5, 6). If you have any other tips that you would like us to add, please drop us a line in the comments below.