Два вопроса о максимальных размерах кучи и доступной памяти в android

Я вижу, что размер кучи автоматически увеличивается по мере необходимости приложения, вплоть до максимального размера кучи телефона. Я также заметил, что максимальный размер кучи различается в зависимости от устройства.

Итак, мой первый вопрос: каковы типичные максимальные размеры кучи на устройствах Android? Я тестировал выделение памяти на одном телефоне, который мог использовать кучу более 40 МБ, в то время как другой выдавал ошибки OutOfMemory в 20 МБ. Какие самые низкие значения используются обычно, а какие самые высокие на обычных устройствах? Есть ли стандартный или средний?

Второй и более важный вопрос: как обеспечить возможность использования ресурсов, доступных для каждого устройства, но не использовать слишком много? Я знаю, что существуют такие методы, как onLowMemory (), но они, похоже, предназначены только для всей системной памяти, а не только для кучи для вашего конкретного приложения.

Есть ли способ определить максимальный размер кучи для устройства, а также определить когда доступная память кучи достигает нижнего предела для вашего приложения?

Например, если устройство допускает максимальную кучу 24 МБ, а приложение приближается к этому пределу в распределении, то оно может обнаружить и уменьшить масштаб. Однако, если бы устройство могло комфортно обрабатывать больше, оно могло бы воспользоваться тем, что доступно.

Спасибо

22
задан cottonBallPaws 4 December 2010 в 02:54
поделиться