стратегия сохранения данных в приложении blackberry - PullRequest
1 голос
/ 27 января 2010

Я просматривал документацию по Blackberry, и они описывают 3 различных механизма для сохранения данных приложения:

  1. Постоянный магазин API
  2. MIDP RMS API
  3. API файловой системы

Мне интересно следующее:

  1. Каковы плюсы / минусы каждого подхода
  2. Существует ли максимальный размер данных, которые можно сохранить? Меня не столько беспокоит размер отдельного объекта, сколько общий размер. Например, раньше для постоянного хранилища было ограничение в 64 КБ, но в последних версиях программного обеспечения оно было увеличено до нескольких МБ. Однако я не смог найти какие-либо сведения о максимальных размерах, которые можно сохранить.
  3. Один из подходов считается "лучшим способом" для сохранения данных?
  4. Какие-либо другие механизмы персистентности (такие как SQL-Lite), которые кто-либо предложил бы?

Ответы [ 2 ]

2 голосов
/ 27 января 2010

Мы используем API постоянного хранилища, потому что он действительно постоянный, даже при перезагрузке устройства. На самом деле это почти СЛИШКОМ постоянство, так как ваши постоянные данные не удаляются с устройства при удалении приложения (я думаю, если вы не сохраняете пользовательские объекты). Объем памяти ограничен только доступной флэш-памятью - квоты для каждого приложения отсутствуют.

РЕДАКТИРОВАТЬ: удален неточный комментарий о RMS

0 голосов
/ 27 февраля 2010

Проблема с RMS заключается в том, что данные часто (но не всегда) не сохраняются при обновлении приложений. Поэтому, если вы используете RMS, пользователям, возможно, придется переконфигурировать ваше приложение при каждом обновлении до новой сборки / версии. Это может или не может быть проблемой.

ИМХО, лучший способ - это Persistent Store (если вы не возражаете против подписи кода), в противном случае это RMS. Следует иметь в виду, что, хотя PS кажется намного проще, обеспечение устойчивости ваших постоянных данных к изменениям в приложениях усложняет задачу. Вот почему я держу свои классы данных конфигурации отдельно от классов, которые на самом деле сохраняются.

Теперь, если вам нужно массовое хранилище в стиле файла для чего-то более существенного, чем кеш или объект конфигурации, вы можете обратиться к API-интерфейсу FileConnection. Это дает вам гораздо больше потенциального пространства для хранения.

...