Reducing the Power Consumption of Mobile Devices

Joint Reserch with Stephen Marz and Wei Gao

As the capabilities and storage of mobile devices have increased, the energy demand on their batteries has increased correspondingly. A decade ago, users might have had to re-charge their mobile devices once a week; now it is common to have to re-charge them daily. Research has shown that an application's graphical user interface (GUI) is typically the piece of software that is the biggest consumer of power in a mobile device. One application-independent part of the GUI that consumes power is event handling. In existing mobile devices, GUIs must use a polling loop that constantly rouses the CPU to determine if any events have occurred. This prevents the CPU from being put into energy-conserving states. We are investigating a push-model for event handling in which the kernel "pushes" events to applications when it receives event interrupts from devices, rather than the application sitting in a polling loop that "pulls" events from the kernel. The advantage of a kernel push-model is that a device can be put in lower power sleep modes until the user actually generates events. In order to realize the full benefits of the push model, event handling must be moved into the kernel, which necessitates the development of kernel routines for event dispatching and the development of a kernel-level display server that allows the process scheduler to know which processes are GUIs, so that it can deschedule them as needed. We are modifying the Android runtime (ART) to work with our push model so that we can profile actual apps to determine how much power savings, and potentially reduced latency, can be achieved with our proposed model.

The goals of this research include:

  1. Developing a kernel-level push-model for event handling that pushes events from the input device to the application rather than requiring the application and kernel to constantly poll the device for events.
  2. Developing a kernel-level display server that supports this push-model.
  3. Developing improved scheduling algorithms for apps that take advantage of the knowledge the display server contains about these apps.
  4. Modifying the Android ART so that it works with the kernel-level push model.
  5. Profiling apps to determine the amount of power savings and reduced latency that can be achieved with the push model.


This project is being supported by the National Science Foundation under Grant No. CNS-1617198.

Student Members


  1. S. Marz and B. Vander Zanden. Reducing Power Consumption and Latency in Mobile Devices Using an Event Stream Model. In ACM Transactions on Embedded Computing, Nov. 2016, 16(1).
  2. S. Marz, B. Vander Zanden, and W. Gao. Reducing Event Latency and Power Consumption in Mobile Devices by Using a Kernel-Level Display Server. In IEEE Transactions on Mobile Computing, May 2019, 18(5), pp. 1174-1187.
  3. S. Marz, B. Vander Zanden, and W. Gao. Reducing Power Consumption and Latency in Mobile Devices by using a GUI Scheduler.
  4. D. McAfee and B. Vander Zanden. A Brief Overview of the Re-Implementation of the Android Push Event Stream Model.
  5. Yong Li and Wei Gao. DeltaVR: Achieving High-Performance Mobile VR Dynamics through Pixel Reuse. the 18th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN). 2019.


  1. Dustin McAfee. Event Stream Model Android Implementation. 2019.