Android Battery Saving Tips

April 30th, 2011

Don’t run a “task killer” app
A lot of people think a task killer or app killer app will save you battery life. In fact, you’ll find it regularly in the top 20 for top free apps in the Android Market. When I bought my first Android phone in 2009, the T-Mobile salesperson recommended I install it. And I’ve heard of cases in which salespeople will actually install a task killer app while you’re at the store. Let me be clear about this: task killers will not save you battery life. If they do, all it means that you have a bad app installed that, instead of being killed constantly, should be uninstalled. At best, task killers will do nothing for your phone. At worst, they will cause instability and glitches. For more details, read the following:
Android Task Killers Explained: What They Do and Why You Shouldn’t Use Them
FAQ: Why You Shouldn’t Be Using a Task Killer with Android
Why you don’t need a task killer app with Android.

Don’t bother with all the little things
So after I did quite a bit of research and found out task killers are not only useless but actually detrimental to the proper functioning of your Android phone, I read all sorts of tips espousing little things you can do to save battery: dim the screen brightness, turn off GPS, switch to Edge only (not 3G), turn off automatic syncing. Most of these things all help a little bit but not really enough to make it worth the trouble. And, in the case of GPS, sometimes they don’t help at all. GPS, for example, isn’t really on even if it’s “on” unless you’re using an app that actively uses GPS (e.g., Google Maps, Google Navigation, Yelp). If I constantly dimmed the screen and then made it brighter when I needed it and turned off syncing and synced only when I needed it, I could eke out maybe an extra hour or hour and a half of battery life. It seemed a lot of maintenance for very little return.

Use Juice Defender
It took me a year and a half of using Android before I stumbled upon and finally tried Juice Defender. This app easily doubled my battery life. I used to have my phone run from 7:30 AM to 11:30 PM at night but with only 15-20% of my battery left when I plugged it back into the charger at night. With Juice Defender, I had 50-60% of my battery left at night. There are a lot of things Juice Defender can do if you get the paid versions, which allow you to tweak settings even further, but on a basic level with the free version it turns off your data when your screen is off and then turns it back on again when your screen is on.

Even though I would highly recommend JD to anyone with an Android phone who also wants to get the most out of her battery life, there are a couple of annoying things with the program. Firstly, it insists on having a huge icon in the notification bar all the time. Well, there’s a setting to not keep it there, but apparently if you don’t keep it in the notification bar the Android OS might accidentally turn off Juice Defender to free up RAM. Secondly, it takes a few seconds for data to turn back on after your screen is on. This last little niggle led to me uninstalling Juice Defender and opting for another alternative.

Or just turn off data when you don’t need it
You kind of have to think about your own phone-using lifestyle to see what will make more sense to you—turning data off every time your screen is off (Juice Defender) or just manually turning off data when you don’t need it. For my lifestyle, it makes a lot more sense for me to turn data off manually. I’m grateful for the work the Juice Defender folks are doing in showing me how to save battery life, but the extra few seconds to wait for data to turn back on were just too much for me, the way I use my Android phone.

I basically have some periods in which I’m using my phone pretty heavily (but only in short spurts) for data and then longer periods when I’m not using my phone for data at all. So I have a power widget on my home screen for toggling data. When I’m about to use data, I turn it on. When I know I won’t be using data for a long period of time (2-3 hours or more), I turn it off.

I hope people have found these tips helpful. Post if you have any questions. (Any attempts to promote task killers will be immediately deleted as spam.)

I rooted my first Android phone (the MyTouch 3G) within a month of owning it, and I rooted my second Android phone (the MyTouch 4G) within a day of owning it. Rooting is sometimes an easy process and sometimes a bit complicated, but in my experience it’s always been worth the effort. My sister-in-law came to visit and complained that her almost year-and-a-half-old Droid (the original, not X or Incredible) is glitchy, has poor battery life, and is just not that responsive. She wants to get an iPhone but is not yet eligible to switch over subsidized. So I offered to root her phone for her.

Now, I’m always hesitant to try to fix people’s computer problems, and the same goes for Android phones (which are basically really small computers). On the one hand, I know their experience can be better. On the other hand, I know that a successful migration of any kind or major overhaul involves time and some testing. Most of the time, people want a quick fix. And if you tell them it’ll take a long time, they’ll feel guilty about using up your time and just say “Oh, it’s okay. Don’t bother.” Really, though, they’re still not happy with whatever situation they’re in. So I always try my best to find the balance between quick fix and thorough fix.

