Внимание: Google Play Instant больше не будет доступен. С декабря 2025 года мгновенные приложения нельзя будет публиковать через Google Play, и все API мгновенного запуска сервисов Google Play перестанут работать. Пользователи больше не смогут получать мгновенные приложения через Play, используя какие-либо механизмы.
Мы вносим это изменение, основываясь на отзывах разработчиков и наших постоянных инвестициях в улучшение экосистемы с момента внедрения Google Play Instant.
Чтобы продолжить оптимизацию для роста числа пользователей, мы призываем разработчиков направлять пользователей в их обычные приложения или игры, используя глубокие ссылки для перенаправления их на определенные маршруты или функции, когда это уместно.
Вы создаёте Google Play Instant Experience, включая его в состав Android App Bundle . Такой пакет называется пакетом приложений с поддержкой мгновенного запуска . В этом документе описывается, как настроить среду разработки для пакетов приложений с поддержкой мгновенного запуска, а также как настроить, собрать, протестировать и опубликовать пакет приложений с поддержкой мгновенного запуска.
Если у вас есть существующий проект мгновенного приложения, который использует устаревший плагин функций ( com.android.feature ), узнайте, как перенести ваше мгновенное приложение для поддержки Android App Bundles .
Настройка среды разработки
Для обеспечения мгновенного взаимодействия с пакетом приложений вам необходим доступ к SDK Google Play Instant Development. Установить SDK можно одним из следующих способов:
- Установите Android Studio 3.6 или более позднюю версию. После открытия Android Studio загрузите Google Play Instant Development SDK с вкладки «Инструменты SDK» в диспетчере SDK .
Установка из командной строки:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Кроме того, если вы хотите протестировать мгновенный опыт локально, получите доступ к физическому или виртуальному устройству.
Узнайте о необходимых условиях исполнения
Google Play Instant запускает пакеты приложений с поддержкой мгновенного запуска в особой песочнице SELinux для дополнительной безопасности. Эта песочница предоставляет ограниченный набор разрешений, а также ограниченные типы взаимодействия с другими приложениями. В следующих разделах характеристики этой песочницы описываются более подробно.
Поддерживаемые разрешения и операции
Пакеты приложений с поддержкой мгновенного запуска могут использовать только разрешения из следующего списка:
-
ACCESS_COARSE_LOCATION -
ACCESS_FINE_LOCATION -
ACCESS_NETWORK_STATE -
BILLING– Устарело с версии Play Billing Library 1.0 . -
CAMERA -
INSTANT_APP_FOREGROUND_SERVICE– Только в Android 8.0 (уровень API 26) и выше. -
INTERNET -
READ_PHONE_NUMBERS– Только в Android 8.0 (уровень API 26) и выше. -
RECORD_AUDIO -
VIBRATE -
WAKE_LOCK
Обработка распространенных неподдерживаемых разрешений
Ниже приведен список распространенных неподдерживаемых разрешений, которые необходимо удалить из приложения, а также рекомендуемый путь миграции для каждого из них:
-
ACCESS_WIFI_STATE: используйтеACCESS_NETWORK_STATE, который должен предоставлять информацию, аналогичнуюACCESS_WIFI_STATE. -
BILLING: Это устаревшее разрешение. Используйте библиотеку Google Play Billing Library , которая больше не требует разрешенияcom.android.vending.BILLING. -
READ/WRITE_EXTERNAL_STORAGE: мгновенные приложения не имеют доступа к внешнему хранилищу; вместо этого используйте внутреннее хранилище. -
com.google.android.c2dm.permission.RECEIVEиpermission.C2D_MESSAGE: C2DM устарел. Перейдите на Firebase Cloud Messaging (FCM). Для работы FCM не требуются дополнительные разрешения.
Кроме того, пакеты приложений с поддержкой мгновенного запуска не могут выполнять следующие действия:
- Используйте фоновые службы .
- Отправлять уведомления при работе в фоновом режиме.
Доступ к установленным приложениям
При разработке мгновенного опыта помните, что он не сможет взаимодействовать с установленными на устройстве приложениями, если не выполняется одно из следующих условий:
- Одно или несколько действий в установленном приложении установили для своего
android:visibleToInstantAppsзначениеtrue— этот элемент доступен для приложений под управлением Android 8.0 (уровень API 26) или выше. - Установленное приложение содержит фильтр намерений, включающий
CATEGORY_BROWSABLE. - Мгновенный опыт — это отправка намерения с использованием действия
ACTION_SEND,ACTION_SENDTOилиACTION_SEND_MULTIPLE.
Настройте свой проект для мгновенного опыта
Для обеспечения совместимости с Google Play Instant необходимо тщательно настроить ряд аспектов вашего пакета приложений с поддержкой мгновенного запуска. Эти аспекты описаны в следующих разделах.
Объявить зависимости проекта
Чтобы использовать API Google Play Instant в своем приложении, включите следующее объявление в файл конфигурации build.gradle модуля вашего приложения:
Круто
implementation "com.google.android.gms:play-services-instantapps:17.0.0"
Котлин
implementation("com.google.android.gms:play-services-instantapps:17.0.0")
Определите правильные коды версий
Код версии мгновенного опыта вашего приложения должен быть меньше кода версии устанавливаемого приложения. Ожидается, что пользователи перейдут от мгновенного опыта Google Play к загрузке и установке приложения на своё устройство. Фреймворк Android рассматривает этот переход как обновление приложения.
Чтобы убедиться, что вы следуете ожидаемой пользователями схеме управления версиями, воспользуйтесь одной из следующих стратегий:
- Перезапустите коды версий для Google Play Instant с 1.
- Увеличьте код версии устанавливаемого 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», и выберите Рефакторинг > Включить поддержку мгновенных приложений .
- В открывшемся диалоговом окне выберите базовый модуль из раскрывающегося меню.
- Нажмите ОК .
Android Studio добавляет следующее объявление в манифест модуля:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>Если у вас есть существующий комплект приложений, содержащий несколько модулей, вы можете создать модуль функции с мгновенным запуском . Этот процесс также мгновенно активирует базовый модуль вашего приложения, предоставляя вам возможность поддерживать несколько мгновенных точек входа в приложении.
Добавить поддержку входа
Если ваш мгновенный запуск позволяет пользователям входить в систему, ваш пакет приложений с мгновенным запуском должен поддерживать Smart Lock для паролей на Android . Если вы разрабатываете игру с мгновенным запуском , используйте вход через сервисы Google Play Games .
Поддержка среды исполнения
Чтобы обеспечить совместимость с песочницей SELinux, в которой работают функции мгновенного запуска, при создании пакета приложений с поддержкой мгновенного запуска учитывайте следующее:
- Не передавайте никому значение
myUid(), которое является UID процесса вашего приложения, назначенным ядром. - Если ваше приложение предназначено для Android 8.1 (уровень API 27) или ниже, создайте файл конфигурации сетевой безопасности и установите для параметра
cleartextTrafficPermittedзначениеfalse. Мгновенные интерфейсы не поддерживают HTTP-трафик. Для приложений, предназначенных для Android 9 и выше, открытый текстовый трафик по умолчанию отключен. Ваш мгновенный опыт остается загруженным на устройство пользователя до тех пор, пока кэш мгновенного опыта не будет очищен, что происходит в одной из следующих ситуаций:
- Кэш мгновенного опыта очищается сборщиком мусора, поскольку на устройстве заканчивается доступная память.
- Пользователь перезагружает свое устройство.
В случае возникновения любого из этих процессов пользователю придется повторно загрузить ваш мгновенный опыт, чтобы взаимодействовать с ним.
Если в системе очень мало места, возможно, пользовательские данные вашего приложения Instant Experience удалены из внутреннего хранилища. Поэтому рекомендуется периодически синхронизировать пользовательские данные с сервером вашего приложения, чтобы сохранить прогресс пользователя.
Добавьте логику для мгновенного взаимодействия с рабочими процессами
После настройки комплекта приложений для поддержки мгновенного взаимодействия добавьте логику, показанную в следующих разделах.
Проверьте, поддерживает ли приложение мгновенный опыт
Если логика вашего приложения зависит от того, активен ли пользователь в режиме мгновенного взаимодействия, вызовите метод isInstantApp() . Этот метод возвращает true если текущий процесс является мгновенным взаимодействием.
Отобразить приглашение к установке
Если вы создаёте пробную версию своего приложения или игры, Google Play Instant позволяет отображать в вашем мгновенном опыте приглашение с предложением установить полную версию на своё устройство. Для отображения этого приглашения используйте метод InstantApps.showInstallPrompt() , как показано в следующем фрагменте кода:
Котлин
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) } }
Ява
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) и ниже, добавьте поддержку API хранилища — пример приложения
Создайте пакет приложений
Для создания пакета приложений с мгновенным запуском можно использовать Android Studio или интерфейс командной строки.
Android Studio
В Android Studio вы можете собрать свой пакет приложений, выбрав «Сборка» > «Сборка пакетов/APK» > «Сборка пакетов» . Подробнее о сборке проекта см. в разделе «Сборка проекта» .
Интерфейс командной строки
Вы также можете собрать пакет приложения из командной строки, используя Gradle.
Поддержка 64-битных архитектур
Приложения, опубликованные в Google Play, должны поддерживать 64-битную архитектуру. Добавление 64-битной версии приложения повышает производительность и позволяет использовать его на устройствах, поддерживающих только 64-битную архитектуру. Подробнее о поддержке 64-битной архитектуры читайте здесь .
Испытайте мгновенный опыт
Перед публикацией пакета приложений с поддержкой мгновенного запуска вы можете протестировать мгновенный запуск в одном из следующих мест, чтобы проверить функциональность:
- Установка на локальное устройство с помощью Android Studio .
- Установка на локальное устройство с помощью интерфейса командной строки .
- Опубликуйте во внутреннем тестовом треке на Google Play Console.
Android Studio
Чтобы протестировать мгновенный запуск вашего приложения на локальном компьютере с помощью Android Studio, выполните следующие действия:
- Если на вашем тестовом устройстве установлена версия приложения, удалите ее.
- В Android Studio в параметрах установки, которые отображаются на вкладке Общие диалогового окна Конфигурации запуска/отладки , установите флажок Развернуть как мгновенное приложение .
- Выберите «Выполнить» > «Выполнить» в строке меню или нажмите «Выполнить».
На панели инструментов выберите устройство, на котором вы хотите протестировать функцию мгновенного запуска приложения. Функция мгновенного запуска приложения будет загружена на выбранное вами тестовое устройство.
Интерфейс командной строки
Чтобы протестировать мгновенный запуск вашего приложения на локальном компьютере с помощью командной строки, выполните следующие действия:
- Если на вашем тестовом устройстве установлена версия приложения, удалите ее.
- Загрузите и запустите мгновенное приложение на тестовом устройстве, введя следующую команду:
ia run output-from-build-command
Внутренний испытательный трек
Чтобы протестировать мгновенный запуск вашего приложения из Play Store или с помощью баннера на вашем веб-сайте, опубликуйте приложение во внутренней тестовой версии на Play Console.
Чтобы опубликовать приложение во внутреннем тестовом режиме, выполните следующие действия:
- Загрузите свой пакет приложений, следуя инструкциям в руководстве Загрузка пакета приложений в Play Console .
- Подготовьте загруженный пакет к выпуску во внутреннюю тестовую версию. Подробнее см. в статье службы поддержки о подготовке и выпуске релизов .
Войдите в учетную запись внутреннего тестировщика на устройстве, затем запустите свой мгновенный опыт с одной из следующих поверхностей:
- Кнопка «Попробовать сейчас» на странице вашего приложения в Play Store.
- Ссылка с баннера на сайте вашего приложения.
Опубликовать комплект приложений в рабочей версии
Чтобы опубликовать пакет приложений с поддержкой мгновенного запуска, выполните следующие действия:
- Если вы еще этого не сделали, подпишите свой пакет приложения с помощью ключа релиза и загрузите пакет приложения в Play Console .
- В Play Console откройте «Управление релизами» > «Приложения Android с мгновенным запуском» , затем перейдите в раздел « Производство приложений с мгновенным запуском» .
- Выберите Обновить из библиотеки , затем выберите загруженный вами пакет приложений с поддержкой мгновенного обновления.
Выберите, где опубликовать ваш мгновенный опыт
Вы можете запустить мгновенный запуск вашего приложения в ограниченном количестве стран и регионов, где пользователи могут его установить. Эта возможность полезна, если вы хотите продвигать мгновенный запуск приложения среди пользователей, проживающих в определённом наборе стран и регионов.
Дополнительные ресурсы
Дополнительную информацию о создании мгновенных впечатлений и пакетов приложений Android можно найти на следующих ресурсах:
- Видео: мгновенное объединение приложений
- Узнайте, как добавить мгновенный опыт в Android App Bundle, в этом сеансе с Android Dev Summit '18.
- Видео: Публикация небольших приложений с помощью Android App Bundle
- Узнайте, как пакеты приложений помогут вам быстрее разрабатывать приложения и создавать APK-файлы меньшего размера для ваших пользователей.
- Codelab: ваш первый комплект приложений для Android
- Пошаговое руководство по созданию пакета приложений Android и добавлению в него функций.
- Формат пакета приложений Android
- Узнайте больше о том, как программа командной строки
bundletoolорганизует пакет приложения из кода и ресурсов вашего приложения.