я немного зайду вперед и расскажу принцип.
Релизная версия приложения подписывается ключом. Так же в градле файле мы указываем versionCode.
Если на устройство попытаться установить приложение, которое уже присутствует на нем, то
- проверится подпись приложения - они должны совпадать.
если не совпадает, то устройство предложит удалить установленное приложение.
- проверится versionCode - код устанавливаемого приложения должен быть выше, чем у установленного. если не выше - то будет алерт, что пытается установиться старая версия приложения.
Иначе все ок.
Это что касается обновления
Это как раз то, что хотел услышал, просто не знал как спросить)
Получается сам механизм обновления не такой уж и сложный?
А "запрос" на проверку актуальной версии реализуется как-то в самом приложении и/или Android платформой?
Миграция БД (SQLite) на сколько я понимаю лежит на плечах разработчика и реализуется в приложении? Получается что также важно соблюсти последовательность установленных версий, чтобы что то в БД не слетело? Грубо говоря:
1 -> 2 -> 3 (изменили имя поля) -> 4 -> 5...
1 -> 2 -> 4 error
Но если частота релизовов высокая, а какое-то устройство "пролежало на полке" с установленно версией (2) и не получало обновления, например, (3), а в этом обновлении, например, переименовали поле. Включили телефон, а на сервере уже лежит версия (4) — получается, что как-то это нужно "проконтролировать"?