Improving and optimizing user-perceived smartphone performance requires understanding device, system, and application behavior for real-world workloads. However, measuring such performance is challenging due to the multi-threaded, asynchronous programming paradigms used in modern applications and the multiple layers of hardware and software used to respond to user input events.
We address this challenge with Panappticon, a lightweight, system-wide, fine-grained event tracing system for Android that automatically identifies critical execution paths in user transactions. Panappticon monitors the application, system, and kernel software layers and can identify performance problems stemming from poor application code, underpowered hardware, and harmful interactions between apparently unrelated applications.
We carried out a 14-user, one-month study of an Android smartphone system instrumented with Panappticon. This study revealed a number of specific problems and areas for improvement that may be of value to system designers, application developers, and device manufactures.
See the Panappticon website for more information and data.