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

В этой статье рассмотрим, что такое Instant App, зачем он нужен и как создать такое приложение?

Еще в прошлом году на DroidCon я слышал об этой теме. В этом году о ней тоже говорили. Наконец то у меня дошли руки посмотреть подробнее. В этой статье я расскажу, что мне удалось понять. Кода здесь практически не будет, только поверхностный разбор. И в конце несколько полезных ссылок для дальнейшего изучения.

Пример

Давайте сразу посмотрим пример. Есть такой видеохостинг - Vimeo. И у них есть свое Android приложение на маркете.

Если загуглить, например, "vimeo video", то гугл в результатах покажет несколько видео, нажав на которые можно перейти на Vimeo сайт. Т.е. браузер откроет ссылку вида https://vimeo.com/236370796. Но если делать это на Android смартфоне, на котором установлено Vimeo приложение, то оно и откроется вместо сайта. Система видит, что есть приложение, которое умеет открывать такую ссылку и запускает его.

Если же приложение Vimeo не установлено, то может открыться его Instant App версия.

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

Если у вас не запускается Instant App, то убедитесь, что он включен в настройках системы: Settings -> Google -> Instant App. Если у вас в настройках нет пункта Instant App, значит ваше устройство его не поддерживает.

Т.е. система перехватила ссылку, определила, что для нее есть Instant App приложение, скачала его и запустила. Ссылка играет очень важную роль в этой технологии. По сути URL - это точка входа (entry point) в приложение. Чуть позже я расскажу, как реализуется эта привязка.

А вот так выглядит полноценная версия приложения Vimeo, установленная с маркета.

Видно, что экраны обоих версий очень похожи, но у Instant App версии функционал ограничен. Instant App - это light версия основного приложения. Как мы уже видели, она может быть быстро подгружена и отображена при нажатии на ссылку.

Зачем нужен Instant App

Зачем это может понадобиться? Самый очевидный ответ - чтобы получить больше установок вашего приложения. Пользователь находит что-то в гугле (или просто получает ссылку в мессенджере, почте и т.п.), нажимает на ссылку и у него открывается ваше Instant App приложение. Оно позволяет пользователю увидеть примерный функционал и призывает установить полную версию. Тем самым вы получите нового пользователя. Т.е. Instant App - это классическая демоверсия приложения, которая помогает пользователю принять решение об установке полноценной версии.

Как создать Instant App приложение

Давайте разбираться, откуда взялась эта Instant App версия и как ее создать.

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

О каких модулях речь? О тех самых, с которыми мы работаем в Android Studio. По умолчанию у нас создается только модуль app. Если мы работаем по Clean Architecture, то обычно создаем еще несколько модулей. А если мы собираемся создавать Instant App приложение, то мы выносим в модули отдельные фичи (features) приложения.

В примере с Vimeo такая фича - это экран просмотра видео. Т.е. в приложении есть какое-то Activity, которое отвечает за этот экран. Оно вынесено в отдельный модуль. Назовем этот модуль - videoplay. В этот модуль кроме Actiivty мы выносим используемые им классы - адаптеры, презентеры, кастомные вьюхи, и пр. Т.е. тут должны быть классы, которые нужны для работы только этому Activity и никому больше.

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

В каждом feature-модуле прописана зависимость от base-модуля:

Dependencies { implementation project(":base") ... }

Впрочем, это не мешает модулю base быть feature-модулем. Он также может содержать в себе Activity.

В итоге ваш проект состоит из одного base-модуля и нескольких feature-модулей. Из этого всего мы можем собрать два типа приложения.

Первое - это обычный полноценный APK, который включит в себя все ваши features-модули.

Второе - это ограниченное Instant App приложение, которое включит в себя base-модуль и те feature-модули, которые вы хотите видеть в этом приложении.

Чтобы обеспечить нам возможность собрать два разных приложения из одного кода, в Instant App проекте есть два модуля сборки: installed и instant.

installed соберет для нас полноценное приложение, а instant - Instant App версию.

В этих модулях есть gradle файлы, в которых мы прописываем feature-модули, который будут использованы при сборке приложения.

Dependencies { implementation project(":base") implementation project(":feature1") implementation project(":feature2") }

Соответственно, в gradle файле модуля installed мы обычно указываем все feature-модули, чтобы получить APK с полным функционалом. А в gradle файле instant мы указываем только те features-модули, которые хотим видеть в Instant App приложении.

Модуль installed соберет APK, который будет использовать модули как библиотеки. А модуль instant сделает отдельный APK из каждого модуля и запакует все эти APK в один ZIP.

Маркет

Какую из этих двух версий приложения надо заливать на маркет?

Полноценный APK обязательно должен там быть. А вот Instant App - по вашему желанию. Если он вам нужен, то создавайте и заливайте.

Как программно определить версию

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

Activity = модуль

И что, теперь нужно каждое Activity выносить в отдельный модуль?

