Reduce power and resource consumption without sacrificing performance
Power management and consumption has become increasingly important. Battery capacity, combined with the pressure to reduce the physical size of the battery, isn't keeping up with the increased power consumption of new mobile multimedia computers. While there is no simple, straightforward solution to this problem, power consumption must be considered on all fronts, and with many small actions. Device and hardware vendors and network operators need to work actively on it, and software developers need to optimise their applications.
Optimised power consumption is an important aspect of application quality
The exact means to reduce power consumption depends on the characteristics and functionality of the application in question, but certain hypotheses remain the same. For example, understanding where, when, and why most power is consumed is key to understanding what to optimise and where to place the most effort.
The less you process, the less energy is consumed
And when it comes to battery lifetime, the average power consumption is usually more important than transient power peaks. Furthermore, in general, efficient code and freeing resources that aren't in active use consumes less energy compared to, for example, an elaborate UI. Some balance is always needed, and often elaborate UIs are truly important. On the other hand, certain applications, such as maps and navigation applications and always-on applications, consume a lot of energy by default. However, there are also power-efficient means to implement those applications, without sacrificing usability and user experience.
Why should I care?
A mobile device quickly running out of battery when using an application, or multiple applications, leads to disappointed customers and thereby to decreasing sales. This could also impact the entire market for mobile applications. Users don't want, and may not have the ability, to constantly recharge their devices. On the other hand, power-efficient applications typically perform well; in other words, optimised code runs faster. This applies to resources as well - low-resource usage contributes to low power consumption, and vice versa. Besides this, there are the ethical, environmental, and economical aspects to consider from the user's perspective. Lower power consumption means lower total energy usage.
What tools can I use?
Performance Investigator, provided as an extension plug-in for Carbide.c++, enables on-device data collection of information such as function calls, power usage, memory usage, and key events. It consists of a profiling tool installed onto a Symbian device and an analyser tool within Carbide.c++.
Nokia Energy Profiler is a stand-alone test and measurement application for Nokia S60 3rd Edition, Feature Pack 1 devices and onwards. The application allows you to test and monitor your application's energy usage in real time in the target device.
For Flash Lite developers, Adobe Device Central provides a device emulator environment for debugging and gauging performance and memory consumption.