Как отключить instant play на самсунге
Перейти к содержимому

Как отключить instant play на самсунге

  • автор:

Как отключить Samsung Free в телефоне

Владельцы телефонов и планшетов Samsung имеют возможность получить в одном приложении «Самсунг Фри»: просмотр новостей и ТВ, игры, слушать подкасты это удобно и выгодно так как все бесплатно. В нашей публикации вы узнаете что такое Samsung Free и как отключить Samsung Free в телефоне или планшете.

samsung free что это

Что такое Samsung Free

Samsung Free — это сервисное приложение которые входит в фирменную оболочку OneUI в устройствах Samsung, ранее называлось Samsung Daily. Приложение представляет собой развлекательный хаб и включает: подкасты, новости, фильмы, мини-игры и многое другое. К сожалению в странах СНГ имеет мало контента и по сути данная утилита бесполезна поэтому её можно отключить.

Есть несколько способов убрать Samsung Free с телефона или планшета Samsung. Можно просто отключить временно или полностью удалить с устройства.

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

Как отключить Samsung Free

Данный вариант подойдет если вы хотите на время отключить сервисное приложение.

  1. На главном экране Samsung устройства зажмите и удержите палец в любом месте дисплея, отпустите после того как увидите все экраны для настройки.
  2. Пролистайте до экрана со значком Samsung Free и отключите ползунок.

как отключить samsung free

Как полностью убрать Samsung Free с устройства Samsung

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

Как удалить Samsung Free

  1. Откройте Samsung Free и нажмите на «Меню».
  2. Перейдите «Настройки» и нажмите на опцию «Прекращение использования Samsung Free».как убрать samsung free
  3. Далее нужно подтвердить прекращение использования и удаление данных.как выключить samsung free
  4. На главном экране Samsung устройства зажмите и удержите палец в любом месте дисплея, отпустите после того как увидите все экраны для настройки.
  5. Пролистайте до экрана со значком Samsung Free и отключите ползунок.как убрать самсунг фри

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

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 — что за качество, как воспроизвести формат?

Что такое disable app install. Instant Apps в Android: предназначение и особенности использования. Что такое Google Play Services for Instant Apps

Индустрия развлечений активно развивается и предлагает многотысячные игры на Android, с недавних пор представлена новая функция — Instant Apps что это ? Google Play запускает всё новые возможности для упрощения использования сервиса. Обобщённо можно охарактеризовать функцию – демоверсия программы.

Instant Apps: что это?

Данная программа была представлена на рынке совсем недавно. Опробовать приложение из Google Play, до того, как его загрузите, поможет функция — instant apps. Она позволяет просмотреть на устройстве приложение, которое для этого не придётся устанавливать. Для этого нужно будет скачать маленький файл, который поможет ознакомиться с информацией о самом приложении.

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

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

Google Instant Apps: как подключить?

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

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

  1. Нужно зайти в настройки.
  2. Там найти раздел Google.
  3. Приложения, которые мгновенно запускаются.
  4. И просто перетяните джойстик в положение включить.

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

Как пользоваться Instant Apps?

Instant Apps — что это за программа? Теперь, когда мы разобрались, как найти и включить программу в вашем телефоне, осталось разобраться, как ее использовать. Если вы хотите ознакомиться с приложением, то зайдя в Google Play, найдите нужное вам приложение и рядом со словом скачать, увидите кнопку «Попробовать». Когда на нее нажмете, то начнется скачиваться обзорный файл.

  1. После того как пробный файл начал загружаться, будет получено уведомление.
  2. Нужно нажать на ссылку и сразу будут показаны условия пользовательского соглашения. Вы можете ознакомиться с ним или же сразу нажать на кнопку «Продолжить».
  3. Как только закончится загрузка, пробная версия приложения отроется сразу же в том же окне браузера.
  4. Потом запустите данное приложение и можете пользоваться им, но с ограниченными функциями – вы сможете ознакомиться с его внешним видом, с характером программы и меню;

  1. Если вам понравилось, можете скачать его очень легко, всего лишь нужно нажать на кнопку Install, которая всегда находится в верхнем правом углу;
  2. В результате чего приложение полностью загрузится и установится на ваше устройство.

Стоит отметить, что сегодня приложений, которые поддерживают функцию Instant Apps весьма мало. Корпорация Google сейчас только тестирует работу функции и предлагает ознакомиться с её возможностями. В дальнейшем количество приложений, которые нормально работают с системой деморежима, будет стремительно возрастать.

