Как решить проблему нехватки памяти в приложении j2me - PullRequest
0 голосов
/ 05 августа 2011

Я занимаюсь разработкой мобильного приложения в j2me.

Мое приложение выполняет следующие действия

  • Подключаю мобил с некоторым внешним устройством с блютузом
  • Отправить данные / команду на это устройство через Bluetooth
  • Получить ответ от этого устройства

Моя проблема в том, что устройство возвращает данные размером до 1000 КБ. Поэтому мое приложение выдает исключение «Недостаточно памяти».

Пожалуйста, помогите мне решить проблемы.

Ответы [ 5 ]

0 голосов
/ 05 августа 2011

Как насчет хранения данных во временном файле, чтобы вам не нужно было хранить все данные в памяти? Вы также можете увеличить выделение памяти, но однажды у вас снова возникнет та же проблема, если пользователь отправит еще больший файл.

0 голосов
/ 05 августа 2011

Обратите внимание, что в старых реализациях J2ME использовался недефрагментирующий менеджер памяти. Когда я создавал игры, мы должны были явно заказать наши распределения.

0 голосов
/ 05 августа 2011

Вы должны увеличить свою память ОС пройти через это. http://blogs.oracle.com/fkieviet/entry/classloader_leaks_the_dreaded_java

0 голосов
/ 05 августа 2011

Независимо от размера физического пространства на устройстве J2ME его объем памяти обычно варьируется от 64 до 512 КБ.Я думаю, что максимум на самом деле 512kb для J2ME.Хотя я могу ошибаться, я бы посмотрел на это.Это обычное явление, я всегда сталкивался с этой проблемой в дни тестирования J2ME в Jamdat Mobile.Многие устройства серии Motorola V были особенно известны тем, что выдавали эту ошибку.

Посмотрите на реализацию KVM на используемом вами устройстве, чтобы определить, каков истинный объем памяти.

Вы можете найти это полезным: http://java.sun.com/products/cldc/wp/KVMwp.pdf

0 голосов
/ 05 августа 2011

Причина проста: 1 МБ памяти на чипе недоступен на вашем устройстве. Поэтому постарайтесь разбить ваши данные на куски.

...