Выбор правильного варианта хранения данных

#android #xml #sqlite

#Android #xml #sqlite

Вопрос:

Я разрабатываю приложение для Android для разбора sms-сообщений. Мне нужны разные правила для разных стран, и идея состоит в том, чтобы определить правила для моей страны и более позднего проекта с открытым исходным кодом, чтобы другие пользователи могли вносить свой вклад с правилами для своих стран. Формат XML, на мой взгляд, наиболее удобен для определения этих правил.

Итак, у меня есть приложение, которое извлекает правила из XML-файла, хранящегося в res / raw, и пользователи позже смогут обновить этот набор правил или загрузить правила для какой-либо другой страны, когда они станут доступны.

Как я уже сказал, я поместил существующие XML-файлы в res / raw, но проблема в том, что когда пользователи загружают новый или измененный набор правил, приложение не может изменять или сохранять файлы в ресурсах (поправьте меня, если я ошибаюсь).

Итак, теперь у меня есть два варианта, и ни один из них мне не нравится. Я хотел бы услышать ваше мнение по этому вопросу.

a) Я могу хранить XML-файлы как локальные файлы, но тогда я должен прочитать правила по умолчанию из res / raw и скопировать их в файловую систему при установке приложения или отслеживать две отдельные группы файлов. Возможно ли предварительно включить файлы в файловую систему при установке приложения?

б) Я могу сохранить XML-код в базе данных, но также скопировать его из файлов во время установки. Или, что еще хуже, код XML в виде строки в классе, чтобы вставить его при установке?

Прошу прощения, если вопрос слишком длинный или неясный, английский не мой родной язык, и это мой первый вопрос.

Ответ №1:

Я не уверен, правильно ли я вас понял, но вы могли бы сохранить XML-файл во внутреннем хранилище данных приложения. —>http://developer.android.com/guide/topics/data/data-storage.html

Если вы хотите прикрепить первую версию XML-файла при установке, сначала сохраните его в ресурсах, а после установки скопируйте во внутреннее хранилище данных. При обновлении XML-файла вы можете просто перезаписать этот файл во внутреннем хранилище данных.

Надеюсь, я смог вам помочь, это мой первый ответ на stackoverflow. Извините, если я только что рассказал вам то, что вы уже знали.

Комментарии:

1. ну, это было дилеммой для меня год назад, но я все равно приму этот ответ. Добро пожаловать в SO