android studio как обновить приложение

Как программно обновить apk и перезапустить приложение?

Я пробовал много способов, заданных в StackOverFlow и на другом веб-сайте, но на самом деле это не работает.

Моя проблема в том, что у меня есть это приложение, которое мне нужно обновить и после обновления, оно должно автоматически снова включить то же приложение (обновление).

Взгляните на мою «Ошибка здесь». Мое старое приложение установит новое обновленное приложение и убьет самого себя, поэтому нет proc.waitFor () и вернется на начальном экране, но обновляется новое обновленное приложение. Тем не менее, мне нужно, чтобы оно вернулось к самому себе. Можно ли мне это сделать?

Вместо того, чтобы устанавливать тревогу, для этого специально зарегистрирован BroadcastReceiver. Он может либо прослушивать android.intent.action.PACKAGE_REPLACED (обратите внимание: в этой константе отсутствует действие слова) или на android.intent.action.MY_PACKAGE_REPLACED

После повторной установки получатель получит это сообщение, и вы сможете начать работу

Обновление приложения связано с убийством всех его процессов. Вы должны установить будильник перед запуском команды pm (с задержкой более 100 мс)

Чтобы обновить и запустить приложение тихо, вам необходимо выполнить следующие шаги.

Выше кода обновит ваше приложение по умолчанию для Android.

Создайте широковещательный приемник, который будет знать, когда выполняется обновление

Если вы используете api> 12 use

Если вы используете api

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

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

Надеюсь, они вам помогут.

Источник

Русские Блоги

Реализация кода функции автоматического обновления приложения Android

Реализация кода функции автоматического обновления приложения Android

Благодаря открытому исходному коду проекта Android на рынке представлено N рынков программного обеспечения для Android. Чтобы программное обеспечение, которое мы разрабатываем, использовалось большим количеством пользователей, нам нужно выпустить его на мультирынки N. После обновления программного обеспечения мы также должны обновить его на рынке Android. Увеличение рабочей нагрузки для нас. Поэтому нам нужно добавить функцию автоматического обновления в наше приложение для Android.

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

Здесь я использую файл XML для легкого чтения. Поскольку содержимое файла XML является относительно небольшим, файл можно проанализировать с помощью метода DOM:

С помощью метода parseXml () мы можем получить версию, имя файла и адрес загрузки приложения на сервере. Затем нам нужно получить информацию о версии приложения на наш мобильный телефон:

Поток обработки

d304035c78dda251d8a676ec5d68ef03
Код обработки

Renderings

1256610b316c537a07056d3bb6f8963e

793a4220b36989d9357dacc7c7b306de

Проверьте, существует ли файл загрузки в симуляторе SDCARD:

Источник

Встраиваем In-App Updates в приложение

android in app updates api

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

Всё это вынуждает постоянно поддерживать приложение. Отсюда вытекает следующий момент: как установить актуальную версию приложения максимальному числу пользователей.

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

В этом случае мы можем взять дело в свои руки и встроить механизм обновления в само приложения.

В прошлом году Google выпустили механизм In-App Updates с целью ещё больше ускорить обновление приложений у пользователей. In-App Updates позволяет показывать пользователю при входе в приложение диалог, где ему будет предложено обновить приложение до последней версии. Этот функционал работает, начиная с версии Android 5.0 (API 21). Кроме того, приложение должно быть опубликовано в Google Play.

In-App Updates поддерживает два способа обновления приложения:

Рассмотрим первый вариант обновления приложения на примере одного из наших приложений «Страны мира«.

Перед началом работы нужно добавить библиотеку Play Core в приложение. Для этого в файле build.gradle модуля приложения добавим следующую зависимость:

Теперь создадим класс UpdateManager, в котором будем проводить работу, связанную с обновлением.

Перед тем, как показывать диалог, следует проверить наличие новой версии. Для этого воспользуемся классом AppUpdateManager для запроса к Google Play.

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

Если пользователь согласится на обновление, начнётся процесс загрузки в фоновом режиме. Обратите внимание, что с помощью метода startUpdateFlowForResult() мы можем узнать, какое действие выбрал пользователь. Для этого мы передаём в него константу UPDATE_REQUEST_CODE, результат с этим кодом придёт в метод onActivityResult() активности.

Здесь мы можем получить один из следующих результатов:

