美文网首页Android基础面试知识
Android基础面试知识02-内存泄漏

Android基础面试知识02-内存泄漏

作者: ibore | 来源:发表于2021-03-24 22:28 被阅读0次

1. 什么是内存泄漏, 内存泄漏会导致什么问题?

指一个对象不再使用,本应该被回收,但由于某些原因导致对象无法回收,仍然占用着内存,这就是内存泄漏。

Java有一套自己的内存回收机制,但往往被一些不好的开发习惯导致对象无法回收,进而会使应用程序使用时间越长,内存占用率越高,超出系统给设置的阈值的时候就会造成OOM(Out Of Memory)内存溢出的问题。当应用切换到后台的时候,系统会优先回收内存占用率高的应用,造成应用的不稳定性(比如后台执行操作的时候直接被销毁了)


2. 内存泄漏产生的原因和解决方案

创建单例的时候引用Activity的Context,单例的周期和应用的周期一致,当Activity被销毁的时候,内存不会被回收。引用Application的Context即可解决

使用Thread+Hander或者AsyncTask进行耗时操作的时候,Activity被销毁的时候,耗时操作未完成,内存不会被回收,耗时操作完成时也会引起崩溃。在Activity销毁的时候,移除耗时操作

使用WebView的时候造成的内存泄漏,不同版本存在不同的问题。在Activity被销毁的时候,通过WebView的父布局移除WebView,或者开启新进程,在结束操作的时候直接System.exit(0)结束掉进程,但需要注意进程间的通讯

IO操作时,未关闭流,数据库操作时,未关闭游标


3. 如何检测内存泄漏

Square的开源库LeakCanary,内存泄漏时,会进行通知栏提醒

相关文章

  • (转载自diycode)2017 Android 面试题分享整理

    Android(安卓) Android基础知识 Android内存泄漏总结 Handler内存泄漏分析及解决 An...

  • Android内存泄漏

    文章包括两部分: (1)java内存泄漏基础知识 (2)Android内存泄漏。 一.Java内存泄漏基础知识 1...

  • Android基础面试知识02-内存泄漏

    1. 什么是内存泄漏,内存泄漏会导致什么问题? 指一个对象不再使用,本应该被回收,但由于某些原因导致对象无法回收,...

  • android内存泄露

    参考内存泄露从入门到精通三部曲之基础知识篇Android 内存泄漏总结Android内存泄漏研究Android内存...

  • android学习资料

    第一部分: Android(安卓) Android基础知识 Android内存泄漏总结 Handler内存泄漏分析...

  • Android学习之旅

    1.Android基础知识2.Android内存泄漏总结3.Handler内存泄漏分析及解决4.Android性能...

  • Android知识体系总结

    第一部分:Android(安卓)Android基础知识Android内存泄漏总结Handler内存泄漏分析及解决H...

  • 安卓面试基础知识点总结

    LearningNotes 第一部分: Android(安卓)Android基础知识Android内存泄漏总结Ha...

  • Android 内存泄漏

    【Android 内存泄漏】 引用: ★★★ 【知识必备】内存泄漏全解析,从此拒绝ANR,让OOM远离你的身边,跟...

  • Android面试知识整理-java篇

    Android面试知识整理-android基础知识 Android面试知识整理-性能优化 Android面试知识整...

网友评论

    本文标题:Android基础面试知识02-内存泄漏

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