Существует множество способов получить производительность вашего устройства.
- Убедитесь, что вы не делаете смешивание или рисование, в котором вы не нуждаетесь, и, как показывает опыт, большинство устройств HTC более низкого уровня (например, желание) имеют ограниченную скорость заполнения.
- Используйте треугольные полосы вместо треугольников.
- Используйте элементы draw и кешируйте ваши вызовы, например, загружайте буфер вершин и вызывайте draw несколько раз для кадра.
Но самое главное использовать DDMS с профилированием метода, чтобы определить, где на самом деле находятся ваши узкие места, они могут быть местами, которых вы не ожидаете, например, ведение журнала, gc, медленная работа в цикле. Вы сможете увидеть, сколько времени занимает рендеринг и сколько других операций. (ищите GLImpl.glDrawElements)
Мои самые большие были с GC, запускающим слишком часто (5 раз в секунду, и мои fps были очень вялыми), что вы часто будете видеть с выделением памяти в местах, о которых вы даже не подумаете. Например, если вы объединяете строку с плавающей точкой с помощью оператора + или везде используете традиционные функции java get () или (наихудшие) коллекции, это создает большое количество объектов, которые могут вызывать GC.
Также, если у вас дорогие операции, выделите их в отдельный поток.
Также я предполагаю, что вы создаете свою текстуру один раз и каждый раз используете один и тот же индекс. Я видел несколько руководств, которые создают текстуру каждый раз, когда отображается кадр.
При широком использовании DDMS я смог взять fps от 12 до 50 на HTC Desire для оживленной сцены.
Надеюсь, что вы движетесь в правильном направлении :)