`
407827531
  • 浏览: 1074097 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

android out of memory 内存泄露

    博客分类:
  • Bugs
阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

1.大量查询数据库时cursor没有关闭

错误写法:

Cursor cursor = getContentResolver().query( );

if(cursor != null)

{

       cursor.moveTOFirst();

       while(!cursor.isAfterLast())

       {

             ..............

         }

}

正确写法:

Cursor cursor = getContentResolver().query( );

if(cursor != null)

{

       cursor.moveTOFirst();

       while(!cursor.isAfterLast())

       {

             ..............

         }

        cursor.close;

        cursor = null;

}

2. Bitmap对象没有及时回收

   因为Bitmap对象比较占内存,所以,Bitmap对象用完之后,最好使用Bitmap.recyle() 来回收Bitmap对象所占的内存。

3. 在Adapter中没有使用缓存中的convertView

错误写法:

pubic View getView(int position, View convertView, ViewGroup parent)

{

       LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

       View view = inflater.inflate(R.layout.listview_item_manage_bookshelves,null);

       ........................

}

正确写法:

pubic View getView(int position, View convertView, ViewGroup parent)

{

      View view;

       if(convertView == null)

      {

              LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

              view = inflater.inflate(R.layout.listview_item_manage_bookshelves,null);

       }

       else

               view  = convertView;

        ........................

}

4. 根据Activity的生命周期,回收资源

   在OnStop() 或者 onDestroy()方法中,对一些方法,对象回收,例如:

   if(mArraryList != null)

         mArrayList = null;

     ......................

    .......................

   System.gc();
   System.gc();

5. 自定义的adapter等,当使用完后应该及时释放资源,将值置为null.如
   adapter = null;
   listview.setAdapter(null);
  

 

分享到:
评论

相关推荐

    android camera out of memory安卓照相机OOM问题的解决

    如果不能使用,请修改根目录下的project.property的android:target为你当前有的target(不知道怎么改的同学可以从8到21一个个数字去试哦) 程序实现点击屏幕后聚焦拍照功能,并把图片存入sd卡camera目录下。但打开时无...

    android bitmap outOfMemory解决方法

    7. **监控内存使用**:利用Android的`ActivityManager`或第三方工具如MAT(Memory Analyzer Tool),可以分析应用的内存使用情况,找出内存泄漏和不必要的内存占用。 通过以上方法,开发者可以有效地管理和控制...

    Android避免内存溢出(Out of Memory)方法汇总

    在Android开发中,内存管理是至关重要的,尤其是避免内存溢出(Out of Memory,简称OOM)。内存溢出会导致应用程序崩溃,影响用户体验。本篇文章将详细阐述如何在Android中有效地防止内存溢出,主要包括理解不同类型...

    HBuilderX uniapp打包内存溢出解决放案.zip

    uniapp项目体量过大时,打包H5会报错, - process out of memory 解决放案: 替换HBuildX内置\HBuilderX\plugins\node\node.exe版本 添加\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\...

    android内存泄露测试

    应用的不同状态(如前台、后台、隐藏等)对应不同的内存管理策略和OOM_adj值(Out Of Memory Adjacency),该值决定了应用在内存紧张时被系统杀死的优先级。合理设置并管理这些状态,有助于避免不必要的内存消耗和...

    Android 内存溢出和内存泄漏的问题

    内存溢出 (OOM)是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如只申请了一个integer,但给它存了long才能存下的数,那就会出现内存溢出。 内存泄露 (memory leak)是指程序在申请内存...

    Android-OOM.rar_memory android_memory for Android_out

    在Android开发过程中,"Out Of Memory"(OOM)错误是一个常见的问题,特别是在处理大量数据、图像或者长时间运行的任务时。这个错误表示应用程序消耗了过多的内存,超过了系统分配的限制,导致系统无法再为该应用...

    Android--memory.rar_android_mobile android

    在Android系统中,内存管理是开发者必须关注的重要一环,因为不当的内存使用可能导致应用程序崩溃或者性能下降,其中最严重的后果就是出现“内存溢出”(Out Of Memory, OOM)。本文将深入探讨如何在Android平台上...

    Android 内存溢出问题

    然而,如果应用程序在短时间内分配大量内存,或者持有大量无法释放的对象引用,就可能导致内存溢出(Out Of Memory,OOM)。 例如,错误信息"02-04 21:46:08.703: ERROR/dalvikvm-heap(2429): 1920000-byte ...

    Android 内存泄露

    这使得可用内存减少,从而可能引发应用运行缓慢、卡顿,甚至出现“Out of Memory”异常。 常见的内存泄漏场景包括: 1. 类的静态变量持有大数据对象:静态变量的生命周期与应用相同,如果它持有大数据对象的引用,...

    me_android_memory

    图片加载是内存消耗的大户,合理使用`BitmapFactory.Options`设置解码参数,避免加载过大图片导致OOM(Out Of Memory)错误。 9. **内存快照和比较**: 通过对比不同时间点的内存快照,可以找出内存占用增加的...

    Android 内存 泄露 实践分析1

    这会导致内存持续占用,随着时间推移,应用程序占用的内存逐渐增加,最终可能导致Out Of Memory (OOM)错误。从操作系统的角度看,内存泄露意味着可用的虚拟内存不断减少,直至耗尽。 **影响** 1. **导致OOM**: 频繁...

    Android内存溢出及内存泄漏原因进行

    内存溢出(Out Of Memory, OOM)和内存泄漏是两个常见的问题,它们可能导致应用崩溃、性能下降甚至用户体验恶化。下面我们将详细探讨这两个问题的原因以及相应的解决方案。 内存溢出(OOM)通常发生在应用程序请求...

    android内存分析

    - **大量消耗内存的对象**:例如,存储大量的Bitmap对象可能导致内存超出限制,从而触发`OutOfMemory`错误。 3. **静态变量的危害** `static`关键字用于声明类级别的变量,这些变量生命周期长,如果用来引用资源...

    Android防止内存溢出浅析.zip

    在Android应用开发中,内存溢出(Out Of Memory,简称OOM)是一个常见的问题,它会导致应用崩溃,严重影响用户体验。理解并防止Android应用中的内存溢出是优化应用性能的关键环节。以下是对Android防止内存溢出的...

    Android 图片下载以及内存处理防止OOM内存溢出 源码

    在Android开发中,图片的加载和内存管理是一个关键问题,特别是考虑到防止因内存溢出(Out Of Memory,简称OOM)而导致应用崩溃。本教程将详细探讨如何在Android中有效地进行图片下载和内存处理,以避免OOM的发生。 ...

    安卓Android源码——防止内存溢出浅析.zip

    Android系统使用Java虚拟机(Dalvik或ART)进行内存分配和管理,但如果不妥善处理,很容易引发内存溢出(Out Of Memory,简称OOM)。本篇文章将深入浅析Android源码中的内存管理机制,以及如何预防和处理内存溢出...

Global site tag (gtag.js) - Google Analytics