一、前言
我们知道,Android系统检测到app有不再使用对象时,就会进行内存回收相关的工作。
尽管Android检测无用对象、回收内存的方法在不断改进,
但在目前所有的Android版本中,进行上述工作时,系统仍需要短暂地停止app的运行。
在大多数情况下,系统进行内存回收的行为是无法被用户察觉到的。
然而,如果应用分配内存的速度大于系统回收的速度,
那么app进程的正常运行可能就回受到影响。
毕竟,系统必须回收到足够的供app需要的内存,才会恢复处于暂停状态的app。
在这种情况下,app就可能出现掉帧、卡顿等现象。
在更严重的情况下,如果出现了内存泄露的问题,那么系统中就可能堆积无法释放的内存,
使得系统必须更加频繁地进行内存回收,从而降低系统的性能。
甚至在极端条件下,系统不得不杀死部分正在后台运行的app进程。
于是用户将后台应用移到前台时,却发现应用无故重启,这显然带来了较差的用户体验。
由此可见,内存对于app而言,是极其关键的性能指标。
目前,分析app内存的工具有很多,
本文主要记录一下Android Studio内置的内存分析工具Memory Profiler。
二、基本介绍
Memory Profiler是Android Profiler的一个组件, 用于帮助分析内存泄露和内存抖动的问题。
当PC连接Android L以上的设备时,该工具才能够正常使用。
Memory Profiler的功能包括:
展示应用内存使用情况的实时图像、抓取内存的dump信息、强制垃圾回收及追踪内存分配。
2.1 开启步骤
打开Memory Profiler的步骤为:
1、 依次点击Android Studio的View → Tool Windows → Android Profiler,
或直接点击工具栏Android Profiler对应的图标;
2、 PC连接Android终端后,在Android Profiler对应的区域选择接的设备和需要监控的进程:
3、 点击Android Profiler界面中MEMORY区域的任意位置,即可开启Memory Profiler,如下图所示: