Return to site

A Method to Improve Performance in Android Devices

A Method to Improve Performance in Android Devices

Market share for android smartphones have been increasing exponentially day by day. With this increase in numbers of phones sold every year, even the demands for a better quality of the android phones are increasing in the competitive market. To meet the high expectations of users, companies are putting good amount of efforts in the improvement of hardware as well as software. While smartphone hardware market is already saturating to an extent, there is a lot of scope for improvement on software design on top of Google’s stock Android for better user experience. As far as user experience is concerned, application launch time is one of the most important performance parameter for any smartphone device. In general, due to the usage of many applications, a good amount of RAM gets consumed resulting in phone sluggishness. This sluggishness is very much visible to the user especially when a particular application, which user wanted to re-use, is already killed by LMK. In our proposed solution, we intend to provide a better user experience by improving LMK’s algorithm based on user’s usage of various applications. Thereby, enhance user experience by decreasing application launch time of favorite applications. 

Android operating system has an in-built task killer, called low memory killer (LMK). The LMK keeps an eye on the real time RAM usage of all applications. Whenever excess of RAM is consumed, the LMK starts killing applications to free-upsome memory [4][5]. For the killing of applications, LMK has defined some set of priorities through oom_adj value. This oom_adj is set by android kernel for each process on the Android system. It ranges from -17 at the highest to +15 at the lowest. Therefore, in memory crunch situation, LMK is called and it starts killing applications from the lowest oom_adj i.e. oom_adj value of +15. For this paper, we target only the cached applications that range from +9 to +15 [5]. As important applications and services have higher priority than cached applications, so we need not worry about them.

https://codeshoppy.in/

To test our algorithms, we created the test environment in such a way that the devices undergoing the test will be in memory crunch state. We plan to take average readings of all the launch times as a measure for comparison [8]. Three Galaxy S5 phones, test devices, were put to the above mentioned testing environment. Device1 had the basic stock ROM (Android 5.0.2), Device2 had custom ROM with DSPO changes and Device3 had custom ROM with DCA changes.Firstly, the devices are flashed with the required binaries. Secondly, options such as stay awake, user debugging and allow mock locations are enabled. Thirdly, the device is loaded with 100 installed applications, 3000 contacts, 1000 messages and 7 GB of data which includes 3 GB of images, 2.5 GB of mp3 music and 1.5 GB of videos. Google, Facebook and Twitter profiles accounts are set up. After that, debug level is set to mid. In addition, as a precondition for the test, many applications are opened randomly so that enough RAM is consumed to make the device sluggish.Now few more applications are opened and their launch time is recorded. Some applications are opened more than others for the purpose of making them frequently used. Some applications apart from those whose launch time is recorded are opened to consume more RAM and make the device sluggish. Add

broken image

The tests were run several times and the average values of all these tests were recorded to make the resultant chart. The test gets all the devices into sluggish mode to check the performance of application launch. In our approach, we have made sure important application does not get killed early. Thus, it improves application launch time by resuming the application rather than forking it.