Android - база данных против файловой системы и объектов - PullRequest
2 голосов
/ 04 ноября 2011

У меня следующий сценарий: я анализирую ответ JSON с сервера в базу данных sqlite, а затем использую базу данных и модели данных для запросов, фильтрации, ...

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

Теперь я хотел бы знать, кто-нибудь делает то же самое на Android?Будет ли проблемой иметь в приложении, скажем, 1000 HashMap-объектов (каждый из которых имеет около 10 других объектов (строк))?Мне кажется, это сильно снизит производительность моего приложения?Но почему это хорошо работает на iOS?

Ответы [ 3 ]

2 голосов
/ 04 ноября 2011

Мы делаем оба в разных проектах.Один проект, в котором мы храним данные в json, имеет много разных полей и некоторую древовидную структуру, поэтому сохранение их в БД будет большой работой.Однако у нас возникли проблемы с памятью из-за размера.

Чтобы упростить жизнь вашим данным и приблизительную параллель с CoreData, взгляните на http://ormlite.com/. Это обычный инструментработает с Android / Sqlite.Я сделал первоначальный порт Android и использую его почти во всех проектах, которые я делаю.Если у вас много данных и доступ только к небольшим частям, база данных потенциально лучше.

1000 объектов на самом деле не убьют вас в любом случае, но их проект специфичен и трудно сказать.Однако я не думаю, что сохранение Json в памяти будет лучше на обеих платформах.По крайней мере, не на порядки.

0 голосов
/ 04 ноября 2011

Я не могу сказать из описания вашего коллеги, но его реализация могла бы использовать CoreData , средство iOS, которое не имеет параллели в Android. Представленное вами описание соответствует этому на высоком уровне. Другие способы решения этой функции на Android были рассмотрены здесь .

0 голосов
/ 04 ноября 2011

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

Если вы предпочитаете хранить все в памяти в течение жизни вашего приложения, это нормально. Вы, вероятно, заметите некоторое увеличение скорости. И HashMap 1000 объектов должен уместиться в вашей памяти просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...