Работает ли этот способ предварительной загрузки базы данных в Android для 2.2 и выше? - PullRequest
0 голосов
/ 08 июня 2011

Я видел этот вопрос здесь, и мне было интересно, работает ли тот же метод «предварительной загрузки» базы данных для приложения для Android. Я буду разрабатывать свое приложение на платформе 2.2, но я хочу убедиться, что в будущем мне не придется полностью перепроектировать, если я буду использовать этот метод.

Во-вторых, это лучший метод, если у меня есть неизменяемые данные, которые необходимо найти? Или XML - лучший выбор?

Пример: у меня есть автомобиль, у автомобиля есть такие атрибуты, как вес, цвет, марка, модель, двигатель и т. Д., Все они должны быть доступны при поиске, но атрибуты и записи никогда не изменятся (и если они это сделают, они меняются с такой медленной скоростью, что я выпускаю обновление, чтобы добавить несколько вещей, которые изменились).

Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Да, метод предварительной загрузки, упомянутый в блоге, на который ссылается статья (http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/)), все еще работает для меня после некоторых настроек, вызванных принудительным закрытием от пользователей. Были некоторые проблемы с базой данных, не быть найденным на Desire HD, который вызывал проблемы. Было трудно определить, в чем именно проблема, но я думаю, что проблема была в расположении файлов. Вы должны определить

  private static String DB_PATH = Environment.getDataDirectory() + "/data/your/app/package/databases/"

вместо

  private static String DB_PATH = "/data/data/your/app/domain/databases/"

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

Что касается вашего второго вопроса, я бы сказал, что это зависит от того, сколько именно данных у вас есть. Если данных много, вам, вероятно, лучше использовать базу данных в любом случае по соображениям производительности. Существуют ловушки при использовании API-интерфейсов SQLite, такие как апострофы в полях (убедитесь, что вы используете удобные методы query , update и insert вместо rawQuery ). Но я уверен, что есть и с XML - я не думаю, что есть какой-то «правильный» метод, более подходящий для вас - то есть вы предпочитаете работать с базами данных или с необработанным XML? Если ни того, ни другого, и вы не планируете делать серьезные обновления или запросы, я бы использовал XML или даже JSON по причинам, изложенным выше, и на что ссылается Джодес.

1 голос
/ 08 июня 2011

Ответ не прост, вам нужно сопоставить версию SQLite, используемую на разных телефонах, с форматом файла, используемым для этих версий.

Предыдущий вопрос SO, показывающий трудности в определении версий SQLite, приведен здесь:

Версия SQLite, используемая в Android?

А страница со списком различий в форматах файлов для разных версий SQLite находится здесь:

http://www.sqlite.org/formatchng.html

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