Android: обновление на месте приложения
У меня есть приложение для Android, где часть приложения представляет собой список данных, который в настоящее время содержится в массиве строк (в ресурсе xml). В настоящее время я выпускаю обновления очень часто для реального приложения, которые не делают ничего, кроме обновления этого списка данных. (да, задним числом этот метод был плохой идеей для начала).
Теперь моя цель - изменить это так, чтобы я мог обновлять только ту часть приложения, которую необходимо изменить. У меня есть веб-сервер, и теперь я отправляю JSON-версию данных с URL-адреса. Таким образом, все, что нужно сделать приложению, это нажать этот URL, проверить, не изменился ли он (возможно, с использованием номера версии), а затем обновить.
Моя проблема заключается в фактической реализации:
- Где / как мне хранить эти данные? Как сырой файл? SharedPrefs? База данных? [то есть каковы плюсы и минусы каждого]
- Как я могу выполнить плавное обновление, при котором, даже если во время обновления произойдет что-то разрушительное [например, пользователь тянет батарею...], оно все равно не сломает приложение?
- Код обновления должен жить в сервисе?
1 ответ
Я бы выделил ваши данные в небольшой фоновый сервис. Используйте предоставленный SQLLite. Для проверки согласованности данных вы можете использовать проверки md5, функции отката базы данных и, самое главное, разработать небольшой набор тестов. Одно только отправка частичного файла, то есть "сломанный тест передачи", мусорный файл и т. Д. Держите это отдельным и тестируемым компонентом вашего приложения.