So I got her to promise me not to install Advanced Task Killer (which was probably responsible for at least some of the glitchiness), I backed up her bookmarks and apps, and then I began to root her phone. I tried to follow the Droid full update guide at the Cyanogen mod wiki, and I ran into a couple of bumps along the way. First of all, the sbf_flash file for Linux gave a segmentation fault, but the guide actually offers a separate download if that happens, so I used that. I also tried to flash the ClockworkMod Recovery, but when I tried to reboot into recovery mode, I got stuck on the Motorola logo, so I had to take out the battery, flash back to SPRecovery, install the Cyanogen rom, and then flash ClockworkMod again.

Immediately, she was impressed with the upgrade. I told her it was Gingerbread, and she had no idea what that meant. I told her it’s basically the next version of Android. She didn’t really seem to care. She just liked the cleaner interface. She liked the battery life displayed when she’s about to unlock the phone. She found it a bit more responsive. The only problem is I forgot to back up her Angry Birds data, so she’d have to play all the levels all over again. So I did a bit of Google searching and experimenting and found out I could get the data out of /data/data/com.rovio.angrybirds/files/highscores.lua, /data/data/com.rovio.angrybirdsrio/files/highscores.lua, and /data/data/com.rovio.angrybirdsseasons/files/highscores.lua. To do it properly, you have to beat at least one level in each version of Angry Birds. Then, instead of copying the file and changing permissions, you should cat one file into the next:

cat highscores.lua > /data/data/com.rovio.angrybirds/files/highscores.lua

Overall, I’m surprised that she liked it. Usually I think of rooting as for power users who like to tinker with their smartphones. It’s good to know end users can enjoy the benefits of a rooted phone as well. Extra bonus is that when you boot up the phone there isn’t that annoying “Droid!!!” robotic voice announcing the name of the phone. And I know she can stay on Cyanogen RC 4 until Christmas when I see her next, and still be ahead of the OTA updates to the Droid. Or she may just get the iPhone 5 by then.

Every now and then I buy into the hype about how “fast” Chrome is and how much better it is than Firefox and how Firefox’s only advantage is its many extensions. Then I actually try to use Chrome as my main browser and realize how badly implemented it is for my purposes. More details on that from last year’s post The extension that makes Google Chrome bearable, but I left off that list this bit of annoyance: Are you sure you want to open 31 tabs?

I’ve done some Google searching on this, and there appears to be no way to turn off this warning. I have daily bookmarks I open… every day. And they’re stored in one folder I right-click to open all at once. I don’t really need Nanny Chrome asking me every time if I’m sure I want to open all those bookmarks. Thank you, Firefox, for remaining an amazing browser that does everything I need it to.

Android malware in the news

March 9th, 2011

Nonsense. That’s to be expected.

Common sense. Surprising.

Ditching the MyTouch 3G for the MyTouch 4G
My first smartphone was the second Android phone released—the original MyTouch 3G. Not the Fender. Not the 3.5mm headphone jack. The original. From the beginning, it was a pretty crappy phone. I mean it did basic smartphone things but the touch responsiveness was poor (you really had to press into the screen to get it to respond), and the 192 MB of RAM meant it took an extra couple of seconds to do anything. Angry Birds is basically unusable on that phone. So after a year and a half, I’ve been dying to upgrade.

For a while I was considering the MyTouch 4G, the Nexus S, and the (at the time upcoming) Samsung Galaxy S 4G. The Nexus S definitely appealed to me for being pure Google Android. No Zip Whiz bang my head non-Sense overlay. At the same time, it did, in fact, feel like cheap plastic. Its screen was a fingerprint magnet. And it was still 3G speeds, which is not that big a deal now, but as the T-Mobile network keeps growing, (what they call) 4G will be something I want to take advantage of. The Samsung Galaxy S 4G had potential but it also felt a bit light, and it had no flash on the camera and less internal storage than the original Samsung Vibrant.

I had heard quite a few bad things about the MyTouch 4G, too, though. It’s ugly. The speakerphone sucks. The battery life sucks. There’s too much bloatware and trialware. After futzing around, I finally went with the MyTouch 4G. Yes, I know there are crazy dual-core phones right around the corner, but Angry Birds was calling me, and I had to answer. Besides, the MyTouch has 768 MB of RAM. That’s four times what my old phone had.

HTC Sense on the MyTouch 4G: unbearable
I’d tried Swype before on the MyTouch 3G, and I was not enamored with it. It takes too long to drag my finger over every letter. I can use the Android regular autocomplete suggestions after two or three pecked letters, and it’s much faster and takes less concentration. I thought I could just select the regular Android keyboard instead of Swype. I thought Sense may be heavy but I can use ADW Launcher instead. I thought the bloatware is there but I can just not use it. I don’t need to actually remove it. I was wrong on all counts. The version of Android the MyTouch 4G comes with is terrible. I couldn’t stand it.

