zoukankan      html  css  js  c++  java
  • Android性能优化之避免内存泄漏的建议

    android程序开发中,内存泄漏问题是比较常见的问题,相信有过一些android编程经历的程序猿都遇到过各种各样的内存泄漏。内存泄漏是造成应用程序OOM的主要原因之一,是编程中必须避免的问题。下面小编搜罗了几个避免内存泄漏的建议,分享给大家,一起来看看吧。

    1、对于生命周期比Activity长的对象,如果需要应该使用ApplicationContext ;

    2、在涉及到Context时先考虑ApplicationContext,当然它并不是万能的,对于有些地方则必须使用Activity的Context,对于Application,Service,Activity三者的Context的应用场景如下:

    **其中:**NO1表示Application和Service可以启动一个Activity,不过需要创建一个新的task任务队列。而对于Dialog而言,只有在Activity中才能创建 。

    3、对于需要在静态内部类中使用非静态外部成员变量(如:Context、View ),可以在静态内部类中使用弱引用来引用外部类的变量来避免内存泄漏 。

    4、对于生命周期比Activity长的内部类对象,并且内部类中使用了外部类的成员变量,可以这样做避免内存泄漏:

    1)将内部类改为静态内部类

    2)静态内部类中使用弱引用来引用外部类的成员变量

    5、对于不再需要使用的对象,显示的将其赋值为null,比如使用完Bitmap后先调用recycle(),再赋为null 。

    6、保持对对象生命周期的敏感,特别注意单例、静态对象、全局性集合等的生命周期。

    相关文章:《Android程序猿必须警示的13个坑

  • 相关阅读:
    Using Change Management and Change Control Within a Project
    swift3.0 label改变行间距
    swift清理缓存
    Alamofire的get请求,post请求,以及上传字典
    swift跳转时隐藏tabbar,跳回时显示
    swift获取当前的Version
    swift回收键盘
    OC中常用的设计模式
    关于iOS多线程
    理解 : UDID、UUID、IDFA、IDFV
  • 原文地址:https://www.cnblogs.com/gaobig/p/4997634.html
Copyright © 2011-2022 走看看