KonBez
@KonBez
Слаботочник

Механизм обновления Android приложений через сервер?

Хотелось бы понять механизм обновлений Android - приложений через сервер для чайника.
Допустим есть приложение карта города, на карте отмечены точки - достопримечательности. Точки интерактивны, т.е. не просто нарисованы на карте. Изначально их 4 (к примеру).
Что нужно делать чтобы добавить ещё одну точку?
Брать изначальное приложение, дорабатывать, выкладывать по-новой/Выпускать обновление? Полностью новое приложение.
Или у нас есть серверная версия приложения, в которое мы добавляем точку и она появляется у пользователей на карте? Обновление БД.
Вообще как это происходит на сервере? Какое ПО используется? Или где почитать?
  • Вопрос задан
  • 591 просмотр
Решения вопроса 1
@pfg21
ex-турист
вариант1: полный update
имеется файлик, где все данные лежат - по событиям (временные интеревалы или каждый запуск проги) этот файлик сравнивается с серверным по по htpp-заголовкам Last-Modified: Content-Length: ETag: или что подобное и в случае отличий с локальными файл полностью перезакачивается.
плюс - все есть в http и в стандартных прогах (тот же "curl -z", "wget -N")
минус - при каждом обновлении надо качать весь файл.

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

вариант3: нечто среднее
данные лежат в двух файлах: основном и дополнительном, данные прогой читаются из обоих и используются равноценно.
основной большой и очень редко обновлемый (раз в месяц и больше), дополнительный содержит только обновления относительно основного и полностью перезакачивается при каждом обновлении (по вар.1) но т.к. обновлений мало, то его объем не велик.
плюсы: см вар.1
минусы: небольшое усложнение в чтении данных.
если данные удаляются, то необходима функция, исключающая из основного, данные помеченные в дополнительном как удаленные.
так работает osmand live к примеру.

примерные варианты навскидку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Брать изначальное приложение, дорабатывать, выкладывать по-новой
Или у нас есть серверная версия приложения, в которое мы добавляем точку и она появляется у пользователей на карте?

Зависит от вашего приложения.

Вообще как это происходит на сервере?

По-разному.

Какое ПО используется?

Чаще всего пишется своё ПО для каждого приложения.

Или где почитать?

Вопрос настолько общий, что вам понадобиться штук 5 разных учебников.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы