我有一個新手問題。這是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