2015-09-10 2 views
-1

У меня есть более чем 5 MB строка для моего приложения для Android. Я хочу сохранить его в своем приложении и использовать его. У меня есть два варианта:Добавление статических данных в базу данных sqlite в android

  1. Я могу использовать string-array.
  2. Я могу использовать sqlite.

В настоящее время я использую string-array.

Кто-то предложил использовать sqlite. Итак, я изучил sqlite. Теперь я могу сохранять и извлекать данные из sqlite. Но у меня есть некоторые проблемы с этим.

Поскольку данные являются статическими, мне нужно поместить их в базу данных sqlite. Для этого я должен иметь данные как в строке, так и при сохранении в форме sqlite. Использование sqlite означает, что мои одинаковые строковые данные присутствуют в двух местах. Как я могу сэкономить.

Итак, чтобы хранить статические данные, лучше ли использовать базу данных sqlite?

+1

Вам действительно нужно раздуть память ВСЕМИ 5 МБ текста или время от времени вы можете отображать необходимую информацию? –

+0

Извините, что опоздал. Это книга в основном. Книга разделена главами и стихами. Я изменил его в форме xml. Итак, мне нужно отобразить все файлы. – learner

+0

Я предпочел бы искать стих, а затем найти и показать соответствующую главу. Это было бы более уместным для меня. –

ответ

0

Используя оболочку sqllite https://www.sqlite.org/cli.html, вы можете создать файл базы данных на своем компьютере и сохранить его в своем приложении в папке с ресурсами.

Так что вы должны сделать что-то вроде этого:

sqlite3 assets/databases/mydb.db 
sqlite> create table //(here put your creating table script) 
and insert string values. 

После этого вы можете использовать эту библиотеку https://github.com/jgilfelt/android-sqlite-asset-helper работать с ним в приложении.

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

+1

Да, но поиск и фильтрация требуют времени в таком случае. – learner

1

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

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

О том, как использовать предварительно заполненную базу данных, см., Например, https://github.com/jgilfelt/android-sqlite-asset-helper или поиск stackoverflow; Я уже несколько раз сталкивался с этой темой.

Смежные вопросы