Сегодня можно найти несколько основных приложений, поддерживающих Instant Apps:

Среди представленных вариантов корректной работой отличается «Wish», в остальных случаях есть риск получать различные ошибки. Узнать о поддержке Instant можно по соответствующей пометке в поиске или кнопке «Попробовать» на странице программы.

Instant Apps: как отключить?

Отключение функции потребуется для пользователей, которые не используют свой гаджет для запуска игр или точно знают приложение, которое им нужно. Процедура выключения не отличается от включения, в том же разделе «Настройки» -> Google -> «Приложения» нужно переключить ползунок в неактивное состояние Off.

Если у Вас остались вопросы по теме «Как подключить и использовать Instant Apps?», то можете задать их в комментария

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм

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

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

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

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

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

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

5 , после этого в этом же окне браузера запустится пробная версия приложения;

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

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

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

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

Подключение

Как же установить и подключить данный сервис?

Впервые он был внедрен в версию операционной системы Андроид 6.0 – он пришел в пакете обновлений именно для нее.

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

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

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

Если вам очень нужен данный сервис, то получить его можно только одним образом – перепрошив свое устройство и изменив версию ОС

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

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

Если вы интересуетесь новыми разработками от компании 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. В чем же чудо? Ну подумайте сами, функция Instant Apps позволяет запускать программу, которую вы даже не устанавливали. Как по мне, то звучит фантастически. Конечно это удобно, можно протестировать приложение, понять как оно работает и только потом уже принимать решение устанавливать его или нет. Да, тут не все так просто, вот читаю что такое приложение, ну не установленное, то оно может не поддерживать всех функций. То есть Instant Apps это такой режим запуска приложения без его установки. Что именно будет доступно в таком приложении, ну в плане опций, то это будут решать сами создатели приложения.

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

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

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

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

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

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

Многие пользователи могли заметить, что при включении интернета (мобильного или Wi-Fi) обновляется некое приложение Instant Apps в автоматическом режиме. Некоторые пользователи решили, что это вирус, но на деле это не так. Сейчас объясним.

Instant Apps (переводится как «Приложения с мгновенным запуском») — новая технология от компании Google, которая позволяет опробовать приложение без установки на устройство. При включенной функции вы можете зайти в Play Market и опробовать приложение без установки, если оно поддерживает такой функционал.

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

Насколько нам известно, отключить автоматическое обновление Instant Apps можно только заморозкой приложения Google Play services for Instant Apps с помощью, например, Titanium Backup, однако для него требуются рут-права. Честно говоря, в заморозке или тем более удаления этого приложения, на наш взгляд, нет никакого смысла.

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

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

На момент написания статьи приложений с поддержкой быстрого запуска в Play Market сравнительно мало, однако список расширяется.

Что необходимо сделать? Первым делом надо разрешить использование приложений с быстрым запуском. Для этого зайдите в настройки своего смартфона на базе Android.

Найдите раздел Google, откройте его.

Здесь вы увидите массу подразделов, вам нужен «Приложения с мгновенным запуском».

Переводите переключатель в положение «Вкл».

Подтверждаете действие, нажав ОК.

Теперь открываете Play Market и ищите приложения с поддержкой быстрого запуска. Например, Vimeo. При переходе на страницу приложения вы увидите кнопку «Попробовать» — нажмите на нее.

Протеститруйте приложение и, при необходимости, установите его.

Google Play Instant. Рефакторинг длиною в жизнь

Когда ввязываешься в Early Access Program, никогда заранее не знаешь, что получится в итоге. Конечно, надеешься, что технология взлетит, а твое приложение опередит рынок и получит порцию пиара на Google I/O. И это неплохая мотивация, чтобы на начальном этапе вместо документации читать исходники, которые к тому же надо качать из секретного архива.

На AppsConf Евгений Сатуров показал, во что может вылиться участие в Early Access на примере разработки приложения с мгновенным запуском, по дороге поясняя все особенности Google Play Instant. В расшифровке его доклада разберёмся, откуда пошли Android App Bundles, при чём тут вообще Dynamic Delivery, познакомимся с новыми Gradle-плагинами, и узнаем, как быть с неожиданностями, которые приготовили для нас разработчики SDK.

