This page is a guide made by a fellow named Aftli. I had in no part making this but he has kindly let me post it to this blog. This is a guide on how to improve battery life and performance on your android smart phone. I have used this guide and my HTC Evo is running perfectly, I could not ask for anything better!
Well here it is:
A bit of background: although I mostly work with FreeBSD for my servers now, I have a bit of background in Linux (written kernel modules, etc), and I’m a programmer (C++) by trade – so I consider myself pretty competent tech and software-wise. Also, since I own a Droid X, this information may be slightly biased towards my own handset, but it’s generally applicable to everybody. Also, before you downvote or flame me, please read the entire thing (even if it is TL;DR).
First thing’s first: the poster is basically correct – but only partly. I’ll explain the good legitimate uses for a task killer, but I’ll start by saying that yes, there is harm in using a task killer ten times a day (or on an automated schedule) to kill pretty much every process running on your phone, as Android really does do a pretty good job of managing memory all on it’s own without the assistance of a task killer.
Before you read, as redditor ekilfoil said, probably if you’re a very casual user, you shouldn’t be bothering with this information at all – do not use a Task Killer blindly unless you fully understand what I’m trying to convey here. Just leave it alone – you’ll be better off without it. That said, here’s the TL;DR on using a task killer application properly:
On desktop operating systems, you close an application you aren’t using anymore – you hit the X button in the top right corner of a window, you use that red circle icon on Mac, you command line kill an application, you End-Task it from Task Manager, whatever. Android does not know that you don’t plan on using an application anymore. Don’t worry, there’s a solution to this problem, and you don’t have to sacrifice stability and battery life! The traditional way of using a task killer is long obsolete, but read on to keep your handset from lagging next time you unlock it!
I’ll show you how to leverage the “When screen off” functionality of Advanced Task Killer to kill apps that you aren’t likely to be using anymore, but still have the advantage of not blindly killing every process on your handset for no reason.
Task killer applications are a hangover from the days when Android wasn’t very good at this. Starting applications (and re-starting after a kill, and for many apps, running in the background period) takes CPU power, and your phone’s CPU usage is actually what is draining your battery, not memory usage. However, a few of you in that thread had a few complaints about the idea of abandoning a task killer:
- My phone includes crapware that I don’t want to run ever, and I want to vomit when I see AmazonMP3/Blockbuster/Nascar/CityID/OMG BEST lIVE WALlPaPERrSz running and taking up memory.
- My phone slows to a crawl if it doesn’t have much memory available.
Both of these are legitimate concerns – they’d be enough to convince me to use a task killer regardless of evidence showing that I shouldn’t. When I first got my new Droid X, one of the first things I did was install Advanced Task Killer. I did this because I noticed that after moderate use, my phone slowed to a crawl and became almost unusable when it had any less than 50MB of memory free. I thought this ridiculous because my phone has 512MB of RAM.
Before I get to telling you what you should use a task killer for, I’ll explain a few things that will mostly negate the need for one. After that, using a task killer is entirely up to you – following the directions here, you’re going to have a much better experience, and what I recommend using a task killer to prevent may not bother you at all.
So, here’s a few tips to get your handset running in tip-top shape. Before I begin though, I need to say that these techniques require gaining superuser access on your phone. Commonly this is referred to as “rooting”, but when I say that you need to gain superuser access on your phone, I don’t mean you need to install a new ROM. Cyanogenmod certainly seems attractive, but for the purposes of this post, it isn’t necessary. Many handsets do have an available “hack” to gain superuser access (the same thing as “right-click/Run as Administrator” on Windows, ‘su’ or ‘sudo’ on Mac or Linux or Unix variants, etc) without installing an entirely new ROM. It really isn’t a big deal, and you’ve got nothing to worry about.
In case you aren’t convinced, here’s a few good reasons to gain superuser access on your handset:
- Stop worrying about the warranty – it really isn’t a big deal to manufacturers. I implore you to find a single story about a person who was refused warranty service just because they had Superuser.apk on their phone, and if you do find one, it was probably due to some clueless representative at an indirect (independently owned) wireless dealer. In a previous life, I worked at a Nextel service center, and I have personally sent thousands of iDEN handsets to Motorola for repair. Let me tell you – they really don’t care. It’s assembly line repair at best over there, and they don’t even have time to look even if they did care. HTC phones? Your Nexus One? Forget about it – Google wants their handset and operating system to be as open as possible, and the Nexus One is sold as a developer phone. They understand quite well that warranty is for hardware failure – a broken display, microphone, or earpiece has nothing to do with the fact that you have superuser access.
- It’s easy as hell. Follow the clearly written directions for your phone, most of you probably have a “one click root” type application available. For the Droid X, it’s literally as easy as plugging the phone in with a USB cable, and pressing a button.
- It’s worth it. Besides the techniques presented here, there are a bunch of other reasons to do it (AdFree Android and SetCPU for underclocking your CPU are worth the price of admission alone).
That said, once you’ve gotten superuser access on your handset, the first thing you’re going to want to remove all of the crap-ware that your wireless provider may or may not have pre-installed. This is an optional step. If you don’t want to do this, we can still prevent that crap from ever starting without your explicit say-so, but you’ll save some space on your phone by doing it. This step is a bit technical, and I won’t provide a tutorial unless somebody asks. It involves either using the Root Explorer (paid) application, or firing up an adb shell on your handset (you’ll need the Android SDK for that). There is a full list of apps that can be safely removed from the Droid X, I’m sure there are similar lists available at google.com for your handset. Personally I left Blockbuster and Amazon MP3 on my device as I may want to use them at some point, but as you’ll see they are no longer bothersome. Don’t feel afraid to actually remove the apps from /system/app – what I did was first copy them to a location where I could retrieve them later (/sdcard/vzwcrapware), then delete them. There’s really not much benefit to leaving them on there, just know that you may have to copy them back later for an OTA update (like Froyo) to properly apply without errors.
The next and most important step is to install a “root only” application from the market called “Autostarts” (QR code is in comments). If I remember correctly it’s not free, but there may be a free alternative. You know how you constantly have to deal with your Windows PC and applications that think they have a right or legitimate reason to start every time your computer starts, but they don’t really? And you have to use “msconfig” or another startup manager type application to prevent that from happening? Same thing on Android. All of the usual suspects will be there – Amazon MP3, that stupid Nascar app, Blockbuster, CityID, VZW Visual Voicemail spam, and others. And it turns out that there are all sorts of events that trigger an application to start – for example, Amazon MP3 starts when your locale changes, presumably to keep you from accessing your MP3s when you do something silly like travel to another country.
What you’ll want to do in Autostarts is to disable all of the usual suspects from starting, especially from the “After Startup” event. I removed a bunch of garbage in here. Not only will this crap not run all the time, but your phone will boot much quicker too. Use common sense – obviously we want things like the Dialer application, Text Messaging, Calendar storage, etc to start up with our device. Generally anything hilited in yellow in Autostarts is a system process that you’ll want to let run automatically, with the exception of obvious spam that still shows up as a “system process” because of the nature of non-removable crapware (Amazon MP3 on my Droid X shows up as a “system process” – trust me it’s A-OK to disable it). Another thing I disabled was the “SIM Toolkit” as my handset doesn’t have a SIM card. If you’re a Droid X owner, you’ll notice a few usual suspects (CityID, Visual Voice Mail) in the “New outgoing call” event – you’ll want to disable those. Make sure you go through all of the events deleting all of the spam applications that you wouldn’t normally use. Leave things related to widgets that you use – they’re going to start again regardless.
So, that solves the first problem of the crapware. As I said, deleting the crapware is not really necessary – what you really want to do is disable it from hogging your handset’s resources.
The next thing that you may want to do is install an app called “Autokiller”. Despite the name, the application itself doesn’t actually kill anything. What it does is configure Android’s memory and process manager to be a bit more aggressive with the way it kills applications you aren’t using. Your mileage may vary, but since my Droid X has 512MB of RAM, I set my preset to “Ultimate (200,225,250)”, which gives me plenty of cushion and ensures that my handset never goes below that magic 60MB free mark where it slows to a crawl. If you’re unsure, start anywhere between the “Moderate” and “Aggressive” profiles (use a more aggressive profile if you have a newer handset with more memory, a less aggressive profile if you have an older handset).
The next task is again an optional step, but I highly reccommend it if you have vanilla Android or a Motorola Droid variant (X, Clique, Droid 2 (soon), etc). Download and properly configure (menu key -> Preferences) Launcher Pro. It’s free, but you may want to pay for the additional features of Launcher Pro Plus. If you notice your default home screen (launcher) app to be a bit laggy, you’ll realize that Launcher Pro is much faster, much smoother, and generally much better. If you have a phone with HTC Sense, Samsung TouchUI, etc, you may want to keep your default launcher – but in general the launcher on Droid X has very little to offer over LauncherPro. In fact, the only thing better about the Droid X launcher is that you can resize the Motorola widgets. It’s a nice feature, but it’ll be added to LauncherPro eventually anyway, and you can still add the Motorola widgets if you want (there’s no longer a Motorola Widgets list, they’re just in the regular widgets list in LauncherPro). LauncherPro has plenty of its own merits, make sure you take the time to configure it properly. There are some nice features (like a 3D five-wide app drawer) that aren’t enabled by default. You can also do without many of the stock Motorola widgets as there are better alternatives anyway – the only ones I’ve not found better replacements for are the social networking widgets, and the messages widget (which is not a great widget anyway). LauncherPro has plans to include better and functionally equivalent widgets for these two anyway, so eventually I’ll do away with Blur entirely. Ask me in the comments for a list of what I use if you want.
The next and final task is to properly configure a task killer. There are many applications that will always be in memory, and they’ll start again right after an “auto kill” no matter what. I use “Advanced Task Killer” as my task killer, and you probably should too. It does a good job, and it’s easy to configure the “ignore list”, which is the key to properly using a task killer. Do the following:
- After using Autostarts to configure the applications that have a legitimate reason to run on startup, power cycle (or hard reset) your handset.
- Open Advanced Task Killer. We have a lot of work to do here, we need to add a bunch of applications to the “ignore list”. Tap the menu key, select “Setting”. Change the “Default Click Action” to “Ignore” – you can change it back later, this will make things easier for now.
- Also in settings, select “Security Level”, and set that to Low. That will allow us to ignore more essential applications.
- Set the “Auto Kill Level” in settings to “Aggressive”. I’m not sure what these settings mean as I don’t know about the Advanced Task Killer internals, but I couldn’t get things to kill automatically when the screen turned off on the “Safe” Auto Kill Level.
- This is the most important – set the Auto Kill Frequency to “When screen off”. This means that whenever your screen turns off, AutoKill will activate. Chances are that when your screen turns off, you’re done using whatever app you were using – and it can be closed. This is the beauty of using an automated task killer – your phone is ready to go with free memory to do whatever you want, without having memory taken up by apps you were using just for a few minutes.
- More advanced users may prefer to use Locale’s AutoKiller plugin to have more fine grained control over when an automated task kill takes place, rather than just “when the screen turns off”. Here, we assume that when your screen turns off (you lock it using the power button, or it idles for awhile due to inactivity) you aren’t using whatever application you were using, and it can be killed for the sake of responsiveness the next time you use your phone. Locale (and maybe Tasker, although I haven’t actually used it) will offer you the ability to perform the automated task kill under more precise conditions.
We’ll now want to configure Advanced Task Killer to not be abusive, and only kill processes that we truly aren’t using anymore. Since we’re doing this from a fresh boot, pretty much the entire list of applications currently running are processes that you’ll want to exclude and ignore from Advanced Task Killer, as the majority of these will start right back up on their own anyway.
Be sensible and use common sense. If something is questionable, leave it – no harm in that. If it is truly something you think you have no use for on a daily basis – kill it. Things that are only used sometimes should be killed. For example, I auto-kill my car and home dock (com.motorola.homesync for me) applications – when the phone is in the OEM dock it’s useful, when it isn’t in the dock it isn’t useful. The screen stays on during docking, and the “When screen off” auto kill frequency ensures that my car dock application won’t randomly be killed and need to be restarted as I’m driving. The Android process and memory manager may be pretty intelligent about what it leaves running, but it doesn’t recognize the fact that I’m no longer docked in my car or home.
The basic idea here is to ask your task killer to ignore everything except applications that you normally would start manually.
All of the keyboards that you use (for me, the stock Moto Multitouch, Swype, and SwiftKey), anything related to a widget you use, anything that runs normally in the notification tray (for me, System Monitor, Gentle Alarm, Locale, Doggcatcher, SetCPU), your launcher (LauncherPro for me), and any of those system related process that you left automatically starting in Autostarts should be added to your ignore list. The basic idea is that anything that is going to automatically start again should be ignored, and any resource heavy applications that are not really used on a daily basis (I have a TON of apps on my phone) should be killed. You can exclude your browser (Dolphin, stock browser, Opera, whatever you use) from your ignore list if you don’t feel like you always need to go back to your last session.
In Advanced Task Killer, it’s important to note that by “Ignore List” I don’t mean unchecking the item in the main list – I mean long-pressing on the item and selecting “Add to Ignore List” (or single-clicking if you used my trick above).
And that’s pretty much it! Using the formula I’ve described here, my phone is light years faster and more responsive than it was when stock. I was honestly disappointed at first with my Droid X, especially after having used a few iPhones. iPhone 4 feels nice and responsive with no lag at all, while my stock Droid X felt laggy many times. Apple refuses to add true multitasking ability to their handsets for good reason – it can cause slowdowns, and their users aren’t smart enough to configure their handset properly to prevent this. My phone, however, is truly amazing, and I take full advantage of all of the abilities Android grants me over iPhone.
Side note – I have a co-worker that has an iPhone 4 and was excited today because he was finally able to “jail break” it – one of the most exciting things to him was that he could finally change the notification sound for text messages. Seriously.
Note: Again I had no part in making it, thank Aftli for that!