Android Gingerbread中的OpenGL性能不佳

jmp*_*rdo 5 performance android opengl-es android-2.3-gingerbread

我正在使用OpenGL 1.0为Android操作视频游戏.

我遵循了这个教程:http: //www.javacodegeeks.com/2011/06/android-game-development-tutorials.html

我已经在我目前的手机中创建了一个非常好且流畅(仅限30 FPS)的小型演示:HTC Sensation(Android 4.0.3 Ice Cream Sandwich).

另外,我在朋友的手机上测试了我的游戏,结果如下:

  • Galaxy S2 =完美!(30FPS)
  • Galaxy Note =完美!(30FPS)
  • HTC One S =完美!(30FPS)
  • 索尼Xperia Tipo =完美!(30FPS)
  • 三星Galaxy Ace GT-S5830 =非常差的性能> _ <'(<10FPS并在两部手机中测试过)

如果您比较Xperia Tipo和Samsung Ace之间的规格,您会发现它们几乎是相同的手机.

XPERIA TIPO:

  • 320 x 480分辨率
  • 512MB RAM
  • 高通MSM7227A 800MHz,GPU Adreno 200

三星GALAXY ACE:

  • 320 x 480分辨率
  • 278MB RAM
  • Qualcomm MSM7227 800 MHz,GPU Adreno 200

好吧,RAM不同,但我的游戏很简单,不消耗超过200MB!但表现完全不同.没意思!

但是......只有一件事是不同的!三星Galaxy Ace使用Android 2.3.X(Gingerbread),Xperia Tipo使用Android 4.0.3(ICS).

因此,我的矛头针对Android 2.3.X的问题 - Gingerbread或Galaxy Ace是垃圾手机.

但是......我强迫我的朋友安装AndEngine实例并对其进行测试,结果是Nexus ParticleSystem测试工作得非常好并且流畅.

我完全迷路了!为什么性能不同?我做错了什么?

一些额外的信息:

  1. 我按照该教程中的所有步骤操作.
  2. 我使用GL10(OpenGL 1.0).
  3. 没有着色器.
  4. FPS丢失没有增量时间(我认为这不会解决我的问题).
  5. 没有本机代码,只有Java.
  6. SystemClock.uptimemillis()和sleep()来控制FPS.
  7. MediaPlayer播放一首MIDI歌曲(没有更多声音).
  8. 带有大量alpha的纹理(2D游戏,是精灵的必需品).
  9. 的minSdkVersion = 8

如果您需要更多信息,请告诉我.

小智 0

RAM 可能是瓶颈。你知道Android 不能很好地处理图像。您正在回收位图吗?为什么不使用 OpenGL ES 2.0?我正在 Samsung Galaxy Ace 和 LG p500(均配有 Gingerbread)上开发游戏并进行测试,没有出现任何问题。我可以获得几乎 50 FPS。