  Energy efficiency has a significant influence on user experience of
battery-driven devices such as smartphones and tablets. The goal of an energy
model for source code is to lay a foundation for the application of
energy-saving techniques during software development. The challenge is to
relate hardware energy consumption to high-level application code, considering
the complex run-time context and software stack. Traditional techniques build
the energy model by mapping a hardware energy model onto software constructs;
this approach faces obstacles when the software stack consists of a number of
abstract layers. Another approach that has been followed is to utilize hardware
or operating system features to estimate software energy information at a
coarse level of granularity such as blocks, methods or even applications. In
this paper, we explain how to construct a fine-grained energy model for the
source code, which is based on "energy operations" identified directly from the
source code and able to provide more valuable information for code
optimization. We apply the approach to a class of applications based on a
game-engine, and explain the wider applicability of the method.
