我正在尝试在Android应用程序中查找内存泄漏。 我有以下情况:
A类创建了一个创建线程的A $ 24类。这个线程引用了A类,所以这就是泄漏。 我知道A $ 24是在A类中创建的匿名类,但是我如何才能找到创建的位置,代码中的哪一行。 我的问题是要了解谁是有问题的线程。
答案 0 :(得分:1)
在资源透视图的项目浏览器中使用视图菜单,选择“自定义视图...”并取消选中“内部类文件”和“Java输出文件夹” ”。现在,您应该在“bin”文件夹中看到项目资源管理器中生成的类文件。
如果您导航到A $ 24.class文件,则可以双击打开它。在顶部寻找关于字段选择器的行,比如
// Field descriptor #10 Z
private final synthetic boolean val$fStartMinimized
在此示例中,匿名类使用最终字段 fStartMinimized (因此将其复制到匿名类中)。使用该字段名称,您应该能够找到有问题的任何类。
如果没有这样的字段声明(也没有方法名称给你一个线索),那么你可以通过ByteCode outline plugin获得更多的洞察力(但我自己从未使用过它)。