Перейти к содержимому

Google play services for instant apps что это

  • автор:

Подводные камни разработки Google Play Instant

Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь Android-разработкой в PROFI.RU. Недавно я написал приложение с мгновенным запуском для наших клиентов. Если вы ещё не знакомы с технологией, приглашаю вас сначала посетить Android Developers.

С презентации Instant Apps (Google Play Instant) на Google I/O 2016 прошло больше двух лет. В сети множество статей о том, как создавать приложения с мгновенным запуском. Судя по ним, ничего сложного в этом нет. Но на деле это не совсем так. Я постараюсь описать основные трудности, через которые мне пришлось пройти от создания пустого проекта до публикации Instant App в Google Play. Надеюсь, статья окажется полезной разработчикам, которым этот путь ещё предстоит.

Выбор подхода

В большинстве источников описывается процесс конвертирования основного приложения целиком в Instant App. Однако наше приложение никак не соответствовало ограничению в 4 МБ и предоставляло гораздо большую функциональность, чем требовалось для ознакомления с сервисом перед установкой. Сейчас Google в тестовом режиме увеличил допустимый размер приложения с мгновенным запуском до 10 МБ.

У меня был выбор из двух подходов к созданию Instant App. Первый — взять готовое приложение и вырезать из него ненужную функциональность. Второй — создать пустой проект и перенести в него функциональность, которая необходима. Посчитав первый вариант быстрым, мы с коллегами опробовали его на локальном хакатоне и тогда же убедились в его безнадёжности. Во-первых, на это ушло много времени (порядка 40 человеко-часов). Во-вторых, размер приложения оказался очень большим из-за лишнего кода и ресурсов. В-третьих, лишний код усложнял сопровождение. Мы судорожно пытались уместить получившееся приложение в 4 МБ за время хакатона, и в итоге всё равно не успели.

Перенос функциональности

Наученный горьким опытом, я создал пустой проект и стал копировать в него только нужные модули приложения. У нас поддерживается модульная архитектура, поэтому сделать это было несложно. Здесь я столкнулся с первой проблемой — в Instant Apps нельзя использовать сервисы. В моём случае это ограничение не оказалось критичным: мы использовали сервис для загрузки фотографий, а в Instant App от этой фичи отказались, мотивируя пользователей скачать основное приложение. Но этот момент стоит учитывать, если ваше приложение тоже использует сервисы.

К моему удивлению, полученное копированием только нужных кусков кода приложение всё равно не влезло в допустимые 4 МБ и весило около 5 МБ. В этой статье Google даёт советы на этот случай, но мне они мало помогли. Единственное, от чего мы могли отказаться, — кастомные шрифты, но их вес существенно не влиял на размер APK.

Тут я вспомнил, что ProGuard у нас в проекте отключён на debug-сборках. Простое включение

minifyEnabled true

сократило размер приложения чуть ли не вдвое. О чудо — ограничение в 4 МБ соблюдено!

Миграция данных

Далее предстояло решить вопрос с миграцией данных. Как известно, Instant Apps поддерживаются операционной системой Android с версии 5.0. При этом автоматическая миграция данных работает только начиная с Android 8.0. Для этого достаточно использовать в обоих приложениях файлы shared preferences с одинаковым названием. Для версий с 5.0 по 7.1 миграцию нужно писать вручную с помощью Cookie API или Storage API. Я воспользовался Cookie и с особыми проблемами не столкнулся — правда, это потребовало изменений не только на стороне Instant App, но и в устанавливаемом приложении. Так что в итоге пришлось выпустить новую версию приложения и раскатить её на всю аудиторию для релиза Instant App.

Отладка

С отладкой всё оказалось не так просто.

Во-первых, Google Play Instant не поддерживает незащищённые сетевые соединения, так что забудьте про http, только https. Для меня это означало тестирование на production-серверах, так как все тестовые стенды работали по http. Не критично, но приятного мало.

Во-вторых, сам запуск Instant App: вы можете тестировать приложение как обычное, устанавливаемое, но лишь до поры до времени. При запусках через Android Studio невозможно проверить обновление Instant App до «полноценного» приложения. Например, протестировать, насколько корректно перенесутся данные пользователя. Для этого нужно запускать приложение с мгновенным запуском именно как Instant App. Сделать это можно двумя способами:

  1. запустить приложение с помощью специальной утилиты из Android SDK;
  2. выложить его в консоль для внутреннего тестирования и запустить через Play Market.
  1. зайти в Preferences ->Appearance & Behavior ->System Settings ->Android SDK;
  2. выбрать вкладку SDK Tools;
  3. поставить галочку возле Google Play Instant Development SDK и нажать Apply.

