【问题标题】:Setting Application Specific Max Heap Size for the Android Dalvik VM为 Android Dalvik VM 设置特定于应用程序的最大堆大小
【发布时间】:2012-05-11 19:07:02
【问题描述】:

是否可以设置特定于应用程序的最大堆大小(dalvik.vm.heapsize 属性),而不是为运行在 Android 设备上的所有 VM 使用相同的最大堆大小?我知道我可以通过将设备的 AndroidRuntime.cpp 修改为 root 来设置新的 dalvik 堆大小,但根据我所阅读的内容,因为 Android 只初始化 VM 一次,然后分叉后续 VM 实例,所有在设备上运行的 VM 都具有相同的 dalvik .vm.heapsize 属性。我是否正确理解这一点,有什么办法可以解决吗?

【问题讨论】:

  • 您是否以 root 身份工作?我不认为有任何简单的解决方案,除非您想弄乱 dalvik 代码。
  • 是的,我以 root 身份工作,可以修改 dalvik 代码。我的想法是用 fork+exec 替换 dalvik 中的 VM 分叉,这样我就可以重新初始化 heapsize 属性,但我不知道这会导致什么样的性能劣势。对此有什么想法吗?

标签: android heap-memory dalvik


【解决方案1】:

更改应用程序堆大小的唯一内置方法是在 Manifest.xml 中设置 android:largeHeap="true"。这通常会将堆大小从 48 增加到 128。

请记住,这种方法仅适用于 3.0+ 设备。

【讨论】:

  • 感谢您的帮助。使用 largeHeap 设备分配的堆大小是特定的吗?我的目标是 API 级别 10,所以我想这不适合我。
  • 是的,堆大小最终由设备本身决定。
【解决方案2】:

使用这个应用程序你可以增加所需应用程序的堆内存

http://www.freeware4android.net/lg-c660-optimus-pro-device-2140/hacks-tweaks-tag/vm-heap-tool-download-27936.html

请记住,要使用此应用程序,您需要 root 您的设备,使用 SuperOneClick 应用程序来根您的设备。点击以下链接获取参考

http://www.makeuseof.com/tag/root-android-phone-superoneclick-2/

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 2010-12-03
    • 2013-11-12
    相关资源
    最近更新 更多