6.15 Memory Analysis Tool(MAT)
MAT工具是一个检测内存泄漏的利器,在Eclipse时代,MAT是Eclipse的一个插件。在Android Studio时代,开发者可以下载独立的MAT工具进行内存分析,下载地址如下所示:
独立的MAT工具如图6.63所示。
图6.63 MAT主界面
另外,还需要准备一段带有内存泄漏的代码,如下所示。
- public class MainActivity extends AppCompatActivity {
- private TextView mTv;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- LeakThread leakThread = new LeakThread();
- leakThread.start();
- }
- private class LeakThread extends Thread {
- @Override
- public void run() {
- super.run();
- try {
- Log.d("xys", "Leak!");
- // 模拟耗时操作
- Thread.sleep(5000 * 3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
这段内存泄漏的代码非常常见,即内部类hold住了Activity的引用而导致Activity无法被释放。
