【问题标题】:Custom Heap Size in Android Platform?Android平台中的自定义堆大小?
【发布时间】:2011-03-20 08:47:36
【问题描述】:

我们毕业项目中的软件团队要求增加 Android 中每个进程的堆大小。他们说默认是“16MB”,这对他们来说是不够的。 如何自定义尺寸?

我在我的android源代码中发现文件中有注释行:/acme/my_board/BoardConfig.mk

# USE_CUSTOM_RUNTIME_HEAP_MAX := "64M"

这是我需要编辑的吗??

【问题讨论】:

  • 这是针对任何应用程序的默认堆,因此您想通过自定义构建操作系统来更改它,还是目标是在特定应用程序的运行时更改堆大小?
  • 好吧,他们中的任何一个都可以解决我的问题。但是,第二个选项“针对特定”要好得多。
  • 这个问题有点与我之前在这个问题上提出的问题有关,你可以在这里查看:stackoverflow.com/questions/3078301/… 根据答案,你必须更改操作系统构建,以及发布的说明答案应该可以解决问题,即使我自己没有尝试过,因为我正在寻找特定于应用程序的解决方案。

标签: android embedded porting heap-memory


【解决方案1】:

在您的活动中的 onCreate 方法中,或者,如果您希望它用于包中的所有应用程序,自定义 Application 对象的 onCreate,添加

dalvik.system.VMRuntime.getRuntime().setMinimumHeapSize(yournumberhere);

编辑:还请注意,如果需要更多堆大小,Android 会自动增加。所以即使默认值可能是 16,如果它需要更多,它会增加它。然而,这可能会在实时情况下造成一点小问题,这很糟糕。因此,如果您知道它会超过 16 个,最好提前做。

【讨论】:

【解决方案2】:

我通过 android-platform 邮件列表得到了答案

您可以更改platform/dalvik/vm/Init.c

例如要将其设为 32MB,您可以执行以下操作

gDvm.heapSizeMax = 32 * 1024 * 1024;

另一个建议的方法是更新您的 system.prop

问候, 穆图·苏布拉马尼亚姆

【讨论】:

    猜你喜欢
    • 2010-10-29
    • 2012-09-05
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多