На последнем шаге обратите внимание на директорию, в которую будет установлена утилита. Далее относительно этого пути нас будет интересовать файл ./extras/google/instantapps/ia . С его помощью можно сымитировать мгновенный запуск приложения, выполнив команду

ia run

До момента, как я наткнулся на эту утилиту, я использовал второй способ, с постоянной публикацией приложения в Google Play Console. Но так как опубликованное приложение появляется в магазине не сразу, а по истечении неопределённого времени (у меня это занимало от получаса до суток), такой способ тестирования никуда не годился. Впрочем, он для этого и не предназначен. Кстати, если вы публикуете Instant App в Google Play Console с большой частотой, советую предусмотреть возможность после запуска определить код версии приложения. Иначе бывает сложно понять, запустилась последняя опубликованная версия или предыдущая.

Публикация

Наконец, когда ваше приложение протестировано и готово к публикации, не спешите расслабляться! Во-первых, код версии (versionCode) Instant App не должен превышать код версии устанавливаемого приложения. Рекомендую заранее дать простор для творчества: указать при релизе основного приложения заведомо большое значение кода, чтобы не связывать себе руки. Удалить выпущенный Instant App из консоли с целью «высвободить» код версии для другой сборки не получится. Формально у вас имеется N-M возможностей зарелизить Instant App, пока у вас в Google Play основное приложение с versionCode = N и приложение с мгновенным запуском с versionCode = M .

Также для релиза Instant App убедитесь, что оно будет доступно не большей аудитории, чем основное приложение. Иными словами, каждый пользователь Instant App должен иметь возможность установить основное приложение.

На аудиторию в первую очередь влияют разрешения приложения, указываемые в Manifest-файле (permissions), — они должны быть одинаковыми для обоих приложений (за исключением разрешений, не влияющих на аудиторию). Скажем, если ваше основное приложение требует разрешение на определение геопозиции, а в Instant App это не нужно, всё равно нужно его указать и там, и там.

Также некоторые вспомогательные библиотеки могут сузить круг конечных пользователей. Так было и в нашем случае. Консоль выдавала ошибку «targeting apk difference», хотя разрешения обоих приложений были одинаковыми. В поисках решения я наткнулся на этот вопрос со Stack Overflow, где советуют прогнать APK файлы приложений через утилиту aapt. Она выведет подробную информацию о файлах, включая все зависимости. Вычислив разницу в выдаче по обоим файлам, я заметил зацепку: у устанавливаемого приложения была строка uses-gl-es: ‘0x20000’ , которая отсутствовала в Instant App. Недолгий сёрфинг по сети привёл меня к разгадке: эта строка говорит, что приложение использует библиотеку OpenGL, которая, в свою очередь, используется в картах. И действительно, наше основное приложение использовало библиотеку play-services-maps , а Instant App — нет. Добавление этой зависимости в Instant App позволило мне в конце концов зарелизить приложение.

Подытожим

  1. В Instant Apps нельзя использовать сервисы и незащищённые сети (http). Размер конечного APK-файла не должен превышать 4 МБ (возможно, скоро это ограничение упростят до 10 МБ).
  2. Для уменьшения размера APK-файла можно применять оптимизаторы и обфускаторы кода (например, ProGuard).
  3. Перенос SharedPreferences из Instant App в основное приложение происходит автоматически для Android 8.0+, для более ранних версий необходимо писать вручную через Cookie API или Storage API. Стоит учесть необходимость релиза подготовленного к миграции данных устанавливаемого приложения перед релизом Instant App.
  4. Для отладки Instant App можно воспользоваться специальной утилитой из Google Play Instant Development SDK, входящего в Android SDK.
  5. Появление опубликованного в консоли Instant App на конечных устройствах может происходить с задержкой от получаса до суток. Стоит позаботиться о возможности однозначно определить, какая версия Instant App сейчас запустилась из Play Market.
  6. Код версии Instant App не должен превышать код версии основного приложения.
  7. Список устройств, которым будет доступен Instant App, не должен превышать список устройств, которым доступно основное приложение. Для этого следует указывать в Manifest-файлах одинаковые разрешения, а также обратить внимание на возможные ограничения из-за вспомогательных библиотек.
