SurfaceView против Custom View (расширен от View).SurfaceView медленнее, почему? - PullRequest
5 голосов
/ 20 августа 2010

Я написал одну и ту же программу двумя способами.

Один использует Surfaceview, а другой - пользовательский вид. Согласно руководству по разработке Android SDK, лучше использовать вид поверхности, потому что вы можете создавать отдельный поток для обработки графики. Руководство по разработке SDK утверждает, что использование настраиваемого представления с недействительными вызовами полезно только для медленной анимации и менее интенсивной графики.

Однако в моем простом приложении я ясно вижу, что использование настраиваемого представления с вызовами для аннулирования кажется более быстрым.

Что вы, ребята, знаете / думаете об этом?

Мой код touchEvent точно такой же, а мой код рисования точно такой же. Единственное отличие состоит в том, что один из них находится в потоке пользовательского интерфейса, а другой использует протектор для обработки чертежа.

1 Ответ

2 голосов
/ 20 августа 2010

SurfaceView позволяет работать с 2 буферами для рисования, как насчет вашего пользовательского вида?

Еще одна вещь: вы упомянули, что документ говорит, что invalidate работает быстро при медленной анимации / менее интенсивной графике.Насколько интенсивно ваше "простое приложение"?Вы должны попытаться выполнить стресс-тест, а также принять во внимание, как один поток обрабатывает ваш сенсорный ввод.

У меня есть 3 потока в моей игре.Один для игровой логики, один для рисования, а затем «нормальный» поток пользовательского интерфейса ...

...