Поскольку мы используем Flexible метод обновления, нам нужно узнать, когда завершится загрузка новой версии. Для этого нам нужно добавить слушатель InstallStateUpdatedListener и привязать его к экземпляру AppUpdateManager после того, как начнётся загрузка. О том, что пользователь начал загрузку, мы узнаём, получим результат в методе onActivityResult() активности.

С помощью этого слушателя мы можем узнать, загружается обновление или уже загружено, и если загружается — получить прогресс выполнения. Таким образом, при желании можно показывать прогресс загрузки прямо в приложении, но в данном случае мы этого делать не будем.

Когда загрузка завершена, отвязываем слушатель и проверяем, активно приложение или нет. Если приложение активно, то показываем сообщение о том, что обновление готово для установки, в противном случае запускаем установку обновления. Делается это с помощью метода completeUpdate() экземпляра AppUpdateManager. Также для этих целей мы добавим слушатель UpdateListener к нашему классу UpdateManager. Если этот слушатель привязан к активности — значит приложение активно, если отвязан — значит находится в фоне.

Когда обновление будет загружено, пользователь увидит внизу экрана Snackbar с сообщением об этом и кнопкой для перезагрузки приложения. При желании можно Snackbar заменить на что-нибудь ещё.

Сам же Snackbar выглядит очень просто, при нажатии на Restart мы вызываем completeUpdate(), как делали бы это, будучи в фоновом режиме.

Если пользователь проигнорирует это сообщение, обновление останется неустановленным и будет храниться в памяти. Поэтому при каждом запуске приложения мы будем проверять, имеются ли загруженные обновления, и если да — выводить сообщение. В противном случае, как и раньше, проверяем наличие обновлений в Google Play. Для этого вернёмся к слушателю OnSuccessListener из начала и добавим в него следующее условие.

Таким образом сообщение будет выводиться до тех пор, пока пользователь не обновит приложение до последней версии.

Итоговый листинг класса UpdateManager выглядит следующий образом:

Итак, мы встроили In-App Updates в приложение, осталось только проверить его работу. Для этого отлично подойдёт такая особенность Google Play, как внутренний совместный доступ (Internal app-sharing). Он позволяет загружать APK или Android App Bundle на специальную страницу загрузки, к которым будут иметь доступ только тестировщики. Это позволяет быстро проверить приложение, при этом его не обязательно подписывать релизным ключом, можно делиться также и debug-версиями. Тестировщикам отправляется специальная ссылка на скачивание, которая перенаправляет их в Google Play, где им будет предложено установить данную версию приложения.

Для того, чтобы настроить внутренний совместный доступ, нам нужно задать список тестировщиков для этого приложения. Зайдём в консоль разработчика Google Play и откроем нужное нам приложение. В меню «Инструменты разработки» выберем «Внутренний доступ к приложению«, после чего откроется страница для настройки. Здесь нас интересует только «Управление пользователями с правами загрузки«.

3

Тут мы можем формировать различные списки тестировщиков, включать их и отключать. При нажатии на «Создать список» появится окно, где будет предложено ввести электронную почту каждого из участников тестирования, а также задать имя новому списку. Создадим список и добавим в него себя как тестировщика.

4

Теперь мы можем перейти на страницу загрузки для внутреннего совместного доступа. Сюда мы может публиковать различные APK для тестирования. Соберём два APK нашего приложения с разными кодами версий (например, 23 и 24) и загрузим их на эту страницу. При загрузке мы также можем задать название данной версии, чтобы было проще их различать.

5

После того, как APK будут загружены, они отобразятся в списке.

6

С этого момента мы готовы тестировать эти версии. Зайдём на устройство, с которого будем запускать приложение, и на нём перейдём по ссылке от версии 1.23. Откроется специальная страница, которая предложит перейти в Google Play для установки.

Screenshot 1587630331

После перехода в Google Play нам будет предложено установить эту версию приложения.
Screenshot 1587630415

Screenshot 1587619435

Примечание! Если вместо страницы приложения вы видите сообщение «Настройки для разработчиков отключены», то нужно будет выполнить следующее:

Как только установка завершится, открываем приложение. В нашем приложении под списком меню указывается текущий код и версия приложения, поэтому будем ориентироваться на неё, что обновление прошло успешно. Как видно, сейчас текущая версия 1.23.
Screenshot 1587630796