Полезные источники:
  1. Документация по Google Play Instant на Android Developers
  2. Советы по уменьшению размера APK-файла Instant App
  3. FAQ по Google Play Instant
  4. Миграция данных с помощью Cookie API
  5. Миграция данных с помощью Storage API

Instant Apps что это за приложение и как его удалить?

Периодически после включения мобильного интернета или wi-fi появляется уведомление от программы Instant apps, которое обновляется самопроизвольно.

В разделе приложений также появилось новая программа «Google Play Services for Instant apps».

Удаляю это приложение и обновления Play Market, но при первом же открытии и заходе в плей маркет выскакивает ошибка.

А потом Instant Apps стачивается заново.

Можно ли как-то отключить, удалить, убрать этот инстант апс?

Не могу найти и удалить его.

Как избавиться от постоянного обновления Instant Apps?

комментировать
в избранное
Солне­ чный день [77.5K]
4 года назад

Instant Apps — технология от Google, представленная в 2016 году.

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

Пользователь при помощи Instant Apps сможет оценить возможности приложения и решить, нравится ли оно и стоит ли его устанавливать.

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

система выбрала этот ответ лучшим
комментировать
в избранное ссылка отблагодарить
Azama­ tik [55.4K]
5 лет назад

Google внедряет все новые и новые технологии.

Google Play services for Instant Apps — это новая опция//функция в Android.

Для чего она нужна?

С помощью Instant Apps можно будет запускать программы/приложения из Плей Маркета в так называемом режиме мгновенного приложения.

Осуществляться это будет путем загрузки специального файла с данными.

На данный момент эту функцию поддерживают только Buzzfeed, Wish и Periscope.

Подключить данную опцию можно следующим образом:

Плохо то, что Instant Apps сам автоматически устанавливается и обновляется. Она не спрашивает разрешения. В основном это происходит на версиях андроид 6.0 и выше.

К сожалению, запретить обновления и автоматическую установку не получится. Даже если удалить приложение, при первом же запуске Play Market утилита снова скачается.

Если же у вас есть ROOT-права, то можно попытаться это сделать.

Без рута ничего не получится.

Многие рекомендуют просто отключить её. Сделать можно в Настройках, в разделе «Услуги» (Приложения >> Сторонние приложения). Находите Instant Apps, заходите и перетаскиваете ползунок в неактивный режим.

Instant Apps: что это такое, зачем нужно и как это работает?

Lorem ipsum dolor

Instant Apps — это современная технологическая функция от корпорации Google. Данная программа позволяет начать пользоваться приложением из Play Market, не устанавливая его на свой девайс. Что такое Google Play Instant и вообще что это за программа знает почти каждый Android-разработчик. Но большинство обычных пользователей с ней не знакомы. В данной статье поговорим об этом немного подробней и попытаемся разобраться, зачем это нужно и как это работает.

Что это такое — Google Instant Apps?

Чуть выше уже излагалось, что это новая технологическая функция от компании Google для смартфонов Android. По сути , эта технология позволяет использовать своего рода «демоверсию» понравившегося приложения или игры из Play Market.

К примеру , в ам приглянулась новая игра на смартфон, в ы бы хотели ее попробовать. В обычном варианте вы ее скачиваете к себе на телефон и пользуетесь. Но что делать, если не хватает места в памяти смартфона ? Нужно удалять лишнее. Да, но а если удалять особо и ничего и не хочется, потому что вдруг потом не понравится эта новая игра? Опять придется все восстанавливать.

В этот момент и приходит на помощь программа Instant Apps, в едь именно благодаря ей вы можете загрузить дем ов ерсию и опробовать приложение или игру на своем смартфоне. Как правило, файл «демки» намного меньше объема полноценного приложения , н о функционал содержит такой же. Поэтому вы не нагружаете смартфон, но при этом можете полноценно оценить визуальные составляющие, а также функционал выбранного приложения. А потом, если понравится , то сможете начать пользоваться полной версией продукта.

Преимущества и недостатки Google Play Instant. Как это работает?

Работает Instant Apps технология не на всех смартфонах. Она была анонсирована в 2016 году , а первые приложения появились уже в 2017. Массово началась поддержка этой функции на Android 6.0, однако первые попытки предпринимались еще в версии Android 4.3.

