Какова ожидаемая память, используемая скелетным приложением для Android?

Пытаясь понять использование памяти в приложениях для Android (с целью профилирования моей игры), я создал новый проект Android в eclipse, затем запустил его и посмотрел на использование памяти.

кажется, что даже приложение-скелет использует более 2,5 МБ памяти. В конце этого поста вставлен дамп дерева доминаторов из MAT eclipse. Имеет ли это смысл?

Если я работаю с жестким ограничением (обычно) 16 МБ и должен оставить место для других приложений, каков примерный показатель памяти для моего собственного кода?

ваше здоровье

Class Name Shallow Heap Retained Heap Percentage
org.apache.harmony.xnet.provider.jsse.TrustManagerImpl @ 0x40462d80 24 228,704 10.43%
class android.text.Html$HtmlParser @ 0x40185640 System Class 8 126,632 5.77%
org.bouncycastle.jce.provider.BouncyCastleProvider @ 0x400eaf50 112 62,688 2.86%
class org.apache.harmony.security.fortress.Services @ 0x400e1370 System Class 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 System Class 40 37,176 1.69%
class android.text.AutoText @ 0x40170bd0 System Class 56 31,656 1.44%
org.bouncycastle.jce.provider.JDKKeyStore @ 0x4024c830 16 16,200 0.74%
char[8060] @ 0x400b8a08 Africa/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 System Class 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 System Class 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 System Class 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 System Class 568 6,008 0.27%
org.apache.harmony.security.provider.crypto.CryptoProvider @ 0x40151888 112 5,512 0.25%


person danadana    schedule 21.03.2012    source источник
comment
На какой платформе вы разрабатываете? В зависимости от того, откуда вы взяли 16 МБ, возможно, это ограничение в 16 МБ для каждого приложения, а не для всех приложений. Использование 2,5 МБ только для базового приложения неудивительно, одних только ресурсов в некоторых случаях может быть в несколько раз больше.   -  person Sam Judd    schedule 22.03.2012


Ответы (1)


Здесь нет проблем. Базовое приложение будет использовать несколько мегабайт оперативной памяти.

Если я работаю с жестким ограничением (обычно) 16 МБ и должен оставить место для других приложений

Вам не нужно беспокоиться о других приложениях. ОС Android сортирует это. И минимум обычно составляет 16 мегабайт на приложение, а не общее количество приложений, как вы сказали.

person Daniel Ryan    schedule 08.10.2012