美文网首页Android
Android 内存优化总结&实践

Android 内存优化总结&实践

作者: 酷酷de熊 | 来源:发表于2018-04-22 21:51 被阅读2次

    内存泄露

    大部分的内存问题都是内存泄露导致的,Android里也有一些很常见的内存泄露问题这里简单罗列下:

    详细见https://www.jianshu.com/p/c270148e993b

    单例(主要原因还是因为一般情况下单例都是全局的,有时候会引用一些实际生命周期比较短的变量,导致其无法释放)

    静态变量(同样也是因为生命周期比较长)

    Handler内存泄露[7]

    匿名内部类(匿名内部类会引用外部类,导致无法释放,比如各种回调)

    资源使用完未关闭BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap

    对Android内存泄露业界已经有很多优秀的组件其中LeakCanary最为知名(Square出品),其原理是监控每个activity,在activity ondestory后,在后台线程检测引用,然后过一段时间进行gc,gc后如果引用还在,那么dump出内存堆栈,并解析进行可视化显示。使用LeakCanary可以快速地检测出Android中的内存泄露。

    正常情况下,解决大部分内存泄露问题后,App稳定性应该会有很大提升,但是有时候App本身就是有一些比较耗内存的功能,比如直播,视频播放,音乐播放,那么我们还有什么能做的可以降低内存使用,减少OOM呢?

    1. 首先是解决大部分内存泄露。LeakCanary工具

    LeakCanary使用详解见:

    https://blog.csdn.net/itachi85/article/details/77826112?utm_source=gold_browser_extension

    Android 内存优化总结&实践

    2. 通过MAT查看内存占用,优化占用内存较大的地方。

    详细见:http://liuwangshu.cn/application/performance/ram-5-mat.html

    Android 内存优化总结&实践

    相关文章

      网友评论

        本文标题:Android 内存优化总结&实践

        本文链接:https://www.haomeiwen.com/subject/nlzxlftx.html