Преимущества:

  1. Сама технология уже интегрирована в Google Play — пользователю не нужно совершать лишних манипуляций.
  2. Максимальная скорость загрузки контента.
  3. Поддержива е тся большое количество верси й Android.
  4. Использует максимально низкий объем памяти смартфона.
  5. Легко делиться приложением — нужно поделиться только ссылкой дем ов ерсии , и ваш друг может пользоваться.

Недостатки:

  1. Отсутствие поддержки технологии в старых версиях Android.
  2. Присутствие Instant Apps в приложении зависит от разработчика , т олько они могут ее внедрять в свои труды.
  3. Мало юзеров знаком о с этой технологией.

Как настроить смартфон для Instant Apps?

  1. Зайдите в «Настройки» вашего Android смартфона.
  2. Найдите раздел «Google».
  3. Отыщите пункт «Приложения с мгновенным запуском».
  4. Переведите селектор в положение «Вкл».
  5. Подтвердите действие, нажав «Ок».

Мы будем очень благодарны

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

Google Play Services for Instant Apps — что это?

Андроид Инстант аппс

Сегодня хочу поведать об относительно новом функционале Гугл — Google Play Services for Instant Apps. Что это за «фишка», нужна ли она в телефоне, как правильно отключить/удалить, существует ли опасность подцепить вирус? Вопросов много, но все они будут рассмотрены в данном обзоре. Приступим! Если кратко описать назначение технологии, то она необходима для упрощения процесса оплаты услуг и товаров в интернете, без потребности в установке дополнительного ПО на Ваш гаджет. Давайте разбираться!

Что такое Instant Apps?

  • Переходим по ссылке и видим нужную нам кнопку, позволяющую протестировать программу до установки.

Попробовать приложение с мгновенным запуском

  • После нажатия запускается встроенный браузер с названием и уведомлением об открытии приложения без инсталляции. Можно почитать условия соглашения или же сразу выбрать «Continue» (продолжить).

Уведомление о просмотре Instant App

  • Спустя несколько секунд загрузится предварительная версия, изучите возможности софта. Если нравиться, то вверху нажимаем «Install» для скачивания в память.

Демо версия утилиты Баззфид

Как подключить?

Не на всех моделях телефонов функционал доступен по умолчанию (присутствует практически повсеместно, начиная с версии Андроид 6.0.

Google Play Services for Instant Apps скачать из официальных источников нельзя. Если найдете в сети подобные сайты – обходите их стороной, иначе подцепите вирус. Необходимая опция встроена в Android и не может быть установлена отдельно (разве что путём прошивки устройства, но этот способ я не буду описывать).

А для включения возможности предварительного просмотра следует:

  • Зайти в «Настройки» девайса;
  • Открыть раздел «Google» — «Приложения с мгновенным запуском» и активировать переключатель:

Настройки google - раздел instant apps

Здесь же будет отображаться перечень софта, который вы уже смотрели ранее.

Устранение возможных проблем

Чаще всего пользователи жалуются, что Instant Apps загружены без разрешения владельца телефона, прога сама запускается и автоматически обновляется – будто живет своей жизнью. К сожалению, в Гугл считают подобное поведение вполне нормальным и естественным. Поэтому, нужно либо смириться, либо отключить опцию (смотрим инструкцию выше).

На самом деле, IA – это очередная ступень развития интернета. Просто мы пока не привыкли к подобному, оно вызывает у нас отчуждение. А уже очень скоро для совершения покупок в интернет магазинах нам не нужно будет заходить на сайт, долго искать нужный товар и проходить через несколько шагов регистрации, оформления заказа. Достаточно будет воспользоваться Google Поиском чтобы найти продукт, и затем через Instant Apps сразу будет подгружаться страница с описанием и кнопкой покупки от соответствующего магазина.

Инстант Аппс является помощником и предоставляет рекомендации, согласно пользовательским интересам, которые некоторыми юзерами воспринимаются как навязчивая реклама. Отсюда и неприязнь. Если это Вам не нужно, просто зайдите в настройки, категория «Google» и отключите приложения с мгновенным запуском.

Видео

Вот и разобрались Google Play Services for Instant Apps что это такое, как активировать. Если остались вопросы – милости прошу в комментарии.

  • В Google Play можно тестировать бета-приложения
  • KNOX Samsung — что это за программа, нужна ли она?
  • Удаляем вредоносный Pdfforge Toolbar
  • Лучший навигатор для Андроид 2017 по России без интернета
  • WEB DLRip — что за качество, как воспроизвести формат?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *