我有一个手写识别应用程序 - 用户使用手指绘画,应用程序识别字符。识别引擎在具有最小可能优先级的工作线程中运行 - Thread.MIN_PRIORITY
。它是一种纯CPU/内存算法,没有任何I/O。然而,当线程正在积极工作时,UI变得相当卡顿。手指笔划需要明显的延迟才能出现。我还注意到触摸事件丢失了。
这不是线程应该避免的吗?为什么UI线程会被占用CPU?如何说服系统将工作线程视为低优先级后台线程?
看起来系统正在介绍(自愿或因为CPU饥饿)invalidate()
和onDraw()
之间的延迟。我是否可以降低该延迟?
在相对老的硬件上进行测试 - 搭载Android 2.1的HTC Magic。