Android db или xml / kml? - PullRequest
       3

Android db или xml / kml?

3 голосов
/ 22 октября 2010

Что выгодно, эффективно и быстрее?хранение информации в формате xml и ее извлечение или хранение информации в db на android?

, а также, с точки зрения переносимости, xml может храниться как актив ... можно ли сделать то же самое с db?do db входит в пакет по умолчанию на всех телефонах.

приложение включает в себя работу с более чем 1000 записями данных.

Ответы [ 3 ]

2 голосов
/ 22 октября 2010

БД SQLite будет работать быстрее, когда она влечет за собой большие объемы данных - она ​​найдет то, что вам нужно, гораздо быстрее.

Для небольших объемов данных файл KML будет иметь намного меньшую нагрузку, чем БД, но не очень полезен для динамических данных.

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

Приблизительно для 1000+ записей я хотел бы использовать БД SQLite - вы могли бы сделать здесь одну из двух вещей - предварительно скомпилировать БД для вашего приложения, затем поместить файл БД в папку ресурсов, а затем при первом запуске проверить, файл БД существует - если нет, переместите файл из ресурса forlder в папку БД (см. примечание ниже). В качестве альтернативы вы можете сохранить записи в файле KML в папке ресурсов, а затем при первом запуске использовать анализатор для записи каждой записи из файла kml в базу данных.

Получение файлов из файла KML или CSV может занять некоторое время, в зависимости от количества записей. У меня есть приложение, которое получает данные из CSV-файла на SDCard и загружает их в БД, так как тестирование около 7000 записей заняло около 35 секунд по желанию. Также я думаю, что папка raw и asset имеет ограничение на размер около 1 МБ.

Взгляните на эту ссылку, она показывает очень полезный способ перемещения большой БД при первом запуске приложения:

Решение для заполнения баз данных

0 голосов
/ 22 октября 2010

Мой выбор

  1. Я использую БД для структурированных данных. Когда есть определенная необходимость в поиске данных, заданных в некоторых полях, или в сортировке по разным полям Используйте БД, когда требуется дополнительная логика.
  2. Я использую файлы «общих предпочтений», когда требуется только сохранение данных. Никакой дополнительной логики, только пары ключ-значение.
0 голосов
/ 22 октября 2010

Нельзя использовать ресурсы / необработанные папки в качестве доступных для записи ресурсов. Они только для чтения.

Так что в основном у вас есть 2 варианта:

  1. Сохранение данных в БД (SQLite)
  2. Хранить данные в настройках - фактически XML-файл хранится где-то / что-то вроде

    / data / data / [ваш пакет] / shared_prefs

Мой личный выбор: если размер данных превышает 100 записей - используйте БД, если меньше предпочтений.

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