1

我有这个问题Android: Screenorientation error + VM won't let us allocate x bytes 所以我决定下载 Eclipse Memory Analyzer。当我的错误出现并且我有 3 个可疑问题时我运行它,但我不明白它可能来自哪里。+ 我真的不知道我的问题是否是由于内存泄漏,因为可能的泄漏只占用 2.2;B 空间 在此处输入图像描述

问题嫌疑人 1

2,094 instances of "java.lang.Class", loaded by "<system class loader>" occupy 789,200 (33.76%) bytes. 

Biggest instances:
•class android.text.Html$HtmlParser @ 0x4018d3f0 - 126,632 (5.42%) bytes. 
•class org.apache.harmony.security.fortress.Services @ 0x400e2e58 - 53,880 (2.30%) bytes. 
•class com.android.internal.R$styleable @ 0x400882c0 - 38,072 (1.63%) bytes. 
•class libcore.icu.TimeZones$CachedTimeZones @ 0x40444fa8 - 37,712 (1.61%) bytes. 
•class android.R$styleable @ 0x40055940 - 37,640 (1.61%) bytes. 
•class android.content.res.Resources @ 0x40075178 - 36,032 (1.54%) bytes. 
•class android.text.AutoText @ 0x40178980 - 31,656 (1.35%) bytes. 


Keywords
java.lang.Class

问题嫌疑人2

128 instances of "org.bouncycastle.jce.provider.X509CertificateObject", loaded by "<system class loader>" occupy 455,112 (19.47%) bytes. These instances are referenced from one instance of "java.util.Hashtable$HashtableEntry[]", loaded by "<system class loader>"

Keywords
org.bouncycastle.jce.provider.X509CertificateObject
java.util.Hashtable$HashtableEntry[]

问题嫌疑人 3

6,822 instances of "java.lang.String", loaded by "<system class loader>" occupy 418,104 (17.89%) bytes. 

Keywords
java.lang.String

你觉得我有漏吗?我们可以从我发布的内容中说出来吗?谢谢

4

1 回答 1

0

在 Android 上,我认为泄漏 Activity 上下文非常容易。因此,我用来查找内存泄漏的最常见方法是打开 OQL 选项卡,然后输入 'select * from instanceof android.app.Activity' 。然后你可以看到那里有多少个 Activity 实例,你可以根据自己的判断来判断是否存在泄漏。您也可以右键单击其中一个 Activity 实例,然后单击“GC 路径”->“排除所有软/弱/幻像引用”。然后你可以看到对链中活动的引用。祝你好运 !

于 2013-11-21T04:14:02.860 回答