Development of today’s Android* devices and the applications for those devices includes focusing on continuous improvement on power optimization to reduce power consumption and prolong battery life for the mobile device.
Generally, expectations of most users today are that an Android mobile device’s battery charge will last at least one 24-hour period. Such user expectations may be unrealistic if the user doesn’t realize that one of the reasons for the rapid power discharge is due to the use of applications that are not optimized to save electricity. Part of the problem can be solved by the improvements to an application so they consume less electricity. This article focuses on ways to optimize application power consumption so that applications and the Android device meet user expectations and thus improve the user experience with the device.
Today, Android devices use multi-core processors. Using all available cores not only improves performance for the device but also saves energy. When you make use of the largest number of simultaneous threads or cores, the program will run faster, while consuming less electricity.
One of the main reasons for the high power consumption in the active state of the application is the high frequency of system calls. Common sources of synchronization calls at the core level are transitions between an active state and an idle state. If you combine periodic actions and avoid unnecessary transitions between an active state and an idle state, it will be possible to increase the parallelism of the streams. These changes along with implementing multithreading will reduce power discharge for your app.
This is one of the basic principles. Optimization of the most frequently used code achieves the highest win, so you should start with this. One way to improve this code is by using the most current vector instructions, such as SSE, AVX, etc. These instructions help you perform common actions quickly while requiring less power.
Optimizing memory usage also helps reduce power consumption in active applications. To reduce memory usage you need to:
As the development and production of Android devices accelerate, developers will continue to play a major role in creating more efficient versions—requiring lower power consumption—for applications and to continually address power optimization issues.
Denis Smirnov (email@example.com) is a Software Intern and has worked at Intel as a Technical Intern for nine months. Denis is getting his master’s degree in Computer Science in the Nizhny Novgorod State Technical University, specializing in Applied Mathematics.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804