The cloud computing paradigm enables the work anywhere anytime paradigm by allowing application execution and data storage on remote servers. This is especially useful for mobile computing and communication devices that are constrained in terms of computation power and storage. It is however not clear how preferable cloud-based applications would be for mobile device users. For users of such battery life constrained devices, the most important criteria might be the energy consumed by the applications they run. The goal of this work is to characterize under what scenarios cloud-based applications would be relatively more energy-efficient for users of mobile devices. This work first empirically studies the energy consumption for various types of applications and for multiple classes of devices to make this determination. Subsequently, it presents an analytical model that helps characterize energy consumption of mobile devices under both the cloud and non-cloud application scenarios. Finally, an algorithm GreenSpot is presented that considers application features and energy-performance tradeoffs to determine whether cloud or local execution will be more preferable.