Производительность Android Canvas ужасна на Droid - PullRequest
0 голосов
/ 26 мая 2011

Последние несколько месяцев я разрабатывал игру для Android, и она почти закончена.Недавно я приобрел Motorola Droid для тестирования, так как разрабатывал игру с использованием HTC Incredible.На моем Incredible я могу получить довольно солидные 59 кадров в секунду на протяжении всей игры.На Droid игра становится очень изменчивой со средней скоростью около 40 кадров в секунду.Оба телефона работают под управлением Android 2.2.

Я посмотрел технические характеристики, вот единственные различия, которые я заметил, которые могут повлиять на игровой процесс: процессор с частотой 1 ГГц против 550 МГц и 512 МБ ОЗУ против 256 МБ ОЗУ.

Только ради хихиканья, я подумал, что доведу игру до минимального состояния, чтобы понять, виновата ли моя кодировка.Я разобрал его до такой степени, что единственное, что упало, это рисование главного меню и перемещение различных растровых изображений по экрану.Не более 45 кадров в секунду.

Итак, это приблизительная крышка для Motorola Droid?Если так ... моя игра довольно простая и не требует интенсивной загрузки процессора, так что я могу сделать?Существуют тысячи других игр для Android, которые намного более требовательны, чем моя, но, кажется, они работают очень гладко.

Это тот факт, что я использую встроенный в Android Canvas, а не Open-GL иликакая-то другая альтернатива?Кто-нибудь порекомендует сделать это?

Может ли кто-нибудь объяснить мне, в чем может быть моя проблема здесь?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

40fps довольно хорошо, человеческий глаз может обнаружить рывок только тогда, когда частота кадров падает ниже 25fps. Все, что выше 15fps, считается «полным движением».

Если вы видите джиттер, то, возможно, игра останавливается, когда включается сборщик мусора - вы можете уменьшить это, уменьшив количество создаваемых вами объектов, и вы сможете увидеть, как это происходит, используя ddms.

Кроме этого, возможно, есть сбой в расчете частоты кадров?

0 голосов
/ 26 мая 2011

OpenGL ES - это путь. Canvas, скорее всего, в любом случае реализован поверх OpenGL ES, и, судя по всему, не очень эффективно.

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