Does OpenGL ES use more battery than standard 2D graphics?

I am considering writing an application that does a lot of moving 2D graphics. I'm not very familiar with the standard 2D graphics API and Android, and I'm much more comfortable with OpenGL, so I'm naturally considering using OpenGL instead.

My consideration right now is that if I make sure to lower my frame rate and don't do any continuous updates, if I don't need to animate the material, is there a significant difference in power consumption / battery life using OpenGL ES over compared to standard graphics?

Please note that I am not making a game and will not need continuous updates other than animating UI elements.

+3


source to share


1 answer


OpenGL-ES on most devices uses the device's GPU and therefore probably has slightly higher battery usage than non-OpenGL-ES display systems, however this is a minor difference in my opinion. Typically, battery voltage problems spill over into areas such as network or GPS tracking. For graphics, the best approach to minimizing battery consumption is to minimize the overall processor usage of the device.

OpenGL-ES is optimized as much as possible for graphics intensive rendering and has the bonus advantage outside of the sandbox that Android allocates to each running application by giving it a much larger memory pool, and GPU access makes it optimal when considering the presentation graphics layer in application.

Disallowing OpenGL-ES, you might want to work with bitmaps and canvases, or work with views nested in view groups and move them around by changing their LayoutParams or manipulating their matrices to animate objects around the screen. Performance, animations done this way are rarely impressive compared to animations done by OpenGL-based platforms.



On the other hand, managing a structured application entirely in OpenGL-ES can also become a nightmare. Using snippets and views is always the method of choice when building a non-graphical rich application, simply because they make things so much easier and they were built and optimized for that very purpose.

In the end, it really depends on the requirements of the application you are building. You may also want to consider some segments that have higher graphics requirements in OpenGL-ES and others that are not used in more traditional methods such as snippets.

A battery using a GPU via OpenGL-ES definitely has some overclocking, but if you overclock the processor using normal animation techniques, you could end up using even more battery power and even damage your low frame rate app UI.

+4


source







All Articles