2013-02-01 39 views
1

我有這個問題Android: Screen orientation error + VM won't let us allocate x bytes 所以我決定下載Eclipse Memory Analyzer。當我的錯誤出現時我運行它,我有3個疑問嫌疑人,但我不明白它可能來自哪裏。 +我真的不知道,如果我的問題是由於內存泄漏的可能的泄漏僅取2.2,B空間 enter image description hereAndroid:使用Eclipse內存分析器檢測泄漏

問題可疑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[] 

問題SUSPECT 3

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

Keywords 
java.lang.String 

你認爲我有泄漏嗎?我們可以從我發佈的內容中說出來嗎? 謝謝

回答

0

在Android上,我認爲泄漏Activity上下文非常容易。因此,我用來查找內存泄漏的最常用方法是打開OQL選項卡,然後輸入'select * from instanceof android.app.Activity'。然後你可以看到那裏有多少個Activity實例,你可以通過你自己的判斷來判斷是否存在泄漏。您還可以右鍵單擊其中一個活動實例,然後單擊「GC路徑」 - >「排除所有軟/弱/幻像引用」。然後,您可以看到鏈中活動的引用。 祝你好運!