我已经设法使用DDMS(很棒的工具)将我的分配降到了最低点,这大大减少了我的GC每3分钟大约1或2.尽管如此,我并不高兴,因为当你与它进行互动时,这些通常会导致游戏中的显着延迟(在某些手机上).
使用DDMS,我知道分配是什么,它们是从用于显示游戏信息的整数转换为HUD的字符串.
我基本上是这样做的:
int playerScore = 20929;
String playerScoreText = Integer.toString(playerScore);
canvas.drawText(playerScoreText, xPos, yPos);
Run Code Online (Sandbox Code Playgroud)
一旦每次帧更新并且HUD系统是模块化的,就会发生这种情况,因此我在需要时插入内容,这可能导致4或5个hud元素在DDMS中分配字符串和AbstractStringBuilders.
有什么方法可以进一步减少这些或消除所有String分配并只重用一个String对象?
谢谢,Albert Pucciani
android ×1