Android上的OpenGL是电池杀手吗?

mor*_*itz 8 android battery opengl-es surfaceview

我目前正在实现一个软件键盘(使用一些复杂的预测),并且使用画布绘制它在性能方面是不够的.我的画框绘制时间远远超过100毫秒,这显然是不可接受的.

键盘本身由大约33个键组成,每个键使用drawRoundRect和上面的简单文本绘制.没有使用任何小部件,所以这是简单的性能.此外,几乎所有Googles性能提示都在使用中,因此这也不是速度的原因.

我现在已经达到了切换到opengl实际上有意义的程度,但考虑到基于opengl的键盘可能对电池寿命产生的影响,我仍然持怀疑态度.

由于我没有找到关于该主题的充分文档,我希望有人能指出我正确的方向.

hac*_*bod 25

无论耗尽多少电池,您可能都不希望这样做,因为大多数现有设备不同时支持多个OpenGL上下文,因此您的软键盘将与使用OpenGL的任何应用程序不兼容自己的画.在这些设备上,OpenGL上下文仅由前台应用程序拥有; 它不能像软键盘一样用在UI的次要部分.

此外,正如之前的海报所说,你可能最好看看如何优化你的常规绘图.绘制向量非常慢,因此将它们预先渲染到位图中以执行位图blits会有很大帮助.另外要小心,只绘制已更改的窗口部分.100ms是绘制UI时非常疯狂的时间,因此几乎可以肯定的是,您可以进行重大优化.您可能希望查看平台中的KeyboardView代码(标准软键盘和示例IME使用); 这已包含许多类似的绘图优化.