О спикере: Евгений Сатуров (saturovv) работает в компании Surf, которая занимается заказной Android и iOS-разработкой, а с недавнего времени еще и разработкой на Flutter. Евгений Flutter-энтузиаст и основатель FlutterDevPodcast.

Краткий экскурс в историю

Два года назад к нам в Surf пришел замечательный парень и говорит: «У нас есть технология, о которой пока мало, кто знает. А у вас есть заказчики и интересные кейсы. Давайте, мы дадим вам нашу технологию, вы ее куда-нибудь интегрируете, и получится классный симбиоз. Мы пропиарим это на Google I/O и всем будет хорошо».

На самом же деле, работа с Early Access Program — это кот в мешке. Приходится работать с сырым кодом, который, понятное дело, не всегда работает так, как задумано и описано. В нашем случае:

  • Все артефакты поставлялись в виде ZIP-архива, который надо было раз в несколько дней выкачивать из суперсекретного хранилища и обновлять на локальной машине только вручную.
  • Работать можно только в «канарейке».
  • Документации почти нет, только разрозненные неструктурированные Google Docs, чаще похожие на поток мыслей разработчиков.
  • Деплоиться в прод, естественно, нельзя —это возможно только после того, как технология попадет в публичный релиз. То есть весь деплой только в альфа-треке.
  • Есть вероятность, что после публичного релиза, обнаружится, что SDK был полностью переписан без поддержки обратной совместимости. Вы получаете совсем другие интерфейсы и API — вам надо снова все переделывать.

Все это стало возможным благодаря нашему постоянному партнеру — компании Лабиринт — крупнейшему интернет-магазину книг и канцтоваров в России. Они включились в проект, даже не будучи уверенными, будет ли какой-то бенефит в итоге. И тому, что в 2017 году Surf, как студия, была частью программы Программе Google Certified Agency. К сожалению, программу закрыли в этом году.

Android Instant Apps

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

У нас появились новые Gradle-плагины, которые генерировали соответствующие артефакты:

  • Instant App Module — application-плагин, который генерировал ZIP-архив с APK, по одному на каждый feature-модуль приложения;
  • Installable App Module — генерировал APK.

Но это было долго и дорого по ряду причин:

  • Жёсткая модульная структура сама по себе — большое ограничение. Трудно представить, что какая-то крупная компания превратит свое годами создающееся и отлично работающее приложение в груду дымящихся модулей только ради того, чтобы поддержать новую технологию, которая еще неизвестно, взлетит или нет.
  • Строгое ограничение по размеру сборки, то есть одна фича не должна была превышать 4 Мб. Это объективно мало, а иногда и вовсе недостижимый лимит, например, из-за тяжелых зависимостей или чего-то подобного.
  • Обязательно использовать AppLinks, потому что это единственный способ попасть в Instant App. Пользователь переходил по ссылке из почты, мессенджера, поисковой выдачи и попадал на ваш экран через перехват ссылки.
  • Наконец, большое количество технических ограничений. Сначала даже было нельзя использовать NDK. Нельзя отправлять push-уведомления, получать sensitive data, менять настройки устройства и запускать фоновые процессы. Services, Broadcast Receivers и Content Providers использовать было нельзя. Только Activity.

Но справедливости ради, внедрение Instant App в Лабиринте дало 5% прироста к покупкам через мобильный клиент.

2019. Google Play Instant

Прошло два года, на дворе 2019 — Instant Apps все еще существует, но не как самостоятельная технология. Она до сих пор очень редко встречается в продакшене, я не искал специально, но знаю только несколько примеров: это Sports.ru, Vimeo. Вряд ли Google рассчитывал на такой результат, когда анонсировал эту технологию.

Теперь Instant App называется иначе — Google Play Instant. Смена названия помогла отсеять неактуальную документацию. Если видите Android Instant App, сразу понятно, что это уже неактуально.

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

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

Изначально Google позиционировал Instant App как технологию, которая привлекает людей в бизнес, не в приложения. Был design-guideline, который запрещал делать лэндинг-приложения с одной кнопкой «Скачать полное приложение». Но побочно была решена другая фундаментальная проблема, и подозреваю, это произошло случайно.

В феврале этого года свет увидело замечательное устройство Samsung Galaxy S10+ с 1 Тб памяти на борту. Только вдумайтесь — один терабайт! Зачем столько нужно?!

Согласно официальной статистике Google, за последние 7 лет средний размер APK увеличился в 5,5 раз.

