`

Android内存泄漏总结

oom 
阅读更多
内存溢出(OOM)这是我们经常遇到的问题,引起OOM的原因是我们应用的问题,而不是系统问题,所以我们要在做项目之前就要细细的研究一下,哪些情况下可能引起OOM这样就不至于在项目搞得差不多了,再去找,这样就得不偿失了!

常见的容易引起内存泄漏的不良代码:

1、查询数据库没有关闭游标

	
// 操作完后关闭游标
Cursor cursor = null;
	try {
	  cursor = getContentResolver().query(uri ...);
	  if (cursor != null && cursor.moveToNext()) {
	  ... ...
	  }
	} finally {
	  if (cursor != null) {
	  try {
	  cursor.close();
	  } catch (Exception e) {
	  //ignore this
	  }
	  }
	}


2、进行流操作时没有关闭流

3、构造Adapter时,没有使用缓存的 convertView

4、 Bitmap对象不在使用时调用recycle()没有及时释放,尤其是进行大图操作


	    
if(bitmap != null && !bitmap.isRecycled()){   
	    	bitmap.recycle();   
	    	bitmap = null;   
	    	}   
	    	System.gc();  
	    }  



5、没有及时释放对象的引用

分享到:
评论

相关推荐

    Android内存泄漏总结1

    Android内存泄漏是开发者必须关注的重要问题,因为它直接影响到应用的性能和用户体验。内存泄漏指的是本应被释放的对象由于某种原因仍然被持有,导致垃圾收集器(GC)无法回收这些资源,从而占用宝贵的内存空间。本文...

    android内存泄露测试

    ### Android内存泄露测试详解 在Android开发中,内存管理是一项至关重要的任务,不当的内存管理会导致应用运行缓慢、崩溃甚至耗尽系统资源。内存泄露是内存管理中的一个常见问题,它指的是应用程序分配了内存但未能...

    Android内存泄露总结(附内存检测工具)

    栈区:当方法执行时,会在栈区内存中创建方法体内部的局部变量,方法结束后自动释放内存。堆区:通常存放new出来的对象。由Java垃圾回收器回收。栈内存用来存放局部变量和函数参数等。它是先进后出的队列,进出一一...

    Android App定位和规避内存泄露方法研究

    总结来说,Android应用内存泄露是一个复杂的问题,涉及到Android内存管理机制、应用设计和代码实现等多个方面。通过上述方法,我们可以有效地检测、定位和规避内存泄露问题,从而提升Android应用的性能和稳定性。

    Android内存泄漏详解专栏

    ### Android内存泄漏详解 #### 一、什么是内存泄漏? 内存泄漏是指程序中已分配的内存未得到及时释放或无法释放,导致系统中的可用内存逐渐减少,最终可能导致应用程序或整个系统运行缓慢甚至崩溃。 #### 二、...

    android性能优化之内存泄露

    #### 二、Android内存管理基础知识 在讨论内存泄露之前,我们需要了解一些基本概念。Android应用进程通常被分配一定量的RAM(例如:2MB到由`getMemoryClass()`或`getLargeMemoryClass()`返回的值),当内存不足时,...

    Android内存泄漏信息介绍(英文)

    总结起来,Android内存管理的核心知识点包括:并发垃圾回收(GC_CONCURRENT)、堆大小限制和申请、大堆内存的使用与性能影响,以及内存泄漏的检测和分析方法。开发者在编写应用时,应当有意识地管理内存使用,避免...

    Android内存泄漏解决方案

    ### Android内存泄漏解决方案 #### 一、概述 在Android应用开发过程中,内存管理是一个非常重要的环节。不当的内存管理不仅会导致应用性能下降,甚至可能导致应用崩溃。为了有效地管理和避免内存泄漏,开发者需要...

    jni层内存泄漏检测工具

    总结来说,JNI层内存泄漏检测工具LeakTracer是Android开发中的一个强大工具,它可以帮助开发者有效地定位和解决JNI层的内存泄漏问题,提升应用的性能和可靠性。通过深入研究和实践,开发者可以更好地掌握JNI内存管理...

    android内存泄露

    在Android开发中,内存泄露是一个严重的问题,它会导致应用程序占用过多的内存,...通过阅读"Android内存泄漏调试教程.pdf"和"有关内存泄露"等相关资料,开发者可以更深入地学习这一主题,提升自己的Android开发技能。

    Android内存优化——常见内存泄露及优化方案

    总结,Android内存优化是一个系统性的工作,涉及到多个层面,开发者需要深入理解内存管理机制,熟练掌握各种优化技巧,才能打造出运行流畅、占用资源合理的应用。通过持续学习和实践,开发者可以不断提升自己在内存...

    android应用内存泄露

    ### Android应用内存泄露详解 #### 一、内存泄露定义与理解 在Android开发过程中,内存泄露是一个常见的问题,尤其对于大型复杂的应用来说更是如此。内存泄露不仅会导致应用运行缓慢,严重时还会引起应用崩溃,极大...

    Android内存优化——常见内存泄露及优化方案.pdf

    总结来说,Android内存优化的核心在于避免内存泄露和合理分配内存资源。通过理解内存泄露的原因,运用恰当的设计模式和编程技巧,同时借助工具来监控和分析内存使用情况,可以有效地提升应用的性能,延长应用的生命...

    Android内存泄漏的八种可能.docx

    ### Android内存泄漏的八种可能 #### 一、前言 在Android开发中,内存管理是一项重要的技术领域。虽然Java作为一种垃圾回收语言,为开发者提供了许多便利,但在实际开发过程中仍然需要注意内存泄漏的问题。内存...

    【android】android之内存泄漏

    ### Android之内存泄漏详解 #### 一、引言 在Android开发过程中,内存泄漏是一个常见的问题,也是开发者必须重视的问题之一。本文将详细介绍内存泄漏的概念、产生的原因、以及如何避免内存泄漏,帮助开发者更好地...

    android项目内存泄露排查实用.pdf

    3. 分别取得 Android 2.3.5 和 4.0.3 上的 Heap dump,用 MAT 对比分析发现都不存在内存泄漏。 4. 问题陷入僵局,试着开始研究 Android 的内存管理机制,每个 Android 应用对应有一个自己的 Dalvik VM,而每个 ...

    Android内存管理小结

    ### Android内存管理知识点总结 #### 一、Dalvik虚拟机及其优势 - **Dalvik虚拟机简介**:Dalvik虚拟机是Android系统的核心组件之一,它负责执行Android应用中的Java字节码。与传统的Java虚拟机(JVM)不同,Dalvik...

Global site tag (gtag.js) - Google Analytics