Теперь закрываем приложение, снова открываем браузер и переходим уже по ссылке от версии 1.24. Нам аналогично будет предложено перейти в Google Play, только на этот раз мы можем не установить, а обновить или удалить приложение. Важно: не нужно обновлять приложение с этой страницы! Смотрим только, что она есть, и закрываем.

Screenshot 1587630923

Снова заходим в наше приложение и, если всё сделано верно, отобразится диалог с предложением обновить версию.

Screenshot 1587631100

Нажимаем на «Обновить«, после чего начинается скачивание обновления. За его прогрессом можно следить в шторке уведомлений.

Screenshot 1587631144

Как только загрузка завершится, в наш слушатель придёт состояние DOWNLOADED, после чего внизу экрана отобразится сообщение с предложением перезагрузить приложение.

Screenshot 1587631154

Нажимаем Restart, и здесь в работу включаются сервисы Google Play, которые обновят приложение до новой версии.

Screenshot 1587631159

После того, как установка завершится, приложение запустится автоматически. Скроллим список вниз и видим, что версия приложения теперь стала 1.24, значит обновление прошло успешно.

Screenshot 1587631170

Таким образом, благодаря In-App Updates, пользователи смогут более быстро получать новые версии, чем при обновлении непосредственно через Google Play.

Встраиваем In-App Updates в приложение : 1 комментарий

А как сослаться на UpdateManager например в MainActivity?

Источник

In-App Updates: ускоряем процесс обновления приложения на Android

image loader

Среди многообразия инструментов, анонсированных на Android Dev Summit, особое внимание хочется уделить механизму обновления приложения In-App Updates (IAUs), который помогает разработчикам ускорить добавление новых фич, баг-фиксов и улучшений производительности. Поскольку эта функциональность была опубликована после Google I/O 2019, в этой статье я подробно расскажу об IAUs, опишу рекомендованные схемы реализации и приведу некоторые примеры кода. Также я расскажу о нашем опыте интеграции IAUs в Pandao, приложение для заказа товаров из Китая.

Новый API позволяет разработчикам инициировать обновление приложения до последней доступной в Google Play версии. Таким образом IAUs дополняет уже существующий механизм автоматического обновления Google Play. IAUs содержит несколько схем реализации, которые принципиально различаются с точки зрения взаимодействия с пользователем.

image loader

Поскольку второй вариант не так важен и меньше подходит для приложения Pandao, разберём подробнее сценарий Flexible Flow.

Интеграция IAUs Flexible Flow

Варианты использования

Процесс обновления с помощью IAUs состоит из нескольких шагов.

Основные требования к тестированию

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

Пример кода

Здесь мы рассмотрим пример кода для использования IAUs Flexible Flow, который также можно найти в официальной документации. Для начала необходимо добавить библиотеку Play Core в build.gradle файл на уровне модуля.

Ошибка «Update is Not Available»

IAUs Flexible Flow в приложении Pandao

Мы участвовали в программе раннего доступа и интегрировали IAUs Flexible Flow (рекомендованная реализация) в приложение Pandao — платформу, на которой производители и вендоры могут торговать китайскими товарами. Диалог IAUs отображался на главном экране, так что с ним могло взаимодействовать максимальное количество пользователей. Изначально мы хотели показывать диалог не чаще раза в день, чтобы не отвлекать людей от взаимодействия с приложением.

Поскольку A/B-тестирование играет ключевую роль в жизненном цикле любой новой фичи, мы решили оценить эффект от IAUs в нашем приложении. Мы случайным образом разделили пользователей на две непересекающиеся группы. Первая была контрольной, без использования IAUs, а вторая группа была тестовой, этим пользователям мы показывали диалог IAUs.

image loader
A/B-тест IAUs Flexible Flow в приложении Pandao.

В течение последних нескольких релизов мы измерили долю активных пользователей каждой версии приложения. Оказалось, что среди активных пользователей с последней доступной на тот момент версией основную часть составляли участники из группы B, то есть с функцией IAU. Фиолетовая линия на графике показывает, что в первые дни после публикации версии 1.29.1 количество активных пользователей с IAUs превысило количество пользователей без этой функции. Поэтому можно утверждать, что пользователи с IAUs быстрее обновляют приложение.

