Учитывая, ваше приложение падает каждый раз, давая «OutOfMemoryError»
DVM начинается путем выделения небольшой кучи, после каждого цикла сбора мусора он проверяет для свободнога кучи и сравнивает его к общей памяти кучи и добавляет еще память в случае, если разница слишком мала. Таким образом, куча может быть увеличена или уменьшена во время выполнения согласно требованию Dalvik VM от ОС.
Так что, когда их достаточно памяти в системе приложение не получить разбился, когда память стреляет до 80MB. (Предполагается, что 64MB это не предел размера кучи)
Да, есть жесткое ограничение на размер кучи каждого устройства, которое может быть увеличено с помощью «LargeHeapSize = true», но это может быть слишком дорогостоящим с точки зрения производительности приложения, поскольку увеличенный размер кучи прямо пропорционален времени, затрачиваемому процессом сбора мусора (поскольку GC теперь должен пересекать больше объектов внутри большей кучи). Так что это большой «НЕТ, НЕТ», пока вы точно не узнаете, что и почему вы собираетесь увеличить размер кучи.
на какой фактор размера кучи зависит:
Heap размер в основном зависит от разрешения устройства вы с использованием, в качестве более разрешения требуется больше изображения/размера растровых изображений, чтобы соответствовать в.(больше пикселей = требуется больше памяти для включения)
Хотя, у меня не было никаких письменных доказательств этого. По моему понимание Размер кучи также зависит от размера ОЗУ. Так, больше
размер RAM позволит более гибко многозадачности и меньшие
шансы на получение «OutOfMemoryError»
В случае, если необходимо знать точное количество динамической памяти, вы можете использовать, ActivityManager .getMemoryClass(). Этот метод возвращает целое число, указывающее количество мегабайта, доступного для кучи вашего приложения
ActivityManager.getLargeMemoryClass() для увеличения размера кучи
Что вы делаете, что требует так много пространства кучи? –
Я знаю, что это nitpicky, но я нахожу это невероятно раздражающим, когда люди не являются специфическими в отношении того, что им нужно для конкретного. Есть Nexus One, Nexus S, Galaxy Nexus, Nexus 4, Nexus 7 и Nexus 10. Вы сказали нам, что используете «Nexus», вы можете также сказать нам, что используете Android. Я предполагаю, что это 7 или 10, но cmon man ... –
http://stackoverflow.com/questions/5350465/android-heap-size-on-different-phones-devices-and-os- версии – dongshengcn