Не нужно. Выносите в отдельные feature-модули только те экраны, который вы хотите видеть в Instant App. А весь остальной код можете оставить в одном отдельном feature-модуле, который просто не будет включен в Instant App. Не забудьте только в base-модуль поместить классы, которые нужны будут для работы feature-модулей.

URL

Я уже упоминал, что URL является входной точкой в Activity.

Каждый feature-модуль должен содержать в себе хотя бы одно Activity (можно и больше). И для этого Activity должен быть настроен IntentFilter на определенный URL.

Система находит, что в маркете существует Instant App приложение, в котором есть feature-модуль, который умеет открывать такие ссылки.

Чуть выше я писал, что Instant App приложение представляет из себя ZIP, в котором собраны все feature-модули и base-модуль в виде отдельных APK. В случае с Vimeo, например, это могли бы быть, например, файлы videoplay.apk (создан из feature-модуля videoplay) и base.apk (создан из base-модуля). И в videoplay.apk есть Activity, для которого настроен IntentFilter на vimeo.com ссылки.

Система загружает videoplay.apk на устройство и запускает. Вместе с ним также она загружает base.apk. Т.е. когда идет первая загрузка какого-либо feature APK файла из Instant App, с ним вместе всегда грузится и base.apk. Потому что все feature зависимы от base. Отсюда, кстати, вытекает одно ограничение. Суммарный размер любого feature APK файла и base.apk не должен превышать 4 мегабайт. Т.е. в нашем случае суммарный размер файлов videoplay.apk и base.apk не должен превышать 4 MB. Это сделано, чтобы приложения Instant App были максимально легкими и быстро загружаемыми.

Тут важно понимать, что, даже если Instant App приложение содержит в себе еще какие-либо feature APK файлы, система загрузит только videoplay.apk (+ base.apk). Потому что в данный момент нужен только этот файл для обработки нажатой ссылки.

А что если экран из videoplay.apk предоставляет возможность перейти на какой-то другой экран, например, экран комментариев? В этом случае программно переход должен быть реализован не с помощью Intent, который вызывает Activity, а с помощью Intent, который вызывает ссылку. Например, это могла бы быть ссылка вида https://vimeo.com/236370796/comments.

Предположим, что в проекте есть feature-модуль videocomments, в котором находится Activity c IntentFilter, настроенным на такие ссылки. И этот feature-модуль был включен в список в модуле instant. В этом случае система найдет, что в Instant App приложении есть еще файл videocomments.apk, в котором есть Activity настроенное на этот тип ссылок. Система загрузит и запустит videocomments.apk. Файл base.apk в этом случае уже не будет загружаться, т.к. он был загружен ранее.

Try now

Если в маркете есть Instant App версия приложения, то пользователь видит кнопку Try now.

По нажатию этой кнопки происходит примерно то же самое, что и по нажатию на ссылку. Система загрузит один из feature APK вместе с base.apk и запустит его.

Какой именно модуль будет запущен, можно определить в манифесте. Будет найден тот APK, который содержит главное Activity. Т.е. Activity со стандартным фильтром:

Либо есть возможность в манифесте указать ссылку:

Она будет вызвана по нажатию на Try now и далее будет загружен и запущен соответствующий этой ссылке feature APK.

Полезные ссылки

Ребята, всем хеллоу. Говорим про Андроид, сегодня расскажу вам о чудо-функции под названием Instant Apps. В чем же чудо? Ну подумайте сами, функция Instant Apps позволяет запускать программу, которую вы даже не устанавливали. Как по мне, то звучит фантастически. Конечно это удобно, можно протестировать приложение, понять как оно работает и только потом уже принимать решение устанавливать его или нет. Да, тут не все так просто, вот читаю что такое приложение, ну не установленное, то оно может не поддерживать всех функций. То есть Instant Apps это такой режим запуска приложения без его установки. Что именно будет доступно в таком приложении, ну в плане опций, то это будут решать сами создатели приложения.

Функция доступна начиная с версии Андроида Jelly Bean. Я понял в чем прикол ребята. Эта штука Instant Apps начала сама проникать в телефон, вот пишут люди что даже глюки начинаются в телефоне.

Вроде я даже нашел как отключить Instant Apps. Для этого нужно зайти в настройки и нажать там Google:

Потом найти Instant Apps:

Вот еще картинка в тему, смотрите:

Вот еще чел пишет, что у него само установилось такое как Google Play services for Instant Apps. Пишет что как только он включает телефон, так оно сразу само скачивается и ставится.

Вот нашел еще один вариант как отключить Instant Apps (это я нашел на гугловском форуме).

Прежде всего, Android Instant Apps — это новая технология от Google, которая была анонсирована на I/O 2016. Она позволяет вам опробовать функционал приложения на вашем Android смартфоне, без надобности установки его из Google Play Store.

Уже сегодня некоторые пользователи смартфонов Huawei Nexus 6P на базе Android 7.1.1 Nougat имеют доступ к этой функции. В будущем Google расширит поддержку на еще больше моделей смартфонов. Благодаря Instant Apps, пользователь может запустить у себя приложение из облака и испытать его функционал, а разработчик может таким образом продемонстрировать возможности своего творения конечному пользователю. Это решает проблему платных демо-версий программ из Google Play. В этой статье все подробности о том, как работает Android Instant Apps.

