Intereting Posts
Не найти android sdk (Unity) Как получить последнюю запись от Sqlite? TabLayout цвет выделенной вкладки подчеркивание Модернизация не может подключиться к локальному веб-серверу на порту 3000 Программирование для Android в среде 100% C ++? Варианты сборки в Gradle для проекта библиотеки в Android Альтернатива библиотеке QR-ридеров zxing для Java / Android? Устаревшее предупреждение Runtime Kotlin (плагин Kotlin 1.1.2-release-Studio2.3-3) Как избавиться от лишнего промежутка между кнопкой и другими видами? Отменить регистрацию устройства из GCM с помощью регистрационного идентификатора в Android ORDER BY Date – Realm (Android) Создание проекта тестирования Android в Eclipse Обнаружить событие «домашняя кнопка нажата» в службе android, отображая пользовательский интерфейс (похожий на facebook chatheads) Аннулирование HTTP-прокси-сервера для эмулятора Android Измените цвет маленького треугольника на spinner в android

Как синхронизировать базу данных SQLite на телефоне Android с базой данных MySQL на сервере?

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

Solutions Collecting From Web of "Как синхронизировать базу данных SQLite на телефоне Android с базой данных MySQL на сервере?"

Создайте веб-сервис (возможно, лучший REST) ​​и выполните сериализацию данных SQLite / MySQL и PUT / POST / GET в веб-службу. Это даст вам хороший уровень абстракции, если вы решите переключиться с MySQL на другую серверную сторону.

Вы можете взглянуть на fyrecloud.com/amsler. Это исходный код для демонстрационного приложения для Android, которое реализует репликацию MySQL между сервером MySQL и SQLite db на устройстве Android.

Амслер опирается на два столпа:

  1. Он связывается с сервером MySQL с использованием протокола MySQL Client / Server, чтобы подключиться к серверу для аутентификации и получения событий репликации по мере их возникновения.

  2. Он использует программное обеспечение Antlr lex и parse для лексики и анализа входящих событий репликации, а затем для перевода команд MySQL в эквивалентные команды SQLite.

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

Доступ к серверу через REST достаточно прост. Однако изменение существующей установки MySQL для поддержки сериализации представляет слишком много головных болей для перечисления здесь. Amsler использует ранее существовавшие сервисы репликации. REST также зависит от некоторой стратегии опроса, чтобы поддерживать локальное устройство в разумных пределах. Опять же, многие проблемы с этим подходом. Amsler поддерживает соединение TCP / IP с сервером, которое позволяет уведомлять об обновлениях на сервере.

Самая сложная часть Амслера заключается в выяснении лексинга / синтаксического анализа. Синтаксис между MySQL, SQLite и различными версиями одного и того же имеет много тонких различий. Так много различий, что нецелесообразно предоставлять переводчик с термоусадочной пленкой, и вместо этого вы должны прибегать к модификации грамматики самостоятельно.

Тем не менее, хороший, плохой или уродливый, вот он. Посмотрите, и, возможно, перчатка подходит.

Это, вероятно, будет полезно: базы данных синхронизации Mysql SQLite

Реальный ответ заключается в том, что нет никакого стандартного или встроенного волшебного способа просто скопировать базу данных MySQL, которая живет на сервере где-то на устройстве. Вам придется реализовать либо веб-сервис, либо каким-то образом преобразовать MySQL db на сервер в реализацию android sqlite и загрузить этот файл в каталог данных вашего приложения (а не маршрут, который я рекомендую принять).

Поздно к партии, но http://www.symmetricds.org/ – хорошее решение.

Java, работает и на Android.

LGPL.

Может обрабатывать 10 000 клиентов.

Нет стандартного способа. В зависимости от ваших потребностей вы можете, например, использовать webservices в протоколах REST или SOAP или более бинарный обмен данными.