我有一个手写识别应用程序 - 用户用手指绘制,应用程序识别字符。识别引擎在具有最低可能优先级的工作线程中运行 - Thread.MIN_PRIORITY
。这是一个纯粹的 CPU/内存算法,没有任何 I/O。尽管如此,当线程正在积极工作时,UI 变得相当不稳定。手指敲击需要明显延迟才会出现。我还注意到触摸事件丢失了。
这不正是线程应该帮助避免的吗?为什么 UI 线程缺乏 CPU?如何说服系统将工作线程视为低优先级后台线程?
看起来系统正在(自愿或由于 CPU 饥饿)在invalidate()
和之间引入延迟onDraw()
。我能以某种方式降低延迟吗?
在相对较旧的硬件上进行测试 - 使用 Android 2.1 的 HTC Magic。