Как активировать функцию

Стоит отметить, что не все смартфоны сейчас поддерживают этот функционал, а самих облачных демой-версий приложений пока очень мало. Чтобы включить Instant Apps, выполните следующие шаги:

  • перейдите в меню Настройки телефона
  • выполните прокрутку вниз и нажмите на вкладку Google
  • в разделе Службы выберите Instant Apps
  • активируйте переключатель на правом верхнем углу экрана
  • подтвердите действие

Теперь после включения этой службы, вы можете приступать к поиску этих приложений. На сегодня их очень мало, но в ближайшем будущем их ряды будут пополняться. Среди программ с поддержкой Instant Apps сейчас можно найти Buzzfeed, Wish и Periscope. Пока только «Wish» работает корректно, его мы и испытаем. Остальные могут выдавать ошибку вида «error running app instant run requires».

Зайдите в мобильный браузер Google Chrome, и введите поисковый запрос Wish. Первый результат выдачи — это ссылка на приложение в Google Play, второй с пометкой «Instant» — это то, что нам нужно. Жмите на него, а затем Open App (Открыть приложение) в появившейся вкладке.

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

Если программа вам понравилась и вы хотите загрузить ее полную версию, тогда просто опустите шторку уведомления и выберете пункт App Info», откуда и можно скачать полную версию программы. Нет сомнений, что за Instant Apps — будущее. Уже сегодня они позволяют выполнять многие вещи быстро и удобно.

По материалам сайта Android Authority

Как вам такая функция, возможно вы уже используете ее на своем смартфоне? Поделитесь своими впечатлениями в комментариях!

Если вы интересуетесь новыми разработками от компании Google, то вы наверняка уже слышали о такой относительной новинке, как Instant Apps. Что это за технология, как ее активировать на своем устройстве и какими преимуществами она наградит вас? Мы рассмотрим все эти вопросы в сегодняшнем материале.

Что такое Instant apps?

Instant apps — это технологическая разработка компании Google, с помощью которой пользователи могут просматривать функции нужного им приложения из Google Play на своем смартфоне, но обходиться при этом без непосредственной установки приложения на само устройство.

По-сути, Instant apps позволяет запускать на устройстве демоверсии приложений. К сожалению, на данный момент мало какие приложения в Google Play поддерживают функцию Instant apps, так как не все разработчики удосуживаются создать должную версию приложения.

Как только вы зайдете на страничку приложения с поддержкой данной функции, рядом с кнопкой «Установить» появится кнопка «Попробовать». После нажатия на эту кнопку на ваш Android-смартфон будет загружен очень малых размеров файл, в котором заложен минимальный набор функций выбранного приложения. Этот файл будет удален из системы, как только вы закроете демонстрационное приложение.

Довольно удобно, не так ли? Верно, это очень удобно, но, как мы уже ранее говорили, Instant apps используется с крайне малым количеством приложений. Помимо прочего, эту технологию можно активировать только на Android 6/7/8, т.е. пользователи смартфонов с более ранними версиями Android остаются за бортом.

Как активировать Instant apps?

Чтобы активировать Instant apps на своем смартфоне и пользоваться его функционалом в Google Play, вам нужно сделать следующее:

  • откройте настройки своего устройства;
  • перейдите в раздел «Google»;
  • найдите в списке сервисов пункт «Приложения с мгновенным запуском» и нажмите на него;
  • перетащите переключатель в положение «Вкл.».

Вот и все. Теперь вы готовы к использованию Instant apps.

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

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

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

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

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

С помощью этой функции вы сможете просмотреть содержимое еще до того, как установите его на свой смартфон или планшет.

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

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

Целесообразность

Нужна ли вам такая функция и есть ли смысл ее активировать?

Достаточно серьезной проблемой бюджетных, а иногда и дорогостоящих, устройств на базе Андроид – недостаточный объем (или она занята приложениями, которые невозможно удалить).

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

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

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

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

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

Что позволяет делать данный сервис?

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

Использование

Как уже говорилось выше, не все устройства поддерживают работу в таком режиме.

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

Нажав на нее, вы сможете скачать пробный файл.

Алгоритм

И введите поисковой строке название приложения, которое хотите скачать.

Затем в результатах поиска выберите то, которое подходит вам, и нажмите на него.

1 Слева от кнопки Установить вы обнаружите белую кнопку Попробовать ;

2 Нажмите на нее ;

3 Запускается особый встроенный браузер , в окне которого появляется уведомление о том, что скачивается приложение без инсталляции;

4 Нажмите на подчеркнутую ссылку для того, чтобы прочитать условия пользовательского соглашения или сразу нажмите на синюю кнопку Продолжить ;

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

7 Если функционал программы вас устраивает, то нажмите кнопку Install , которая в пробной версии всегда расположена в правом верхнем углу экрана;

8 После нажатия этой кнопки приложение скачается полностью и установится на ваш телефон .

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