【发布时间】:2011-06-08 22:34:45
【问题描述】:
我一直在开发我的第一款 Android 游戏,但遇到了问题。 一群用户在加载纹理的阶段报告了他们手机上的 ANR。 我有一堆 jpg 压缩纹理,在我的手机上大约需要 2 秒才能解压 并将它们加载到opengl中,在模拟器上需要半分钟才能完成,在这两种情况下我都没有得到ANR,但我不断收到ANR报告。
我知道这是一项繁重的操作,可能需要很长时间才能完成(> 5 秒)。 所以我需要知道一种正确的方法来完成所有冗长的加载(不会在任何设备上导致 ANR)。
我使用了两种方法来有效避免模拟器上的 ANR(我用它来模拟慢速设备),但它们都不适用于用户:
1) 在 onSurfaceCreated(...) 方法中执行所有加载。 2) 将加载拆分成多个小部分,一个一个地做 OnDrawFrame(...) 方法。
正确的做法是什么?
【问题讨论】:
标签: java android opengl-es textures