[英]How to release memory in Android?
我想知道如何以编程方式在Android中释放内存,因为我的布局包含很多视图,并且当我转到任何“活动”时,应用程序都会停止工作,并给我显示内存不足错误。
So what is the way to release Memory ?
Android已经定义了如何使用它。
可能的原因:
出现内存不足错误的原因有很多。 其中一些是:
您正在执行一些连续需要大量内存的操作,并且在某些时候它超出了进程的最大堆内存限制。
您正在泄漏一些内存,即您没有使分配的先前对象符合垃圾收集(GC)的条件。 这称为内存泄漏。
您正在处理大型位图,并在运行时加载所有位图。 您必须非常小心地处理大型位图,方法是一次加载不需要整个位图的大小,然后进行缩放。
诊断OOM的工具:
在Android中,有一些工具可用于查找内存泄漏,其中之一是MAT(内存分析器工具)。 它可以用作Eclipse的插件或独立的工具。
让我们开始安装MAT并将其与Eclipse一起使用,并提供逐步指南:
hprof-conv com.example.android.hcgallery.hprof mat.hprof
我发现Android应用程序的内存分析还有另外一件事
您不能只是释放内存,如果不使用该对象,则垃圾收集器作业将找到该对象的引用,然后垃圾收集器将启动。
问题是您有lots of nested View
,这些lots of nested View
消耗大量内存,您可以最小化视图以使用较少的堆内存空间,也可以在需要时动态添加视图,而在不需要时删除其他视图节省内存空间。
我使用此onBackPressed事件,它完全释放了我的应用程序进程:
android.os.Process.killProcess(android.os.Process.myPid());
希望对你有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.