largeHeap=true тег манифеста не работает?

Я занимаюсь разработкой приложения, занимающего очень много памяти, и хочу использовать тег LargeHeap, который должен дать приложению немного больше памяти. Независимо от того, на что я установил этот тег в AndroidManifest.xml, это не имеет значения для фактической памяти, которую мне дали. Я читаю свою максимальную память следующим образом:

Log.v("Utils","Max Mem in MB:"+(Runtime.getRuntime().maxMemory()/1024/1024));

Мой манифест выглядит примерно так:

<application android:label="@string/app_name" android:hardwareAccelerated="true" android:largeHeap="true" android:debuggable="true">

    <activity android:name=".EntryActivity" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

Я использую 3.1 в эмуляторе, выход из моего журнала всегда 48MB. Может кто-нибудь помочь?

2 ответа

Решение

Используйте ActivityManager.getMemoryClass() и ActivityManager.getLargeMemoryClass(), чтобы проверить приблизительные значения, назначенные вашему приложению.

Действительно, большая куча будет такой же, как обычная куча, пока вашему приложению не понадобится больше памяти для выполнения задачи. Ваша ВМ будет отображать такие сообщения на консоли:

06-30 15:38:14.770: INFO/dalvikvm-heap(9075): Grow heap (frag case) to 42.365MB for 6152016-byte allocation
06-30 15:38:16.680: INFO/dalvikvm-heap(9075): Grow heap (frag case) to 39.739MB for 3517456-byte allocation
Другие вопросы по тегам