First of all, the choices of keyboard are Swype, Touch Input, and Dragon Dictation. If you change the keyboard from Swype to Touch Input, you don’t get the regular Android keyboard. Instead you get basically the same Swype keyboard but with no Swype. This keyboard is annoying because the autocomplete suggestions either are not there at all or are selected for you automatically. I don’t want the keyboard telling me which of the suggestions I want. They are suggestions only. I’ll decide for myself which suggestion is best. I tried to install the stock Android keyboard manually, but it would force close every time I tried to actually type something. After Googling, I found that force-close was a common problem.

ADW Launcher allowed my home screen to look relatively normal, but the app drawer and all the system settings interfaces still looked overly bubbly and cartoony.

And the bloatware was extremely excessive, to the point where I would have to basically have an iPhone-like home screen littered with all my app icons, since sifting through all the app icons in the drawer and skipping over the bloatware would take too much scrolling. Never mind that it was difficult to scroll left or right without accidentally activating one of the icons I was trying to scroll past.

Also, the so-called “Genius button” is basically useless and slow. I just wanted my normal search button back.

If I didn’t know anything about rooting, I’d have just returned the phone for a refund. This OS was godawful.

The rooting process: harder than before
When I rooted the MyTouch 3G, it was easy to find instructions that worked, and the instructions weren’t that intimidating. Not so this time. I spent a good chunk of the night and then the next morning doing trial and error and a lot of Google searching to figure out what really worked. The instructions on the Cyanogen wiki left me trying to adb and being told permission was denied. The Android SDK didn’t include adb at all initially. Some rooting instructions said to use Visionary to temproot. Others said specifically not to.

For the curious among you, here’s what actually worked for me. I’m using Ubuntu Linux, but similar instructions probably apply for Windows and Mac OS X.

Download the Android SDK and make sure adb is installed
Go to the Android SDK website and download the appropriate SDK. I’m using Ubuntu so I downloaded the Linux one. There is one for Windows and one for Mac. I also installed Java. Specifically, I installed the sun-java6-plugin package, but I’m not sure if one of its dependencies was all I needed.

Then I right-clicked the SDK download and selected Extract here. Using the terminal, I changed to the tools subdirectory and did ./android and chose to update all and that installed adb. Once I did that, I was able to ./adb whatever commands I needed.

Prepare your phone
Install Android Terminal Emulator, ROM Manager, and VISIONary.

Make sure USB debugging is on. Turn off the fastboot option in settings.

Download gfree and extract its contents into the android-sdk-***/platform-tools/ directory.

Doing the actual rooting
The full instructions (including a whole bunch of disclaimers and instructions for unrooting later) are on Xda Developers. Here are the highlights, though.

  1. Plug your phone into your computer.
  2. Using the Android SDK and adb, run the command
    adb push gfree /data/local

    (I had to actually run

    ./adb push gfree /data/local

    to get it to work).

  3. Unplug your phone.
  4. On your phone, run VISIONary to gain temporary root. To verify this worked, scroll through your list of apps. The SuperUser app should be in that list.
  5. On your phone, open the Android Terminal Emulator application and type
    su

    to get root privileges.

  6. After confirming root privileges is okay, type
    cd /data/local

    and then

    chmod 777 gfree

    and finally

    ./gfree -f
  7. After a bunch of terminal output, it should be done.
  8. Turn off your phone. Then while holding the volume down button, power up again. Double-check that s=off and the bootloader version is 0.86.0000. If so, it worked! You’re rooted.
  9. Reboot and run VISIONary with temporary root but check to set the system to r/w afterwards. If that works, then run VISIONary to set permanent root.

Install the Cyanogen rooted ROM

  1. Download the latest Cyanogen ROM (for me, that was Cyanogen 7.0.0 RC 1). Optionally, also download the corresponding Google proprietary apps. Put these in the top-level directory of your phone’s MicroSD card.
  2. Launch up the ROM Manager application.
  3. Click to install the ClockworkMod Recovery.
  4. Once that’s successfully installed, click to reboot into ClockworkMod Recovery.
  5. Once booted into recovery mode, select Wipe data/factory reset. Then select Wipe cache partition. Then Install zip from sdcard and select the Cyanogen ROM. Then Install zip from sdcard and select the Google Apps if you want them.
  6. Finally, select Reboot system now to boot into the Cyanogen rooted ROM.

Gingerbread is sweet
Now I get the appeal of the Nexus phones. Maybe the Nexus S doesn’t have cutting edge hardware specs. Maybe the plastic feels a little cheap. Maybe it’s tough to see the screen in the sunlight. Maybe it’s a fingerprint magnet. But the vanilla Android is much easier to use than HTC Sense + Swype + bloatware. I’ve got my normal keyboard back. I’ve got not too many extra applications. The “Genius button” has changed back to a normal search button.

Thank you, Cyanogen team! I donated to you only once, but I’ve gotten more than my money’s worth back.