Test First
All of the techniques that I've mentioned in this article are basic rules. Most of them will be applicable most of the time; none of them will be applicable all of the time. As with any other optimization, you should test whether a different approach really makes a difference.
Profiling for power usage is much more difficult than profiling for performance, because most systems don't have accurate accounting mechanisms for reporting how much power a particular app is using. Intel provides some tools for reporting the power usage of Linux apps on their CPUs, but they don't always give you information that's applicable on other devices.
In general, anything that reduces CPU, GPU, and network usage will give you better power efficiency. Keep this principle in mind, and your code should avoid draining the battery too fast.