前些日子良心厂商 Square 又发布了一个叼叼的项目, LeakCanary。
方便检查内存泄露的工具。网上的大大们都在推荐,所以就在自己的项目里试了一下。
使用超级简单:
首先在build.gradle
里添加依赖。
1 2 3 4
| dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' }
|
然后在自己的应用里添加这样一行代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class MyApplication extends Application { private RefWatcher refWatcher = null;
@Override public void onCreate() { super.onCreate(); refWatcher = LeakCanary.install(this); }
public RefWatcher getRefWatcher() { ... } }
|
再然后,在需要检测的位置获取到 RefWatcher 对象,将需要检测的对象传入。
1 2 3 4 5 6 7 8
| public abstract class BaseFragment extends Fragment {
@Override public void onDestroy() { super.onDestroy(); RefWatcher refWatcher = MyApplication.getRefWatcher(getActivity()); refWatcher.watch(this); } }
|
跑起来测试测试就可以看到自己的 App 有木有问题啦。
恩,我已经发现自己的代码写的有多烂了。(泪奔 (>_<。)
参考: