[IEEE]
Each individual’s usage behavior on mobile devices depends on a variety of factors, such as time, location, and previous actions. Hence, context-awareness provides great opportunities to make the networking and computing capabilities of mobile systems more personalized and more efficient in managing their resources. To this end, we first reveal new findings from our own Android user experiment: 1) the launching probabilities of applications follow Zipf’s law and 2) inter-running and running times of applications conform to log-normal distributions. We also find contextual dependencies between application usage patterns, for which we classify contexts autonomously with unsupervised learning methods. Using the knowledge acquired, we develop a context-aware application scheduling framework, context-aware application scheduler (CAS), that adaptively unloads and preloads background applications for a joint optimization in which the energy saving is maximized and the user discomfort from the scheduling is minimized. Our trace-driven simulations with 96 user traces demonstrate that the context-aware design of the CAS enables it to outperform existing process scheduling algorithms. Our implementation of the CAS over Android platforms and its end-to-end evaluations verify that its human-involved design indeed provides substantial user-experience gains in both energy and application launching latency.