Как принудительно настроить удаленные обновления или удаленный код hotswap без взаимодействия с пользователем?

В настоящее время я работаю над приложением, которое делает изображения timelapse и автоматически сохраняет их на Google Drive, эта часть работает нормально. Однако эти телефоны могут быть развернуты в местах, где физический доступ может быть ограничен, поэтому все, что мы можем сделать удаленно, должно быть сделано удаленно.

Это приложение предназначено только для внутренних целей, он не будет видеть общедоступных пользователей, поэтому укоренение и hacky решения приемлемы.
В настоящее время он развернут через play store в качестве бета-приложения.

Так как я могу удаленно обновить приложение?

Мой текущий лучший подход был бы отправить принудительное обновление push-уведомление, которое сообщило бы приложению, что есть обновление на playstore. Закройте приложение, дождитесь автоматического обновления playstore и снова запустите приложение с помощью вещательного приемника PACKAGE_REPLACED.

Но с этим я на милости play store, я не могу сказать, будет ли это автоматическое обновление в течение нескольких минут, часов или даже дней. Хотя я не ожидаю, что обновления будут критическими, и они могут подождать, они должны произойти в конечном итоге и с минимальным временем простоя.

Я знаю, что A / B-платформы тестирования, такие как mixpanel, могут выполнять горячую замену некоторого кода, по крайней мере, строковых ресурсов и тому подобное, но мне было интересно, есть ли способ, которым я могу сам выполнять горячую замену кода, возможно, даже целых фрагментов. Это нормально,если приложение должно перезапустить.

Так как же лучше всего это сделать? Не стесняйтесь предлагать и другие подходы.

1 ответ

  1. Пока я и некоторые коллеги спорили о том, как это решить, генеральный директор компании быстро нашел лучшее решение. Он просто напомнил нам, что можно удаленно устанавливать приложения и обновления на свой телефон через playstore на вашем компьютере.

    Если приложение работает, которое закрывает приложение, но с помощью вещательного приемника PACKAGE_REPLACED, приложение может запуститься снова.

    В то время как есть некоторое человеческое взаимодействие, никакое взаимодействие не нужно с самими телефонами.

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