私は手書き認識アプリを持っています - ユーザーが指で描くと、アプリは文字を認識します。認識エンジンは、最小限の優先度を持つワーカー スレッドで実行されますThread.MIN_PRIORITY
。これは純粋に CPU/メモリ アルゴリズムであり、I/O は一切ありません。それでも、スレッドがアクティブに動作している場合、UI はかなり途切れ途切れになります。指のストロークが表示されるまでにかなりの遅延がかかります。また、タッチイベントが失われていることに気付きました。
それはまさにスレッド化が回避するのに役立つはずだったものではありませんか? UI スレッドが CPU 不足になるのはなぜですか? ワーカー スレッドを優先度の低いバックグラウンド スレッドとして扱うようにシステムを説得するにはどうすればよいでしょうか。
システムが (意図的に、または CPU 不足のために)invalidate()
との間の遅延を導入しているようonDraw()
です。どういうわけかその遅延を減らすことはできますか?
比較的古いハードウェアでのテスト - Android 2.1 を搭載した HTC Magic。