Размер сборки действительно имеет значение, исследование этой статистики показывает:

  • каждые дополнительные 6 Мб сборки снижают конверсию в установке на 1%;
  • 70% пользователей проверяют размер приложения перед скачиванием;
  • 50% пользователей интересует, сколько места приложение займёт на устройстве после установки.

Последние все сложнее игнорировать, потому что в 2018 году именно Индия показала невероятный прирост по установкам.

Обратите внимание, там совсем мало iOS, а суммарное количество установок Android-приложений превышает таковое в США, Бразилии и Индонезии вместе взятых.

Теперь понятно, какую проблему можно решить при помощи Google Play Instant. Можно переходить к непонятным терминам.

Android App Bundle

Android App Bundle — новый формат публикации приложения в Google Play. Внутри все не сильно отличается от APK: все те же самые dex-файлы, manifest, resources, assets и т.д. и т.п. Но есть еще Metadata, которая не попадает на устройство пользователя.

Metadata представлена тремя файлами: resources.pb, assets.pb, native.pb. Фактически это таблицы соответствия ресурсов, которые есть в сборке, и конфигурационных настроек устройств.

Android Dynamic Delivery

Все знают о существовании App Signing by Google Play. Но не все готовы хранить релизный ключ своего приложения в Google Play, потому что пути назад не будет. Слезть с App Signing by Google Play невозможно.

Один раз отдав релизный ключ в Google Play, вы потом никогда не сможете подписывать свое приложение как раньше, на своей стороне. Но в обмен на это вы можете пользоваться всеми преимуществами, которые дает Android App Bundle как формат. А процесс подписи сборки будет выглядеть отныне немножко иначе.

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

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

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

2014. В Android Lollipop появляется поддержка Split APK

Раз мы сегодня ностальгируем, вернемся еще раньше в прошлое — в 2014 год.

До сих пор помню, как на мой NEXUS 5, лучший телефон на свете, прилетела сборка Android Lollipop c невероятным material-дизайном, который выглядел просто бомбически. Но были изменения, которые остались для многих незамеченными — это поддержка Split APK.

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

Запомните это, и пойдем дальше.

Android Dynamic Delivery — это новый формат дистрибуции приложений в Google Play.

Был у нас раньше APK, теперь появляется еще Android App Bundle, пока что как альтернатива. AAB выступает инкубатором-генератором этих самых Split APK. AAB выкатывает банч APK, которые дальше можно использовать как обычное приложение, установив их параллельно.

Разберемся, что это за APK.

Как минимум, это базовый APK, который играет ту же самую роль, что и в Instant App: это базовый код, базовые ресурсы и бизнес-логика, которая шарится между всеми фичами.

Кроме того появляются:

  • APKs, в названии которых есть подозрительно похожие на модификаторы графических ресурсов префиксы (верхний ряд на схеме).
  • Еще одно семейство APKs напоминает нам об архитектурах процессора.
  • Локализационные APKs.

Теперь такой механизм позволяет получать пользователю только тот набор ресурсов, который нужен конкретно для его устройства. Человек приходит в Google Play, выбирает приложение, Google Play понимает характеристики устройства пользователя, и отдает тот набор Split APKs, который нужен — по одной APK из каждой категории.

Типы Dynamic Delivery APK:

  • Один и только один Base APK.
  • Набор Configuration APK максимум трех типов: res*x, assets*y, lib*z. Здесь: x — количество используемых ресурсных модификаторов; y — количество используемых типов архитектур; z — количество языковых локализаций. Если, например, в проекте не используется нативный код и нативные библиотеки, то категории, связанной с нативным кодом, не будет, и останется два APK.
  • Неограниченное количество Dynamic Feature APK.

Прощай, Split

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

android < splits < density < enable true exclude "ldpi", "xxhdpi", "xxxhdpi" compatibleScreens 'small', 'normal', 'large', 'xlarge' >> >

Сама по себе эта затея достаточно сомнительная, а теперь все это просто игнорируется. Если вы собираете Android App Bundle, появляется блок Bundle, который позволяет отключать вручную разбиение проекта по одной из категорий.

android < bundle < language < enableSplit = false >density < enableSplit = true >abi < enableSplit = true >> >

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

Самые внимательные, наверное, сейчас думают о том, что же делать с preLollipops. Только в Android 5 появилась поддержка Split APK. Из этой ситуации надо как-то выходить, потому что Min SDK еще далеко не у всех 21-й.

