为什么我的android应用在启动时使用了这么多的内存

| 我已经研究了一段时间的内存泄漏问题。 我在http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html的互联网上找到了封面报道 现在,我对这个应用程序造成了内存不足的问题印象深刻,它仍然可能与它有关。但是,我已经从应用程序中删除了所有内容,除了启动屏幕。没有其他活动。它什么也没有...... 初始意图将加载“启动屏幕”活动。 我的应用程序使用了79%到83%的可用堆。电话给了我281.6万,而我上次运行显然分配了227.8万。 首先,运行应用程序的3M可用空间似乎并不多。但是,当我唯一要做的是加载一个带有imageview指向图标资源约为4k的imageview的单个活动时,在初始启动时将2.2M加载到内存中似乎要消耗大量的内存…… 我的应用程序如何/为什么不使用那么多内存,却又如何缓解启动时80%的内存消耗。 我在T-Mobile G2上进行开发,除此应用程序和在droid上运行的默认服务外,我什么都没有运行。 这是我的一些内存转储信息 怀疑1
2,239 instances of \"java.lang.Class\", loaded by \"<system class loader>\" occupy 673,760 (35.83%) bytes.

Biggest instances:

class com.ibm.icu4jni.util.Resources$DefaultTimeZones @ 0x401dc878 - 166,600 (8.86%) bytes.
class android.text.Html$HtmlParser @ 0x4010de58 - 126,592 (6.73%) bytes.
class org.apache.harmony.security.fortress.Services @ 0x4007fd98 - 51,456 (2.74%) bytes.
class android.content.res.Resources @ 0x4004bb78 - 38,768 (2.06%) bytes.
class com.abc.AppData @ 0x44d1e040 - 26,872 (1.43%) bytes.


Keywords
java.lang.Class
怀疑2
7,072 instances of \"java.lang.String\", loaded by \"<system class loader>\" occupy 435,560 (23.16%) bytes. 

Keywords
java.lang.String
怀疑3
58 instances of \"org.bouncycastle.jce.provider.X509CertificateObject\", loaded by \"<system class loader>\" occupy 289,288 (15.38%) 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兆不是很好用。我正试图展示一个图片库。     
已邀请:
我过去曾遇到内存泄漏,但没有遇到过android。过去,我使用了Eclipse内存分析器工具(第二个链接),该工具非常有用。要使用它,您需要生成一个堆转储文件(或内存快照),该博客文章告诉您如何执行此操作(第一个链接)。 http://www.andorfi.net/2011/03/memory-analysis-for-android-applications/ http://www.eclipse.org/mat/     
调试和日志记录技巧可能有助于提供一些见解。 https://market.android.com/details?id=org.jtb.alogcat http://developer.android.com/guide/developing/debugging/index.html     

要回复问题请先登录注册