5351cb3a9b15cd49e59d543463cbb283
Диалог IAUs Flexible Flow в приложении Pandao.

Согласно нашим данным (см. график выше), пользователи больше всего кликают на кнопку подтверждения в диалоге IAUs в первые дни после релиза, а затем конверсия постоянно снижается вплоть до публикации следующей версии приложения. То же самое наблюдается с кнопкой установки в диалоговом окне, которая инициирует установку скачанного обновления. Следовательно, можно сказать, что среднее значение конверсии в обоих случаях прямо пропорционально частоте релизов. В Pandao средняя конверсия в течение одного месяца достигает 35 % для клика на кнопку подтверждения и 7 % для клика на кнопку установки.

Мы предполагаем, что уменьшение доли подтверждений с течением времени — лишь проблема пользовательского опыта, потому что люди, которым интересна новая версия, будут обновляться довольно быстро, а те, кто не интересуются обновлением, так и не станут интересоваться. Исходя из этого предположения, мы решили не беспокоить тех, кому не интересно обновление, и не спрашивать их каждый день. Хорошей практикой будет использование другой логики запросов, которая основывается на «устаревании», то есть чтобы не беспокоить пользователей, мы оцениваем, насколько старые версии стоят у них и как часто мы уже предлагали им обновиться.

В целом IAUs продемонстрировала хорошие результаты в ходе A/B-тестирования, так что мы раскатили IAUs для всех пользователей.

Источник

Как обновить Android Studio автоматически?

Мне нужно обновить Android Studio до версии 0.9.9, но когда я нажимаю «Загрузить» (в диалоговом окне с информацией об обновлении), он отправляет меня сюда:

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

Кроме того, в диалоговом окне есть эта рекомендация:

Чтобы настроить параметры автоматического обновления, см. Диалоговое окно «Обновления» параметров среды IDE.

Слово «Обновления» – это ссылка, но она не работает.

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

n3KsO

Не рекомендую Бета или Канарские

Канал, который является нестабильной версией, и они не являются автоматической установкой, вместо этого в этом случае предоставляется zip-файл.

g5kvP

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

Самый простой способ обновления:

Перейдите в начальный экран Android Studio. Если он автоматически открывает проект при его открытии, закройте этот проект (не выйдите).

Внизу будет ссылка для обновления, которую вы можете использовать для обновления до последней версии.

В зависимости от версии, с которой вы начинаете, и от того, что вы обновляете, не всегда существует обновление между версиями. Если это произойдет, загрузите полный установщик и переустановите Android Studio.

Вот самый простой способ, как в моментальном снимке, загрузить требуемый файл и установить. rprmr

Через Android Studio:

Если вы обратитесь за помощью >> проверьте наличие обновлений, он сообщит вам, есть ли обновление.

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

Зачем? Потому что Google.

На экране запуска вы можете использовать кнопку «Настройка», чтобы проверить наличие обновлений.

1) Выберите configure> Check for Update CkTi2

2) Загрузите последние обновления

Если вы уже используете Android Studio, вы можете обновить его через встроенный механизм обновления (Check For Updates); Убедитесь, что вы переключитесь на канарейки или бета-каналы, если вам не предлагается обновление.

Чтобы настроить параметры автоматического обновления, см. Диалог «Обновления» в настройках или настройках среды IDE. Затем вы можете перейти на канарейку или бета-каналы. (Значение по умолчанию «стабильное», но, вероятно, невозможно автоматически сообщить об обновлениях).

Надеюсь, поможет. Благодарю.

Эти шаги предназначены для людей, у которых уже установлена ​​Android Studio на их Windows-машине >>>

Шаги для загрузки обновления:

К тому времени, Andriod Studio должен открыть и настроить ваши обновления 1Wmet

С AS 1.2+ есть автоматическая проверка обновлений, которая позволит вам выбирать между стабильными, dev, канарейками и бета-каналами. Однако это всего лишь проверка вместо полного скрипта обновления. Это требует, чтобы вы нажимали, чтобы установить и перезапустить свою установку (проблема для ситуации с удаленным сервером)

Да ты прав. Нет встроенного механизма автоматического обновления Android Studio. Вы должны вручную загрузить его и настроить его.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • android studio как запустить приложение на телефоне
  • android studio как закрыть приложение при нажатии на кнопку