note
笔记
使用插件化后,leakcanary内存泄露检测到的activity都是代理页面,编写以下脚本,当内存泄露的页面很多时,方便整理,分类
StringBuffer sb = new StringBuffer(); java.util.HashSet hashset = new java.util.HashSet<>(); for (int i = 0; i < leaks.size(); i++) { DisplayLeakActivity.Leak l = (DisplayLeakActivity.Leak) leaks.get(i);
List<com.squareup.leakcanary.LeakTraceElement> elements = l.result.leakTrace.elements;
int length = elements.size();
com.squareup.leakcanary.LeakTraceElement current = elements.get(length - 1);
if (current.toString().indexOf("PluginContainerActivity") != -1) {
current = elements.get(length - 2);
}
if (hashset.contains(current.toString())) {
continue;
}
hashset.add(current.toString());
sb.append(l.result.leakTrace.toString());
sb.append("\r\n");
} sb.toString();