Для preLollipops из ситуации выходят достаточно топорным, но единственно возможным образом. Google Play собирает Multi-APK для preLollipops, которые включают в себя всевозможные комбинации конфигурационных APK. APK в итоге один, но его вариантов очень много.

Android App Bundle меняет нашу жизнь

И очень существенно. Во-первых, собирать проект, может быть, стало значительно проще, особенно если раньше вы вручную собирали Split APK. Но по моим наблюдениям таких людей не очень много.

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

Не будем показывать пальцем — в топе российского Google Play есть приложения, у которых релизные ключи уже давно на 4PDA, все кастомные сборки подписаны релизным ключом, и в ближайшие лет пять с этим ничего не сделать. Остается ждать перехода на Signing V3, который появился только с 28 API.

Безусловное преимущество Android App Bundle: пользователи перестают расходовать трафик и место на диске на ненужные им ресурсы. Это очень повышает retention приложения.

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

Dynamic Feature Module

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

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

Важно, что каждый из этих feature module сам по себе тоже содержит набор конфигурационных Split APK. Соответственно, общее количество APK может увеличиться сверх всякой меры. Но это совершенно не ваша забота, этим занимается Google Play.

Области применения Dynamic Feature Modules:

Фичи, используемые очень малым процентом аудитории, но, тем не менее, важные для вашего продукта. Например, это контентное развлекательное приложение, и 95% его пользователей потребляют контент. Но есть очень маленький процент редакторов, которые контент генерируют. Для них есть крутой видеоредактор, который весит реально много, работает невероятно круто. Тогда не имеет смысла утяжелять сборку для всех и каждого, можно вынести эту фичу в Dynamic Feature Module, и предоставить её только тем, кому она нужна, докачивая ее уже потом.

Тяжёлые фичи, не относящиеся к основному сценарию использования приложения. Например, AR-навигация в картографическом сервисе. Любая AR-фича самое то, чтобы вынести ее в Dynamic Feature Module.

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

Android Instant Apps — это теперь Instant-Enabled Dynamic Feature Module.

Таким образом получается, что есть два типа Dynamic Feature Modules:

  • Обычные Dynamic Feature Modules — функциональные модули, загружаемые и устанавливаемые на устройство отдельно от основного приложения. Они живут там столько, сколько живет само приложение. Пока вы его не удалите, Dynamic Feature Module будет.
  • Instant-Enabled Dynamic Feature Modules — функциональные модули, доступные для запуска без установки на устройство. Этот модуль живет ограниченное время.

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

Модульная структура

Я уже говорил, что модульная структура упростилась. Посмотрим, как именно.

Изначально у нас была достаточно монструозная структура. Среди прочего в ней были пустые модули, например, Instant App Module всегда был пустой, в нем не было ни кода, ни ресурсов, а только файл build.gradle и все.

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

Но потом они пошли еще дальше и подумали — зачем нужен Base Feature Module? От него одни проблемы, потому что мы инициализируем там все, а у него Application ID другой. Отсюда идут костыли, например, передача Application ID из App Module в Base Feature Module, и подстановка его как настоящего Application ID приложения, чтобы все трекалось в Crashlytics и т.д.

В итоге получилось так.

Оставили App Module, к нему сверху приделали Feature Modules — и всё!

Не передать мои эмоции, когда я об этом узнал. Ребята с большой сцены заявили, что у них есть классная технология: «Давайте все перепиливать приложения под эту структуру!» Но это не работа на 5 минут, а работа с большими последствиями.

В 2017 году иметь монолитное приложение было еще не стыдно. Лабиринт был именно таким, он тогда даже еще не вышел в публичный релиз, а был в бете. На момент, когда мы ввязались в Early Access Program, там уже было порядка 90 экранов. Мы потратили два дополнительных месяца на то, чтобы это все отрефакторить, протестировать и убедиться, что все действительно работает.

И после этого они говорят: «Мы перемудрили, можно гораздо проще сделать».

Но вернемся к прозе.

Конфигурация Gradle-файлов

Для того, чтобы поддержать новую конфигурацию, нам нужно сперва в файле build.gradle app-модуля в блоке Android перечислить все Dynamic Feature Modules:

// в build.gradle app-модуля android

