largeHeap = true清单标签不起作用?

stk*_*stk 19 java android

我正在开发一个非常耗费内存的应用程序,并希望使用largeHeap-Tag,它应该为应用程序提供更多内存.无论我在AndroidManifest.xml中将此标记设置为什么,它对我给出的实际内存没有任何影响.我正在读出这样的最大记忆:

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

我的清单看起来很像这样:

<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>
Run Code Online (Sandbox Code Playgroud)

我在模拟器中运行3.1,我上面的日志输出总是48MB.有人可以帮忙吗?

Die*_*ano 12

使用ActivityManager.getMemoryClass()ActivityManager.getLargeMemoryClass()来验证分配给应用程序的近似值.


Cli*_*ize 9

实际上,在您的应用程序需要更多内存用于任务之前,大堆将与普通堆相同.您的VM将在控制台上显示此类消息:

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
Run Code Online (Sandbox Code Playgroud)