2010-02-11 2 views
4

Мне нужно написать приложение для устройств Android, которым необходимо получить доступ к большой (~ 200 МБ) базе данных. Что было бы лучшим способом сделать это? Могу ли я просто вставить базу данных в папку с ресурсами? Я читал о различных ограничениях, которые распространяются на весь размер приложения и на отдельные ресурсы внутри, особенно на некоторых устройствах ... В чем именно эти ограничения?Развертывание большой базы данных с помощью приложения для Android

Есть ли способ сделать это отдельно от загрузки после установки с внешнего сервера?

ответ

11

G1 имеет встроенную память объемом 256 МБ для приложений. Даже на Nexus One есть только 512 МБ, поэтому я думаю, что вряд ли кто-то захочет, чтобы одно приложение занимало такую ​​большую долю этого хранилища, поэтому создание файла размером 200 МБ + .apk не будет практичным.

Ваши варианты вероятно:

  • Сделать базу данных доступной через веб-сервиса, так ваше приложение может запросить его через подключение к Интернету.
  • Загрузите данные по битам по мере необходимости и запишите их на SD-карту.
  • Загрузите базу данных на SD-карту при первом запуске вашего приложения.

Я думаю, что последнее из этих наименее предпочтительных, так как загрузка в 200 МБ займет много времени и может использовать значительный кусок чей-то ежемесячных данных о доходах в сети 3G. Если вы собираетесь это сделать, это может стоить checking the status of the phone so you only download when there's a wi-fi connection.

+0

+1 для предложения webservice. Стоит изучить этот конкретный случай. –

+0

Если база данных должна поставляться с программой, она, вероятно, либо специально для пользователя, либо должна использоваться в автономном режиме, поэтому веб-службы, вероятно, не могут быть и речи. +1 для скачивания при первом запуске. Как это ни печально, что-то, что просто нужно сохранить на SD-карте. – Jess

+2

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

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