Android Framework Ports - Maximum Hidden Apps

        Android open source project (ICS) supports a maximum of 15 hidden applications running at any point and any attempt to launch new apps kills the least recently used ones. As per the documentation, this is done to reduce the load on RAM and has been the case since early version of Android.

       However, the OEMs who port android on their board often don't realize that this number is a based on the size of RAM on the device and i just came across one such device whose activity manager started knocking out processes as soon as the device booted up (without any user intervention to start an application). It was obvious that they wanted more applications to be launched simultaneously, however didn't care about the maximum limit.

02-19 13:43:55.194 I/ActivityManager( 1096): No longer want com.lge.omadmclient:remote (pid 23052): hidden #16

      And as to what the factor is... Its probably based on the memory specifications of Android's compatibility definition document. Any additional memory (on top of the one specified in CDD) should be considered to increase the maximum limit proportionately. On the other hand, an increased maximum limit could accomodate a heavy duty process and could impact run time performance which is indicative of the fact that the limit should be based on the threshold memory size rather than the number of process in memory. This should facilitate easy, quick and stable ports of Android and avoid burning of CPU cycles during boot up.

No comments: