#android #performance #canvas #path
#Android #Производительность #холст #путь
Вопрос:
У меня есть 2 пути Android с одинаковыми действиями (moveto, lineto и т.д. ).
при рисовании и перемещении пути 1 это происходит быстро. (кадров в секунду)
при рисовании и перемещении пути 2 он в 10-20 раз медленнее. (кадров в секунду) Я использую тот же холст и ту же краску.
В чем может быть разница? Существуют ли какие-либо свойства пути, которые влияют на производительность рисования?
canvas.drawPath(thepath, paint); // FAST
//canvas.drawPath(thepath2, paint); // SLOW
Комментарии:
1. Почему a -1. Я спрашиваю, есть ли какое-либо свойство пути, которое влияет на поведение рисования?
2. Идентичны ли пути или у них разные формы? drawPath может быть быстрее с более простыми формами, такими как множество прямых линий, и очень медленным с большим количеством неровностей.
Ответ №1:
Переходя к более подробной информации о производительности приложений Android, вы можете использовать Systrace по этой ссылке. Systrace проверит, и вы можете легко узнать, где это занимает больше времени в thepath2.
Комментарии:
1. Вы также можете запустить файл cmd, перейдите по пути cmd к вашему Android sdk и запустите команду, вы получите точную проблему. И еще одна вещь: как только вы научитесь использовать systrace, вы сможете наилучшим образом управлять производительностью своего приложения
2. Спасибо, я попробую это и для других проблем. Но мне интересно, в чем может быть разница. Если бы выделили проблему только для путей. Так в чем же может быть разница?
3. Вы можете сопоставить оба процесса рисования путей и сопоставить их трассировку. Вы получаете то, что выполняется в фоновом режиме, что вызывает задержку в пути 2
4. Я не могу найти инструмент systrace в своей папке SDK. Я обыскал всю SDK-папку. Где это взять? Нужно ли мне что-то загружать.
5. Я предполагаю, что это Android Studio, но я в Eclipse. Я не знаю, как запустить systrace из eclipse? В DDMS у меня есть кнопка «Захватить общесистемную трассировку с помощью systrace». Он выдал мне HTML-файл размером 280 кб, который при открытии становится просто пустым белым. Также после ожидания 1 минуты. Я на правильном пути?