我目前正在开发一个android下的软件,我很快就得到了一些OutOfMemoryException ....我修改了部分代码以使用更多的静态变量而不是用“new”运算符进行新的分配但是有什么东西别的事呢?或任何其他提示?任何建议都会受到欢迎。
感谢。
答案 0 :(得分:3)
您可以在此处找到许多提示:http://developer.android.com/guide/practices/design/performance.html
特别注意避免创建对象主题。
答案 1 :(得分:1)
您还可以观看一些Google I / O会议,例如2009年的writing non-janky apps或how to make fast and efficient apps会议。
答案 2 :(得分:1)
如果您有一些资源可以随时重新加载到内存中,请考虑使用WeakReference
s。它们内部的对象将在(Java)VM抛出OutOfMemoryException之前被清除,因此会有更多可用内存。
答案 3 :(得分:1)
在垃圾收集器可以处理/回收它们之前,您可能正在访问太多资源(例如图像)。如果您正在访问特别大的图像,请使用BitmapFactory将其缩小,如图所示answered。 (当然,为此你会在logcat中看到类似“位图大小超过vm预算”的内容。) 有关错误的更多细节吗?