Home screen replacement apps are one of the many benefits of the open nature of Android. They provide speed and functionality above and beyond what the default home screen can offer. Unfortunately, due to the nature of how home screen replacements work, some issues can arise. One persistently annoying issue surfaces when the entire home screen needs to redraw itself when you return to it after closing an application.
If you’ve ever stared at the above screen for more than ten seconds, you know what I’m talking about. You wait patiently while your home screens are slowly repopulated with your multitude of shortcuts and widgets.
This happens because home screen replacements are treated just like any other application to the Android operating system. If they aren’t the active application (i.e., if a different application is running on top of it) they wait patiently in memory. If the running application requires more memory, the home replacement app might be killed to free up memory. When you close the active application to return to your home screen, it needs to redraw itself since it’s no longer in memory.
Needless to say, watching a blank screen for half a minute can become incredibly annoying if it happens frequently enough.
What Can Be Done?
As you might have gathered from this article’s title, there are a few things you can do to reduce this occurrence.
Most home screen replacements, like LauncherPro, offer the ability to automatically rotate your home screens if the accelerometer detects that the phone is rotated. This can be handy at times, but depending on how often you use it, it might be more trouble than it’s worth and takes up valuable memory. Auto rotation can usually be disabled in the settings for the home screen replacement (in LauncherPro, it can be found in the Behavior Settings). Note that this doesn’t affect any individual applications that auto-rotate, like browsers, the alarm clock, or Car mode. Changing this setting only affects auto-rotation when on one of the home screens.
Some home screen replacements also contain an option keep themselves in memory (found under General Settings in LauncherPro). I’ve had limited success with this feature, but it’s worth trying to see if your results vary.
For those with root access, even more tools exist to help alleviate home screen redrawing. If you’re running a custom ROM like CyanogenMod, it might have a built in setting (like the one above) to keep the current home application in memory.
Another option is to try increasing the VM heap size. This causes the operating system to garbage collect less often, which in turn means your home screen replacement has less chance to be booted from memory. Changing the heap size can dramatically alter the performance of your phone, so use it with care. On my Motorola Droid I increased the heap size to 32M and haven’t noticed any negative side effects yet. In CyanogenMod, this setting can be found under Performance settings (as seen in the picture above). Note that changing this setting requires a reboot to take effect.
If you still experience a high number of redraws after trying the steps above, you can try reducing the memory footprint of your home screen application. By reducing the total number of home screens, your home screen replacement requires less memory to run. Widgets can also be memory hogs, so if you’ve loaded up your phone with tons of widgets, try dumping some of the less necessary ones.
Home screen replacements are an awesome addition to the Android experience, but can sometimes take a bit of work to manage. Do you have any other suggestions on how to reduce redraw? Let our readers know in the comments section below!