我有一个新手问题。这是Android studio中内存选项卡的屏幕截图。有人可以提供一些有关可接受内存消耗的近似数据吗?是否有限制最大内存使用的界限?我应该担心分配的内存是否在11Mb左右?可接受的libgdx内存消耗
1
A
回答
2
它似乎像你没有太多的可用内存,并且分配的内存应该更多。我遇到了同样的问题,这是因为我没有正确关闭游标,也是因为我没有回收位图存储器,而是从文件中获取图形,而不是从可绘制资源中获取图形。你可以告诉你有多少内存可用于你的应用程序:
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
int memoryClass = am.getMemoryClass();
Runtime rt= Runtime.getRuntime();
long maxMemory = rt.maxMemory();
long freeMemory = rt.freeMemory();
Log.d("Memory Available", "memoryClass:" + Integer.toString(memoryClass));
Log.d("Max Memory Available", "max memory:" + Long.toString(maxMemory));
Log.d("Free Memory", "Free Memory: " + Long.toString(freeMemory));
+0
谢谢你停下来。我注意到,当应用程序在不同的设备上运行时,分配的内存会有所不同。你有没有机会知道为什么会发生这种情况? – brumbrum
+0
@ krompir2 - 对于我的应用程序,分配的内存各不相同,具体取决于设备。 Note 3比Nexus 7表咀嚼了3倍的内存分配。 –
相关问题
- 1. 什么是可以接受的android内存消耗?
- 2. 内存消耗
- 3. HSQLDB内存消耗
- 4. QRegularExpressionMatch内存消耗
- 5. Direct2D内存消耗
- 6. QTreeView内存消耗
- 7. EntityManager内存消耗
- 8. Boost.Flyweight内存消耗
- 9. Luakit内存消耗
- 10. 占内存消耗
- 11. Android图形巨大的堆内存消耗? - LibGDX
- 12. BigDecimal(Java)的内存消耗
- 13. EF的内存消耗
- 14. Android的内存消耗
- 15. Cherrypy中的内存消耗
- 16. 的std :: istream_iterator,内存消耗
- 17. Magick.NET中的内存消耗
- 18. Tomcat的内存消耗
- 19. SQLite的内存消耗?
- 20. java的内存消耗Collection.sort()
- 21. PHP的TeeChart内存消耗
- 22. Emgu CV - 内存泄漏(内存消耗)
- 23. .NET内存消耗问题
- 24. JTextArea消耗大量内存
- 25. Tomcat 6内存消耗
- 26. Netty 4 beta1内存消耗
- 27. CGImageRef |内存消耗|泄漏
- 28. MongoDB内存消耗低
- 29. Node.js和MongoDB内存消耗
- 30. KDB/Q内存消耗
大多数游戏将使用超过11mb的方式,所以你应该没问题。在开发过程中记住可用内存的数量。如果你需要它,请求一个大堆(我相信在androidmanifest中)也会给你更多的内存。 – JonasCz
16MB是一些真正旧设备的限制。可能不在任何少于三四岁的设备上。该限制仅适用于Java堆。本机内存不受每个应用的限制。游戏中绝大多数内存可能来自你的纹理和像素图的本地内存。大多数Java内存使用可能来自您的代码(类,枚举,原语),也许听起来像是。如果你使用Proguard,你可能会看到它会下降很多,因为你没有使用所有的Libgdx类。 – Tenfour04
感谢您的意见。我注意到在某些设备上分配的内存较低。这是为什么?在一台设备上,分配的内存仅为4Mb,启动后应用程序崩溃,屏幕上未显示错误消息。分配的内存是否可能降低并导致崩溃?这个问题可以在这里找到http://stackoverflow.com/questions/34616201/libgdx-game-crashes-on-some-devices – brumbrum