После этого в build.gradle файле каждого Dynamic Feature Module прописать зависимость на app-модуль:

// в build.gradle каждого dynamic feature-модуля dependencies

В принципе, ничего сложного. Но есть еще конфигурация манифестов.

Конфигурация манифестов

В манифесте app-модуля мы можем повесить флаг true, чтобы обозначить, что в этом приложении есть хотя бы одна Instant-Enabled Feature:

// в манифесте app-модуля 

Если этого флага не будет, нельзя будет задеплоиться в соответствующий трек в Google Play.

Кроме того, есть еще конфигурация манифеста каждого Dynamic Feature Module в отдельности, в котором больше настроек:

// в манифесте каждого dynamic feature-модуля // именуем модуль //указываем, будет ли модуль включён в APK для preLollipop 

Первые два флага немножко взаимоисключающие, потому что onDemand — это обычная базовая фича, а instant — это та самая Installable фича.

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

Параметр include — параметр для preLollipops. Если установить его значение false, то пользователи preLollipops никогда эту фичу не увидят и не смогут ей воспользоваться.

Конфигурация Gradle-projects

Жизнь instantapp-плагина и feature-плагина была достаточно короткой, но яркой. Они просуществовали менее двух лет. С марта этого года они больше не поддерживаются.

Теперь остался только один Dynamic Feature Module, который мы и используем:

apply plugin: 'com.android.dynamic-feature'

Конфигурация проекта только в app-модуле

Важный момент: все настройки, касающиеся подписи (signing-конфигурация), сборки (ProGuard-конфигурация), versionCode и versionName нужно делать только в build.gradle app-модуля.

Иначе, они будут проигнорированы. Избегайте указания какого-либо из этих конфигурационных блоков в build.gradle-файлах dynamic feature-модулей.

Google Play Instant

Сейчас мы имеем следующее.

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

Ограничения на размер сборки стали лояльнее. Если раньше было 4 Мб, то теперь:

  • Dynamic Feature Modules вообще не ограничены по размеру;
  • Instant-Enabled Dynamic Feature Modules могут занимать до 10 Мб.

  • больше 10 Мб, то извините;
  • от 4 до 10 Мб — доступна по кнопке «Попробовать» из Google Play и все;
  • меньше 4 МБ — доступны все средства привлечения пользователей в Instant-Enabled модуль (запуск из рекламы, по ссылке, из сообщений и т.д.).
@Override public boolean maybeLaunchInstantApp(Tab tab, String url, String referrerUrl, boolean isIncomingRedirect) < if (tab == null || tab.getWebContents() == null) return false; InstantAppsHandler handler = InstantAppsHandler.getInstance(); Intent intent = tab.getTabRedirectHandler() != null ? tab.getTabRedirectHandler().getInitialIntent() : null; if (isIncomingRedirect && intent != null && intent.getAction() == Intent.ACTION_VIEW) < Intent resolvedIntent = new Intent(intent); resolvedIntent.setData(Uri.parse(url)); return handler.handleIncomingIntent(getAvailableContext(), resolvedIntent, ChromeLauncherActivity.isCustomTabIntent(resolvedIntent)); >else < . >return false; >

Это реальный кусок кода из Chrome под Android, который перехватывал ссылку на ваш Instant App, шел в Google Play и подставлял оттуда Instant Apps. Если Instant App обнаруживался, он вам каким-то образом открывал activity, из которой потом запускался Instant App.

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

Play Core Library позволяет забыть о проблемах доставки. Вы просто подключаете ее как пакет:

implementation 'com.google.android.play:core:1.4.0'

И загружаете нужные вам feature-модули из Google Play.

У библиотеки достаточно функциональный синтаксис, который позволяет скачивать модули поодиночке:

val splitInstallManager = SplitInstallManagerFactory.create(context)

Или сразу пачкой по несколько:

val request = SplitInstallRequest .newBuilder() .addModule("feature1") .addModule("feature2") .build()
splitInstallManager .startInstall(request) .addOnSuccessListener < sessionId ->. > .addOnFailureListener < exception ->. >

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

