在尝试了解Android应用程序中的内存使用情况时(为了分析我的游戏),我在eclipse中创建了一个新的android项目,然后运行它并查看内存使用情况。
似乎即使是骨架应用程序也使用超过2.5MB的内存。在这篇文章的末尾粘贴了来自MAT eclipse的支配树的转储。这有意义吗?如果我正在使用(通常)16MB的硬限制,并且应该为其他应用留出空间,那么我自己的代码是什么?
欢呼声
班级名称|浅堆|保留堆|百分比
org.apache.harmony.xnet.provider.jsse.TrustManagerImpl @ 0x40462d80 | 24 | 228,704 | 10.43% class android.text.Html $ HtmlParser @ 0x40185640系统类| 8 | 126,632 | 5.77% org.bouncycastle.jce.provider.BouncyCastleProvider @ 0x400eaf50 | 112 | 62,688 | 2.86% class org.apache.harmony.security.fortress.Services @ 0x400e1370系统类| 32 | 53,880 | 2.46% class com.android.internal.R $ styleable @ 0x40086f00 System Class | 4,592 | 38,288 | 1.75% class android.R $ styleable @ 0x400520c8 System Class | 4,512 | 37,856 | 1.73% class libcore.icu.TimeZones $ CachedTimeZones @ 0x40440680 System Class | 16 | 37,712 | 1.72% class android.content.res.Resources @ 0x40071678系统类| 40 | 37,176 | 1.69% class android.text.AutoText @ 0x40170bd0系统类| 56 | 31,656 | 1.44% org.bouncycastle.jce.provider.JDKKeyStore @ 0x4024c830 | 16 | 16,200 | 0.74% 的char [8060] @ 0x400b8a08非洲/ AbidjanAfrica / AccraAfrica / Addis_AbabaAfrica / AlgiersAfrica / AsmaraAfrica / AsmeraAfrica / BamakoAfrica / BanguiAfrica / BanjulAfrica / BissauAfrica / BlantyreAfrica / BrazzavilleAfrica / BujumburaAfrica / CairoAfrica / CasablancaAfrica / CeutaAfrica / ConakryAfrica / DakarAfri ... | 16,136 | 16,136 | 0.74% class org.apache.harmony.security.utils.AlgNameMapper @ 0x40084650 System Class | 24 | 15,336 | 0.70% android.content.res.StringBlock @ 0x40171268 | 32 | 12,088 | 0.55% class org.bouncycastle.crypto.engines.AESFastEngine @ 0x40076930 System Class | 64 | 9,440 | 0.43% class android.opengl.GLES20 @ 0x400313a0系统类| 1,216 | 8,480 | 0.39% class org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl @ 0x40046ee0 System Class | 8 | 7,776 | 0.35% class org.apache.harmony.luni.internal.util.ZoneInfoDB @ 0x400a13a0系统类| 40 | 7,640 | 0.35% class java.lang.System @ 0x40010540 System Class | 24 | 7,360 | 0.34% class com.ibm.icu4jni.util.LocaleData @ 0x4000e0b0 System Class | 8 | 6,768 | 0.31% class android.opengl.GLES10 @ 0x4002e330系统类| 968 | 6,768 | 0.31% class javax.microedition.khronos.opengles.GL10 @ 0x4002b3a8 System Class | 952 | 6,656 | 0.30% class java.lang.Character $ UnicodeBlock @ 0x40217b78 System Class | 512 | 6,112 | 0.28% class android.provider.Settings $ System @ 0x401680a0系统类| 568 | 6,008 | 0.27%
答案 0 :(得分:1)
这里没有问题。一个基本的应用程序将使用许多内存。
如果我正在使用(通常)16MB的硬限制,应该离开 其他应用程序的空间
您无需担心其他应用。 Android操作系统会对它进行排序。最低通常是每个应用程序16兆,而不是你说的总应用程序。