2012-04-19 3 views
0

Я программирую алгоритм сегментации изображения на платформе Android 2.2. При запуске следующей строки кода:из памяти при программировании на платформе Android

double[][] temp=new double[328][576]; 

есть исключение из памяти.

Однако я использую ActivityMannager.getMemoryInfo(), чтобы проверить доступное пространство памяти в системе, и я обнаружил, что есть свободное место 44851200 байт.

Я смущен, почему возникает исключение из памяти с еще свободным пространством в системе?

+0

попробуйте использовать «слабую ссылку» для коротких жизненных переменных в вашем приложении. –

+1

'ActivityMannager.getMemoryInfo()' сообщает вам о свободной памяти для * устройства *, а не только о вашем процессе. – CommonsWare

ответ

7

У Android ограничено распределение памяти для каждого процесса/приложения. Вы не можете использовать всю доступную память на телефоне только для своего приложения. В зависимости от устройства существует ограничение для каждого использования максимальной памяти процесса. Этот link может вам помочь.