Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech
Overview Introduction Motivation Solution Current Approaches Current Solutions and Researches Proposed Approach The Power Guru Conclusion and Future Directions
Introduction The smartphones now are manufactured with tandem to the rapid technological advancements to benefit from these technologies. So we see the mobiles always compatible with technologies, such as: With These Technologies: Indeed, Mobile devices have progressively become more powerful. BUT THESE ARE POWER HUNGRY TECHNOLOGIES Thus Mobile devices have become more and more power-inefficient too
Motivation The Technologies are rapidly evolving, and the smartphones are keeping up with this evolution. This keeping up exists because that the hardware embodied within the mobile devices are rapidly evolving too CPU Screen Radios Memory But the Battery technology –From a Hardware Perspective- could not keep up with these technologies So the need for mechanisms that manage the usage of battery in smart ways
The Solution The authors’ contribution is on the application layer and not a physical solution They saw that the key is: in handling multitasking on a device Monitoring the running processes Investigating background processes Etc… The suggested approach is considered a novel one comparing to existing solutions So I will represent current approaches before detailing the proposed solution
Current Approaches Apple iOS only supports multitasking of a few apps that come with the system no other applications are allowed to run in the background Palm WebOS supports multi-tasking of all applications gives the user a graphical way to view all currently running applications Google Android as WebOS supports multi-tasking does not include a graphical way for the user to view/kill running applications Google claims that it kills unneeded processes automatically
Current Solutions and Researches Installing task managers to overcome the problem Current task managers show the running processes The user then can take a decision to kill some processes This solution is not optimal for any user, especially for novice users Most of the research done on power management has focused on hardware solutions and software that turns off hardware features The solutions that are in the non application layer are very unobtrusive to the user E.g. optimizing the use of each CPU cycle, memory management, screen brightness
The Proposed Approach The Current approaches lack an automatic decision making They don’t suggest to the user which process to kill The authors addressed the problem with a more user-friendly application The Power Guru app: Work on asking the user to prioritize some applications Classify the running processes based on their power consumption Display the remaining battery time Suggest to the user an application to kill and estimate what would be the remaining time if the app is killed
Power Guru The app is developed on a device running the android 1.6 firmware, using the APIs exposed by Google. The APIs services for getting information about the battery status, but not the CPU, screen, radio or other resource usage.
The three parts GUIData CollectorAlgorithms The GUI is very simple: apps arranged in list, so the user Can prioritize some apps. The prioritized apps are moved to a list for prioritized applications Always the remaining battery time is displayed
Data Collector For better estimation, Power Guru must be provided with data about the battery status, CPU usage and preferably information about radio, screen and other hardware usage The current implementation only collects battery and CPU info: To get Battery info, the app was registered as a receiver to the “ACTION BATTERY CHANGED” notifications. In android there is no OS notification to get CPU usage for each application: background service that parses the ”/proc/1234/stat” UNIX file is used This file shows all processes and how much CPU time each one has used
Algorithms Battery estimation algorithm Application to kill suggestions algorithm
Battery estimation algorithm First the algorithm assumes that a fully charged device with no load will last for 300 hours. CPU loads, remaining time This linear correlation is inaccurate: There exist other things that impact the battery life The battery might not discharge linearly Since it’s for estimation purposes, it gives reasonable results
Application to kill suggestions algorithm Select the most power hungry running application (not prioritized) currently running Calling the former algorithm, it estimates what the remaining battery life would be if the chosen app is killed Repeating until the additional improvement in battery life by killing another application is less than 5%.
Evaluation
Issues with testing There are several issues associated with using battery time as a metric: It is a time consuming effort The emulator does not have any support for battery battery discharge is not a very accurate indicator of how the battery is being used E.g. Display may kept turn on linger, burst of s,… The phone falls into idle state on an irregular basis These tests are not representative of the actual usage of a phone by real users E.g. Phone calls are not taken into account
Testing Conditions On android 1.6 firmware On HTC G1 phone Data are gathered from the built-in settings and not some third party apps A drawback when using the built-in settings, i.e. not all the applications are shown in the list. E.g. both Camera and Music applications are clubbed under a single name of ’Media Server’ Wi-Fi was kept turned on In the result (below), the category called Others include processes that could not be killed. E.g. Android OS, Display, Core apps…
4 Test Cases Case 1 is the only running application Case 2 Camera Music Google Maps Case 3 YouTube UStream Gaming Case 4 Some other application Power Guru
Results Case 1: 20% in 14 hours Case 2: more than 40% in 4 hours (music) Case 3: more than 60% in just 30 minutes (Ustream)
The built-in Settings App
Some Correlation
YouTube is missing!
With Power Guru -Camera (85), suggest (114) -Gaming ran for 35 mns -Ustream ran for less than 25 mns - and Browser never suggested to be killed
Conclusion and Future Directions Conclusion: Power Guru makes task management easier to do for novice users, by having them select the applications they know they want to use instead of asking them to select all the applications they don’t want to use. Future Works: Use machine learning to improve the estimate for each battery cycle Adding information to the algorithms about screen and radio usage in addition to the already present CPU information would lead to more accurate selections and battery time estimations
Thank You Written by Raef Mchaymech