Androcheck from xda-developers forum has figured out how to configure Android’s internal taskkiller:
We all know that Android uses a different way of handling processes. Instead of killing every process after its Activity ended, processes are kept until the system needs more memory. These processes usually should not harm the overall performance and should give speed improvements if you start an Activity again. That’s the idea.
But when does Android kill a process? And which process? As far as I understood android keeps a LRU (last recently used) list and starts killing the oldest unneeded process. This way it is much smarter than any of the taskkillers we see in the Market.
Android seems to group running processes into 6 different categories:
FOREGROUND_APP:
// This is the process running the current foreground app. We’d really
// rather not kill it! Value set in system/rootdir/init.rc on startup.
VISIBLE_APP:
// This is a process only hosting activities that are visible to the
// user, so we’d prefer they don’t disappear. Value set in
// system/rootdir/init.rc on startup.
SECONDARY_SERVER:
// This is a process holding a secondary server — killing it will not
// have much of an impact as far as the user is concerned. Value set in
// system/rootdir/init.rc on startup.
HIDDEN_APP:
// This is a process only hosting activities that are not visible,
// so it can be killed without any disruption. Value set in
// system/rootdir/init.rc on startup.
CONTENT_PROVIDER:
// This is a process with a content provider that does not have any clients
// attached to it. If it did have any clients, its adjustment would be the
// one for the highest-priority of those processes.
EMPTY_APP:
// This is a process without anything currently running in it. Definitely
// the first to go! Value set in system/rootdir/init.rc on startup.
// This value is initalized in the constructor, careful when refering to
// this static variable externally.
These 6 categories are reflected by 6 memory limits which are configured for the lowmemorykiller in the kernel.
Default values varies from 6 mb (foreground app) to 24 mb (empty app). This means that the system will keep the apps in memory while you have at least 24 mb free. If you feel that more free memory and less apps in background will make your phone faster, these values can be increased.
Read more on xda-developers forum: How to configure Android’s internal taskkiller.
A few days later, oldskool73 released an app for tweaking these values:
http://www.dustypixels.com/blog/2010/01/30/android-app-minfreemanager/
Recent Comments