Open zgq105 opened 5 years ago
Android Profiler是Android Studio中提供的性能检测工具,里面包括能源分析器、CPU监控、内存监控和网络监控。这里以内存监控为例简单做个总结。 1.1 打开工具,Run -> Profiler 'app'打开检测工具。 1.2 选择memory项,查看内存使用情况,有工具条可以强行内存回收和查看堆信息等。 1.3 在 Heap Dump中,可以选择按包过滤类,就以方便查看应用中的类使用的内存情况。 1.4 查看堆中的类的变化就可以知道类对象是否有没被回收,从而判断是否存在内存泄漏。
LeakCanary是一款开源的内存泄漏查看工具,具体使用步骤为: 2.1 在build.gradle中添加第三方库的引用。
dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' }
2.2 在Application#onCreate初始化框架。
public class MyApplication extends Application { public static RefWatcher getRefWatcher(Context context) { MyApplication application = (MyApplication ) context.getApplicationContext(); return application.refWatcher; } private RefWatcher refWatcher; @Override public void onCreate() { super.onCreate(); refWatcher = LeakCanary.install(this); } }
2.3 使用工具监听Activity。
@Override protected void onDestroy() { super.onDestroy(); RefWatcher refWatcher = MyApplication.getRefWatcher(this); refWatcher.watch(this); }
注:如果检测到Activity有内存泄露,LeakCanary就是自动地显示一个通知。
内存泄漏工具是帮助我们提升开发效率和优化代码的好帮手,我们在开发中需要善用工具帮助我们解决问题,提升生产效率。
1. Android Profiler
Android Profiler是Android Studio中提供的性能检测工具,里面包括能源分析器、CPU监控、内存监控和网络监控。这里以内存监控为例简单做个总结。 1.1 打开工具,Run -> Profiler 'app'打开检测工具。 1.2 选择memory项,查看内存使用情况,有工具条可以强行内存回收和查看堆信息等。 1.3 在 Heap Dump中,可以选择按包过滤类,就以方便查看应用中的类使用的内存情况。 1.4 查看堆中的类的变化就可以知道类对象是否有没被回收,从而判断是否存在内存泄漏。
2. LeakCanary
LeakCanary是一款开源的内存泄漏查看工具,具体使用步骤为: 2.1 在build.gradle中添加第三方库的引用。
2.2 在Application#onCreate初始化框架。
2.3 使用工具监听Activity。
注:如果检测到Activity有内存泄露,LeakCanary就是自动地显示一个通知。
3. 小结
内存泄漏工具是帮助我们提升开发效率和优化代码的好帮手,我们在开发中需要善用工具帮助我们解决问题,提升生产效率。