Android безопасный метод загрузки текстур OpenGL - PullRequest
2 голосов
/ 09 июня 2011

Я работаю над своей первой игрой для Android, и у меня проблема. Группа пользователей сообщила об ANR на своих телефонах на этапе загрузки текстур. У меня есть несколько сжатых текстур в формате jpg, и распаковка на телефоне занимает около 2 секунд и загружаю их в opengl, и на эмуляторе это занимает полминуты, и я не получаю ANR ни в одном случае, тем не менее, я продолжаю получать отчеты ANR.

Я понимаю, что это тяжелая операция, и она может занять много времени (> 5 секунд). Поэтому мне нужно знать, как правильно выполнять всю эту длительную загрузку (это не приведет к ANR на любом устройстве).

Я использовал два метода, которые помогают эффективно избежать ANR на эмуляторе (я использую его для моделирования медленного устройства), но ни один из них не работает для пользователя:

1) Выполнить всю загрузку в методе onSurfaceCreated (...). 2) Разделите загрузку на множество мелких частей и выполните одно за другим в Метод OnDrawFrame (...).

Как правильно это сделать?

1 Ответ

2 голосов
/ 09 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...