Android 内存泄漏分析工具

在上篇文章中了解了什么是「Android 开发中的内存泄漏」,这篇来记录一下在 Android App 开发中可以用什么工具来帮助开发者发现以及消除内存泄漏

Android Studio Profiler 工具

Android Studio 作为官方的 Android App 开发 IDE,功能越来越强大,从 Android Studio 3.0 开始提供 Profiler 来对 App 的 CPU、内存、网络、电量进行检测,帮助开发者发现 App 运行时潜在的问题
Android Studio Profiler

繼續閱讀
Android 开发中的内存泄漏

Android 开发中的内存泄漏

什么是内存泄漏

定义

程序中动态分配的内存因为某种原因未释放或无法释放

通俗的讲,就是一个长生命周期对象 A 持有了一个短生命周期 B 对象的引用,导致 B 销毁时无法被 GC 回收,造成的内存浪费。

危害

  • 用户对单次的内存泄漏并没有什么感知,但是当泄漏积累到内存都被消耗完,就会导致卡顿,甚至崩溃;
  • gc回收频繁 造成应用卡顿ANR:
  • 当内存不足的时候,gc会主动回收没用的内存.但是,内存回收也是需要时间的.- 内存回收和gc回收垃圾资源之间高频率交替的执行.就会产生内存抖动.
  • 很多数据就会污染内存堆,马上就会有许多GCs启动,由于这一额外的内存压力,也会产生突然增加的运算造成卡顿现象,
  • 任何线程的任何操作都会需要暂停,等待GC操作完成之后,其他操作才能够继续运行,所以垃圾回收运行的次数越少,对性能的影响就越少;
繼續閱讀