Внимание! Google Play Instant больше не будет доступен. С декабря 2025 года приложения с мгновенным запуском нельзя будет публиковать в Google Play, а все Instant API сервисов Google Play перестанут работать. Пользователи больше не будут получать приложения с мгновенным запуском из Google Play.
Мы приняли это решение на основе отзывов разработчиков и наших постоянных инвестиций в улучшение экосистемы с момента запуска Google Play Instant.
Чтобы и дальше увеличивать аудиторию, рекомендуем направлять пользователей напрямую к полному приложению или игре и добавлять ссылки на контент, которые позволяют сразу переходить к нужным разделам.
Вы создаете приложение Google Play Instant, включив его в набор Android App Bundle. Такой набор называется набором App Bundle с мгновенным запуском. В этой статье рассказывается, как настроить среду разработки для наборов App Bundle с мгновенным запуском, а также как настроить, создать, протестировать и опубликовать такой набор.
Если у вас есть проект приложения с мгновенным запуском, в котором используется устаревший плагин com.android.feature, узнайте, как перейти на наборы Android App Bundle.
Настройте среду разработки
Чтобы добавить в набор App Bundle функцию мгновенного запуска, вам потребуется доступ к Google Play Instant Development SDK. Установить SDK можно одним из следующих способов:
- Установите Android Studio 3.6 или более поздней версии. Откройте Android Studio и скачайте Google Play Instant Development SDK на вкладке SDK Tools в SDK Manager.
Установка из командной строки:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Кроме того, если вы хотите протестировать приложение с мгновенным запуском локально, вам понадобится физическое или виртуальное устройство.
Ознакомьтесь с необходимыми условиями выполнения
Google Play Instant запускает наборы App Bundle с мгновенным запуском в специальной изолированной среде SELinux для дополнительной безопасности. В этой песочнице разрешен ограниченный набор разрешений и типов взаимодействия с другими приложениями. Ниже подробно описаны характеристики этой песочницы.
Поддерживаемые разрешения и операции
Наборы App Bundle с мгновенным запуском могут использовать только разрешения из следующего списка:
ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATIONACCESS_NETWORK_STATEBILLING– поддержка прекращена в библиотеке Google Play Платежей версии 1.0.CAMERAINSTANT_APP_FOREGROUND_SERVICE– только в Android 8.0 (уровень API 26) и более поздних версиях.INTERNETREAD_PHONE_NUMBERS– только в Android 8.0 (уровень API 26) и более поздних версиях.RECORD_AUDIOVIBRATEWAKE_LOCK
Как работать с неподдерживаемыми разрешениями
Ниже приведен список распространенных неподдерживаемых разрешений, которые необходимо удалить из приложения, и рекомендуемые способы перехода на другие разрешения.
ACCESS_WIFI_STATE: используйтеACCESS_NETWORK_STATE, который предоставляет информацию, аналогичнуюACCESS_WIFI_STATE.BILLING: это разрешение больше не поддерживается. Используйте библиотеку Google Play Платежей, для которой больше не требуется разрешениеcom.android.vending.BILLING.READ/WRITE_EXTERNAL_STORAGE: у приложений с мгновенным запуском нет доступа к внешнему хранилищу. Используйте внутреннее.com.google.android.c2dm.permission.RECEIVEиpermission.C2D_MESSAGE: C2DM больше не поддерживается. Перейдите на Firebase Cloud Messaging (FCM). Для работы FCM не требуются дополнительные разрешения.
Кроме того, наборы App Bundle с мгновенным запуском не могут:
- Используйте фоновые службы.
- Отправлять уведомления при работе в фоновом режиме.
Доступ к установленным приложениям
При разработке приложения с мгновенным запуском помните, что оно не может взаимодействовать с установленными на устройстве приложениями, если не выполняется одно из следующих условий:
- Для одного или нескольких действий в установленном приложении задан элемент
android:visibleToInstantAppsсо значениемtrue. Этот элемент доступен для приложений, работающих на устройствах с Android 8.0 (уровень API 26) или более поздней версии. - В установленном приложении есть фильтр интентов, который включает
CATEGORY_BROWSABLE. - Приложение с мгновенным запуском отправляет намерение, используя действие
ACTION_SEND,ACTION_SENDTOилиACTION_SEND_MULTIPLE.
Как настроить проект для мгновенного запуска
Чтобы набор App Bundle с мгновенным запуском был совместим с Google Play Instant, необходимо тщательно настроить несколько аспектов. Ниже описаны эти факторы.
Объявление зависимостей проекта
Чтобы использовать API Google Play Instant в приложении, добавьте в файл конфигурации build.gradle модуля приложения следующее объявление:
Яркий
implementation "com.google.android.gms:play-services-instantapps:17.0.0"
Kotlin
implementation("com.google.android.gms:play-services-instantapps:17.0.0")
Укажите правильные коды версий
Код версии приложения с мгновенным запуском должен быть меньше, чем у устанавливаемого приложения. Предполагается, что пользователи будут переходить от Google Play Instant к скачиванию и установке приложения на устройство. Фреймворк Android считает этот переход обновлением приложения.
Чтобы схема управления версиями соответствовала ожиданиям пользователей, выберите одну из следующих стратегий:
- Начните нумерацию версий для Google Play Instant с единицы.
- Увеличьте код версии устанавливаемого APK-файла на большое число, например на 1000, чтобы у вас было достаточно места для увеличения номера версии приложения с мгновенным запуском.
Вы можете разрабатывать приложение с мгновенным запуском и устанавливаемое приложение в двух разных проектах Android Studio. Однако в этом случае для публикации приложения в Google Play вам потребуется:
- Используйте одно и то же название пакета в обоих проектах Android Studio.
- Загрузите оба варианта в одно приложение в Google Play Console.
Подробнее о том, как указать версию приложения…
Обновите целевую версию изолированной среды
Файл AndroidManifest.xml приложения с мгновенным запуском нужно обновить, чтобы он был нацелен на среду изолированной программной среды, которую поддерживает Google Play Instant. Для этого добавьте атрибут android:targetSandboxVersion в элемент <manifest> приложения, как показано в следующем фрагменте кода:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
Дополнительную информацию можно найти в документации по атрибуту targetSandboxVersion.
Как объявить модули приложения с мгновенным запуском
Указать, что набор App Bundle поддерживает мгновенный запуск, можно одним из следующих способов:
Если у вас есть набор App Bundle, содержащий только основной модуль, вы можете включить мгновенный запуск следующим образом:
- Откройте панель Project (Проект), выбрав в строке меню View (Вид) > Tool Windows (Окна инструментов) > Project (Проект).
- Нажмите правой кнопкой мыши на базовый модуль (обычно он называется app) и выберите Refactor (Рефакторинг) > Enable Instant Apps Support (Включить поддержку приложений с мгновенным запуском).
- В открывшемся диалоговом окне выберите базовый модуль в раскрывающемся меню.
- Нажмите ОК.
Android Studio добавит в манифест модуля следующее объявление:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>Если у вас уже есть набор App Bundle, содержащий несколько модулей, вы можете создать модуль функции с мгновенным запуском. В результате основной модуль приложения будет поддерживать мгновенный запуск, и вы сможете добавить в приложение несколько точек входа.
Добавьте поддержку входа в аккаунт
Если в приложении с мгновенным запуском есть функция входа, то набор App Bundle должен поддерживать Smart Lock для паролей на устройствах Android. Если вы создаете игру с мгновенным запуском, используйте вход через игровые сервисы Google Play.
Поддержка среды выполнения
Чтобы обеспечить совместимость с изолированной средой SELinux, в которой запускаются приложения с мгновенным запуском, при создании набора App Bundle учитывайте следующее:
- Не передавайте значение
myUid(), которое является UID, назначенным ядром для процесса приложения. - Если ваше приложение предназначено для Android 8.1 (уровень API 27) или более ранней версии, создайте файл конфигурации сетевой безопасности и задайте для параметра
cleartextTrafficPermittedзначениеfalse. Мгновенные впечатления не поддерживают трафик HTTP. В приложениях, предназначенных для Android 9 или более поздней версии, трафик в виде открытого текста по умолчанию отключен. Приложение с мгновенным запуском остается на устройстве пользователя, пока не будет очищен кеш. Это происходит в следующих случаях:
- Кеш версии с мгновенным запуском очищается, когда на устройстве заканчивается свободная память.
- Пользователь перезапускает устройство.
Если это произойдет, пользователю придется скачать приложение с мгновенным запуском заново, чтобы взаимодействовать с ним.
Если на устройстве недостаточно места, пользовательские данные приложения с мгновенным запуском могут быть удалены из внутренней памяти. Поэтому рекомендуется периодически синхронизировать пользовательские данные с сервером приложения, чтобы сохранить прогресс пользователя.
Добавьте логику для рабочих процессов мгновенного опыта
После того как вы настроите набор App Bundle для поддержки версий с мгновенным запуском, добавьте логику, описанную в следующих разделах.
Проверьте, запущено ли приложение с мгновенным запуском
Если логика приложения зависит от того, использует ли пользователь приложение с мгновенным запуском, вызовите метод isInstantApp(). Этот метод возвращает true, если текущий процесс является приложением с мгновенным запуском.
Показывать подсказку об установке
Если вы создаете пробную версию приложения или игры, Google Play Instant позволяет показывать в ней приглашение установить полную версию на устройство. Чтобы показать это приглашение, используйте метод InstantApps.showInstallPrompt(), как показано в следующем фрагменте кода:
Kotlin
class MyInstantExperienceActivity : AppCompatActivity { // ... private fun showInstallPrompt() { val postInstall = Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_DEFAULT) .setPackage(your-installed-experience-package-name) // The request code is passed to startActivityForResult(). InstantApps.showInstallPrompt(this@MyInstantExperienceActivity, postInstall, request-code, /* referrer= */ null) } }
Java
public class MyInstantExperienceActivity extends AppCompatActivity { // ... private void showInstallPrompt() { Intent postInstall = new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_DEFAULT) .setPackage(your-installed-experience-package-name); // The request code is passed to startActivityForResult(). InstantApps.showInstallPrompt(MyInstantExperienceActivity.this, postInstall, request-code, /* referrer= */ null); } }
Перенос данных в установленное приложение
Если пользователю понравится приложение с мгновенным запуском, он может решить установить его полную версию. Чтобы обеспечить удобство работы, важно перенести данные пользователя из приложения с мгновенным запуском в полную версию.
Если пользователь работает на устройстве с Android 8.0 (уровень API 26) или более поздней версии и в вашем приложении указан targetSandboxVersion со значением 2, то данные пользователя автоматически переносятся в полную версию приложения. В противном случае вам придется перенести их вручную. Для этого используйте один из следующих API:
- Для пользователей устройств с Android 8.0 (уровень API 26) и более поздних версий используйте Cookie API – пример приложения.
- Если пользователи могут взаимодействовать с вашим продуктом на устройствах с Android 7.1 (API уровня 25) и более ранними версиями, добавьте поддержку Storage API. Пример приложения
Создайте набор App Bundle
Создать набор App Bundle с мгновенным запуском можно в Android Studio или интерфейсе командной строки.
Android Studio
Чтобы создать набор App Bundle в Android Studio, выберите Build (Сборка) > Build Bundle(s) / APK(s) (Создать наборы App Bundle/файлы APK) > Build Bundle(s) (Создать наборы App Bundle). Подробнее о том, как создать проект…
Интерфейс командной строки
Вы также можете создать набор App Bundle из командной строки с помощью Gradle.
Поддержка 64-разрядных устройств
Приложения, опубликованные в Google Play, должны поддерживать 64-разрядную архитектуру. Добавление 64-разрядной версии приложения повышает его производительность и позволяет подготовиться к выпуску устройств, поддерживающих только 64-разрядные версии приложений. Подробнее о поддержке 64-разрядных систем…
Как протестировать приложение с функцией мгновенного запуска
Прежде чем опубликовать набор App Bundle с мгновенным запуском, вы можете протестировать его работу в одном из следующих мест:
- Установите приложение на локальное устройство с помощью Android Studio.
- Установите на локальное устройство с помощью интерфейса командной строки.
- Опубликуйте приложение на канале внутреннего тестирования в Google Play Console.
Android Studio
Чтобы протестировать приложение с мгновенным запуском на локальном компьютере с помощью Android Studio, выполните следующие действия:
- Если на тестовом устройстве установлена версия вашего приложения, удалите ее.
- В Android Studio на вкладке General (Общие) в диалоговом окне Run/Debug Configurations (Конфигурации запуска/отладки) установите флажок Deploy as instant app (Развернуть как приложение с мгновенным запуском).
- В строке меню выберите Run (Запустить) > Run (Запустить) или нажмите Run (Запустить)
на панели инструментов, а затем выберите устройство, на котором вы хотите протестировать мгновенный запуск приложения. На выбранном тестовом устройстве загрузится версия приложения с мгновенным запуском.
Интерфейс командной строки
Чтобы протестировать приложение с мгновенным запуском на локальном компьютере с помощью командной строки, выполните следующие действия:
- Если на тестовом устройстве установлена версия вашего приложения, удалите ее.
- Установите и запустите приложение с мгновенным запуском на тестовом устройстве, введя следующую команду:
ia run output-from-build-command
Канал внутреннего тестирования
Чтобы протестировать мгновенный запуск приложения из Google Play или баннера на сайте, опубликуйте приложение на канале внутреннего тестирования в Play Console.
Чтобы опубликовать приложение на канале внутреннего тестирования, выполните следующие действия:
- Загрузите набор App Bundle, следуя инструкциям в руководстве Как загрузить набор App Bundle в Play Console.
- Подготовьте загруженный набор App Bundle к выпуску на канале внутреннего тестирования. Подробнее о том, как подготовить и опубликовать выпуск…
Войдите в аккаунт внутреннего тестировщика на устройстве и запустите приложение с мгновенным запуском одним из следующих способов:
- Кнопка Попробовать на странице приложения в Google Play.
- Ссылка из баннера на сайте приложения.
Опубликуйте набор App Bundle в рабочей версии
Чтобы опубликовать набор App Bundle с мгновенным запуском, выполните следующие действия:
- Если вы ещё этого не сделали, подпишите набор App Bundle ключом выпуска и загрузите набор в Play Console.
- В Play Console выберите Управление релизами > Приложения для Android с мгновенным запуском и перейдите к рабочей версии приложения с мгновенным запуском.
- Нажмите Обновить из библиотеки и выберите загруженный набор App Bundle с мгновенным запуском.
Выберите, где опубликовать приложение с функцией мгновенного запуска
Вы можете запустить приложение с мгновенным запуском в некоторых странах и регионах, где доступна его установка. Это полезно, если вы хотите продвигать приложение с мгновенным запуском среди пользователей, проживающих в определенных странах и регионах.
Дополнительные ресурсы
Дополнительную информацию о создании приложений с мгновенным запуском и наборов Android App Bundle можно найти в следующих ресурсах:
- Видео: как быстро создать пакет приложения
- Узнайте, как добавить приложение с мгновенным запуском в Набор Android App Bundle, из этого видео с Саммита для разработчиков Android 2018.
- Видео: как публиковать приложения меньшего размера с помощью наборов Android App Bundle
- Узнайте, как наборы App Bundle помогают быстрее разрабатывать приложения и создавать APK-файлы меньшего размера.
- Практическая работа: ваш первый набор Android App Bundle
- Пошаговое руководство по созданию набора Android App Bundle и добавлению в него функций.
- Формат Android App Bundle
- Узнайте больше о том, как программа командной строки
bundletoolсоздает набор App Bundle из кода и ресурсов приложения.