Play Core Library — хорошее начинание:

  • Наконец-то можно перестать надеяться на авось в лице Google Chrome.
  • Можно демонстрировать загрузку модулей на UI так, как вам хочется.
  • Есть возможность подгружать feature-модули «пачками».
  • Появился способ гибкой обработки ошибок, возникающих при загрузке и установке feature-модуля.
  • Вам даже не нужно перезагружать приложение после того, как фича будет установлена, потому что есть SplitCompat.install() — вызываете ее и можете сразу обращаться к классам из свежеустановленной фичи прямо на лету.
  • Код обфусцирован и никак не задокументирован.
  • В один SplitInstallStateUpdatedListener приходят события со всех активных сессий загрузки — сортировать нужно вручную. Нужно заранее сохранить где-то ID сессии, что в итоге выливается в не очень красивый код.
  • Корявый, избыточный стейт-менеджмент и обработка ошибок: 9 возможных состояний, 10 возможных ошибок. Сочетания этих ошибок и состояний могут по-разному трактоваться, все состояния и ошибки возвращаются как int.
  • Нет возможности нормального тестирования загрузки и установки фичей на локальное устройство — это просто невозможно.

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

Но тогда теряется вся выгода от разбиения на модули. Мы перешли к модулям задолго до того, как возникла необходимость решать такие проблемы. И сделали это отчасти потому, что это упрощает работу с кодовой базой для неопытных разработчиков, которые по неопытности могут с base-activity обратиться к signing-activity — потом ищи это на код-ревью.

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

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

abstract class ActivityCrossFeatureRoute < override fun prepareIntent(context: Context): Intent? < try < return Intent(context, Class.forName(targetClassPath())) >catch (e: ClassNotFoundException) < Logger.e("Activity with the following classpath was not found in the current " + "application: $. If this activity is the part of Dynamic Feature, " + "please check if this Dynamic Feature is downloaded and installed on the device" + "successfully.") > return null > >

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

Plaid — это один из самых крутых шоу-кейсов, с ними Google пробует все свои самые последние тенденции, крутые анимации, дизайн-приемы, последние UI-компоненты и, в частности, модульность.

Много, действительно много багов, недоинжиниринга, шероховатостей. Искать баги особо долго не придется.

  • Доступ к ресурсам из app-модуля возможен только по полному пути.
  • Проблема с запуском JobScheduler на O+ девайсах. Официальный Workaround — это ручной запуск TestJobSchedulerService :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
  • Ошибка мёржа манифеста при подключении сторонних библиотек, например, Firebase, Fabric, AndroidX-пакетов и т.д.
  • Невозможность множественных зависимостей на сторонние пакеты — один из моих любимых пунктов.

Разработчики советуют: добавить в иерархию feature-модуль, в котором нет ничего, кроме зависимости на стороннюю библиотеку, и сделать на него зависимости от двух исходных feature-модулей.

  • Крэш вызова InstantApps.isInstantApp(context) в attachBaseContext().
override fun attachBaseContext(base: Context) < super.attachBaseContext(base) if (!InstantApps.isInstantApp(this)) < SplitCompat.install(this) >>
  • Баги отображения ConstraintLayout при использовании Groups и Barriers .

Наконец, после того, как вы и это преодолеете, вы обнаружите, что…

Dynamic Features всё ещё в Beta! Вы не можете задеплоиться в продакшен — вы всё это время были бесплатным тестировщиком для Google!

Но не по мнению Google. Если вы хотите им стать, то можете заполнить Interest Form и, быть может, вам повезет и вам дадут доступ задеплоиться в продакшен.

Есть мнение, что Instant Apps проиграл эту битву. Вряд ли об этом объявят в ближайшие годы, но повышенная информационная активность вокруг AMP негласно это подтверждает.

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

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

  • https://developer.android.com/topic/google-play-instant/overview
  • https://developer.android.com/guide/app-bundle
  • https://developer.android.com/studio/proiects/dvnamic-delivery
  • https://developer.android.com/guide/app-bundle/playcore
  • Bundling an App in an Instant (Android Dev Summit ’18)
  • https://github.com/googlesamples/android-instant-apps
  • https://github.com/googlesamples/android-dynamic-features

Мы сделали программу Saint AppsConf, которая уже 21-22 октября в Санкт-Петербурге, еще более насыщенной и разнообразной, чем она была весной. Check it out!

Или подпишитесь на рассылку, telegram, fb — там рассказываем об отдельных докладах и подготовке к конференции.

  • google play instant
  • instant apps
  • early access
  • appsconf
  • Блог компании Конференции Олега Бунина (Онтико)
  • Разработка мобильных приложений
  • Разработка под Android
  • Google API
  • Конференции

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

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