我目前正在执行的软件键盘(使用一些复杂的预测),以及使用的帆布是在性能比较而言不足拉伸它。我发现了帧绘图时间远高于100毫秒,这显然是不能接受的。

键盘本身由约33的键,它们中的每使用drawRoundRect和一个简单的文本上面绘制。没有任何部件使用,所以它的平原更流畅。此外,几乎所有的谷歌性能比较提示都在使用,所以那不是用于速度的原因要么。

我现在已经达到了一个点,切换到真正的OpenGL会是有意义的,但我仍持怀疑态度考虑到影响一个基于OpenGL的键盘可能会对电池寿命。

由于我发现关于这个问题没有足够的文件,我希望这里有人可以点我到正确的方向。

有帮助吗?

解决方案

不管多少消耗电池电量,你可能不希望这样做,因为大多数现有设备不同时支持多个OpenGL的环境,让你的软键盘将与正在使用的任何应用程序不兼容OpenGL的为自己的图纸。在这些设备上的OpenGL上下文仅由前台应用程序拥有;它不能像在软键盘用户界面的次级部分中使用。

另外,作为以前的海报说,你很可能是最好还是考虑如何优化你的正常绘图。绘制矢量是相当缓慢的,所以预先使它们成位图只是位图的blit将有很大的帮助。另外要注意,只画那些改变了窗口的各个部分。 100ms的是时候采取绘制UI相当疯狂的量,所以几乎肯定可以使显著优化。你可能想看看在平台KeyboardView代码(这是通过使用标准的软键盘和样品IME);这已经包含许多类似的附图优化。

其他提示

旁白:你有没有考虑渲染键一次,然后抓住他们的精灵和位图传送这些?它应该是大大优于渲染矢量图形。

我无法给你确切数字(和apphacker指出,这是特定于设备),但即使OpenGL是硬件加速,因此可能使用更多的电池,操作应更快地完成多,在这么少用电源总。 如果不是硬件加速,似乎合乎逻辑的,如果它需要更长的时间来完成操作,因为你只为互相交换一个绘图API只应使用更多的权力。 一切的一切,因为你只需要在外部事件发生提请它应该没多大关系,从长远来看,人们很可能每分钟仅tiping几个键。

您可能就必须实现它(也许在一个简单的测试案例),并进行测量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top