обновление базы данных через интернет

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Vinch
Сообщения: 15
Зарегистрирован: 31 июл 2014, 19:22

обновление базы данных через интернет

Сообщение Vinch » 06 авг 2014, 11:39

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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: обновление базы данных через интернет

Сообщение Foenix » 06 авг 2014, 12:29

я думаю, что на сервере должна быть своя субд развернута. Например, MySQL. И скачивать нужно не бД, а информацию из нее, из определенных таблиц. Можно определять обновления по дате последнего обновления. Посылаешь запрос на сервер о том, есть ли информация старше даты последнего обновления на устройстве, и если есть - то скачиваешь именно эту инфу, тк.. на разных устройствах у тебя может быть разные даты обновления.
о MySQL тут были темы, где описывалось как с ней работать.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: обновление базы данных через интернет

Сообщение altwin » 06 авг 2014, 12:57

Vinch писал(а):Возможно ли загружать и обновлять базу данных через интернет? Чтобы на сервере добавлять информацию в базу данных, а приложение проверяло обновление и скачивало эту бд.
А потом ваше приложение декомпилировали, нашли откуда качаете бд, скачали wget -ом, скомпрометировали и стали распространять новое приложение с трояном... Оно вам надо? Но вообще sqlite база- это простой файл и никто не мешает вам с ним работать, как с файлом.

P.S. вы никогда не должны не то, что пересылать базу, но и давать информацию о ее месте расположения, имени и другию информацию облегчающую атаку и тем более хранить эту информацию в коде.... К тому же скачать файл по сети - это медленно и никому не нужно, выполнение SQL запроса в разы быстрей. Для синхронизации бд вам нужно зарегестрировать свой ContentObserver, и выполнять "обновление" по мере необходимости.
Изображение

Vinch
Сообщения: 15
Зарегистрирован: 31 июл 2014, 19:22

Re: обновление базы данных через интернет

Сообщение Vinch » 06 авг 2014, 16:58

Если не трудно, подскажи где можно почитать про ContentObserver, желательно на русском языке,

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: обновление базы данных через интернет

Сообщение altwin » 06 авг 2014, 17:19

Vinch писал(а):Если не трудно, подскажи где можно почитать про ContentObserver, желательно на русском языке,
На русском понятия не имею, к примеру тут: http://www.grokkingandroid.com/use-cont ... o-changes/
Но в любом случа вам лучше сразу разбираться вот с этой штукой -ContentProvider потому как отдельно "наблюдатель" бесполезен для базы.

Суть простая, вы реализуете "наблюдатель" и регестрируете его с url вашей базы. Когда в "наблюдателе" срабатывает метод onChange() вызывается метод "провайдера" вносящий изменения. Это не единственный способ, вам просто нужно внимательно почитать описание в доках и посмотреть примеры. Простой "наблюдатель" в качестве примера: https://gist.github.com/JBirdVegas/3874450
Изображение

Ответить