Reducing the energy consumption is a major challenge in sustaining mobile applications and services for the emerging genre of smart handheld devices. In contrast to previous works on DVFS scheduling algorithms and history-based prediction techniques, this work is inspired by an observation on the usage patterns of mobile applications on hardware resources, and proposes a resource-driven DVFS scheme, where resource state machines are designed to model the resource usage patterns in an online fashion to guide DVFS. We have implemented the proposed scheme in Android and conduct experiments based on real-world applications. The results of experiments conducted to demonstrate its practicability and efficacy are very encouraging.