Пользовательский размер кучи на платформе Android?

Команда разработчиков программного обеспечения в нашем выпускном проекте попросила увеличить размер кучи для каждого процесса в Android. Они сказали, что по умолчанию установлено значение «16 МБ», чего им недостаточно. Как я могу настроить размер?

Я нашел закомментированную строку в файле: /acme/my_board/BoardConfig.mk в моем исходном коде Android:

# USE_CUSTOM_RUNTIME_HEAP_MAX := "64M"

Это то, что мне нужно отредактировать??


person Osama Gamal    schedule 23.07.2010    source источник
comment
Это куча по умолчанию для любого приложения, поэтому вы хотите изменить ее с помощью пользовательской сборки ОС или целью является изменение размера кучи во время выполнения определенного приложения?   -  person Quintin Robinson    schedule 24.07.2010
comment
Что ж, любой из них решит мою проблему. Однако второй вариант для конкретного намного лучше.   -  person Osama Gamal    schedule 24.07.2010
comment
Этот вопрос как бы связан с вопросом, который я задавал ранее по этой проблеме, который вы можете проверить здесь: stackoverflow.com/questions/3078301/ Согласно ответам, вам нужно изменить сборку ОС, а инструкции, размещенные в ответы должны делать то, что нужно, даже если я не пробовал их сам, потому что искал решение для конкретного приложения.   -  person Luis Miguel Serrano    schedule 24.07.2010


Ответы (2)


В вашем методе onCreate в вашей деятельности или, если вы хотите, чтобы это было для всех ваших приложений в пакете, onCreate пользовательского объекта приложения, добавьте

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

Изменить: также обратите внимание, что Android автоматически увеличивает размер кучи, если ему нужно больше. Таким образом, даже если по умолчанию может быть 16, если ему нужно больше, он увеличит его. Однако это может привести к небольшому сбою в реальном времени, что плохо. Поэтому, если вы знаете, что оно превысит 16, лучше сделать это заранее.

person Moncader    schedule 24.07.2010
comment
Также стоит отметить, что это ненадежный метод увеличения размера кучи приложения, см. developer.android.com/reference/dalvik/system/VMRuntime.html ... Этот класс устарел. это внутренний класс Dalvik, который не подходит для общего использования. Он будет удален из общедоступного API в будущем выпуске. - person Quintin Robinson; 24.07.2010

Я получил этот ответ через список рассылки платформы Android.

Вы можете изменить platform/dalvik/vm/Init.c

Например, чтобы сделать его 32 МБ, вы можете сделать ниже

gDvm.heapSizeMax = 32 * 1024 * 1024;

Другой предлагаемый подход – обновить system.prop.

С уважением, Мутху Субраманиам

person Osama Gamal    schedule 28.07.2010