Улучшения производительности SpannableStringBuilder?
Я пишу приложение, которое постоянно обновляет TextView с помощью SpannableStringBuilder, который использует тонну пролетов. Сравнительный анализ показывает, что неудивительно, что setText() и drawText() являются большими блокировщиками, а SpannableStringInternal.getSpans() имеет единственное наивысшее исключительное время ЦП.
Есть ли способ повторно использовать один и тот же промежуток, чтобы мне не приходилось засорять мой SpannableString несколькими одинаковыми промежутками? Есть ли другие способы улучшить производительность SpannableString?
1 ответ
После долгих экспериментов я обнаружил, что создание настраиваемого View, переопределяющего onDraw для рисования собственного текста, абсолютно подходит для этого. Нет способа помешать getSpans использовать массу отражений.