Memory Profiler是Android Profiler中的一个组件,Android Profiler是Android Studio3.0用来替换之前Android Monitor的观察工具,主要用来观察内存,网络,cpu温度。今天着重介绍其中的Memory Profiler。它能够让你识别出来内存泄漏和内存抖动,导致应用卡顿,anr和crash. 它可以给你展示一个内存使用的真实图表,让你知道当时内存使用情况,还能强制内存回收,和跟踪内存分配.
如何打开Memory Profiler?
image.png
最后进入Memory Profiler
image.png
为什么要去观察应用内存的使用情况?
刚才也提到了Memory Profiler是用来解决内存分配中产生抖动,导致应用卡顿,anr和crash问题. 在Android系统内存管理上,它是提供一套内存回收机制去回收无用的对象,其实就是Dalvik虚拟机的垃圾回收器,当垃圾回收器启动回收机制的时候,其实会对应用的运行产生一点影响,但是这种影响来说一般微乎其微,察觉不到。但是如果你的内存分配比垃圾回收快很多,这种情况可能导致垃圾回收器回收内存不及时,从而导致应用出现卡顿的现象.(这其实就是内存抖动所产生的影响). 另外一个问题就是内存泄漏,内存的持续泄漏可能导致内存溢出,从而app运行出现outofmem异常。
Memory Profiler通过以下方面防治上面出现的问题:
1,观察不必要的内存分配。(这种内存分配导致效率降低)
2,Dump the Java heap 去观察指定时间对象的在内存中的分配情况,若干次Dump能够帮助你发现内存泄漏
3,测试极端的用户交互情况下的内存分配(比如说狂点某个请求按钮),看看内存使用情况如何,是否出现内存抖动.
Memory Profiler主面板介绍