Создайте пакет приложений с мгновенной поддержкой

Предупреждение: Google Play Instant больше не будет доступен. Начиная с декабря 2025 года мгновенные приложения не могут быть опубликованы через Google Play, и все API-интерфейсы мгновенных приложений Google Play больше не будут работать. Пользователи больше не будут получать мгновенные приложения от Play с использованием любого механизма.

Мы вносим это изменение на основе отзывов разработчиков и наших постоянных инвестиций в улучшение экосистемы с момента внедрения Google Play Instant.

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

Вы создаете Google Play Instant, включая его как часть Android App Bundle . Такой пакет называется instant-enabled app bundle . В этом документе показано, как настроить среду разработки для instant-enabled app bundles, а также как настроить, собрать, протестировать и опубликовать instant-enabled app bundle.

Если у вас есть проект мгновенного приложения, использующий устаревший плагин функции ( com.android.feature ), узнайте, как перенести мгновенное приложение для поддержки пакетов приложений Android .

Настроить среду разработки

Чтобы обеспечить мгновенный опыт в пакете приложений, вам нужен доступ к 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 запускает пакеты приложений с поддержкой мгновенного запуска в специальной песочнице SELinux для дополнительной безопасности. Эта песочница допускает подмножество разрешений, а также ограниченные типы взаимодействий с другими приложениями. В следующих разделах более подробно описываются характеристики этой песочницы.

Поддерживаемые разрешения и операции

Пакеты приложений с поддержкой мгновенного запуска могут использовать только разрешения из следующего списка:

Обработка распространенных неподдерживаемых разрешений

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

  • 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:

  1. Используйте одно и то же имя пакета в обоих проектах Android Studio.
  2. В 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 .

Объявите модули приложений с поддержкой мгновенного запуска

Вы можете объявить, что ваш комплект приложений поддерживает мгновенный опыт, используя один из следующих методов:

  • Если у вас есть существующий пакет приложений, содержащий только базовый модуль , вы можете мгновенно включить пакет приложений следующим образом:

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

    Android Studio добавляет следующее объявление в манифест модуля:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Если у вас есть существующий пакет приложений, содержащий несколько модулей, вы можете создать модуль функции с мгновенным включением . Этот процесс также мгновенно включает базовый модуль вашего приложения, предоставляя вам возможность поддерживать несколько мгновенных точек входа в вашем приложении.

Добавить поддержку входа в систему

Если ваш мгновенный опыт позволяет пользователям входить в систему, ваш пакет приложений с поддержкой мгновенного входа должен поддерживать Smart Lock для паролей на Android . Если вы создаете игру с "мгновенным запуском" , вам следует использовать вход в Google Play Games Services .

Поддержка среды исполнения

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

  • Не передавайте значение myUid() , которое является UID процесса вашего приложения, назначенным ядром.
  • Если ваше приложение предназначено для Android 8.1 (уровень API 27) или ниже, создайте файл конфигурации сетевой безопасности и установите cleartextTrafficPermitted на false . Мгновенные взаимодействия не поддерживают HTTP-трафик. Для приложений, предназначенных для Android 9 или выше, открытый текстовый трафик по умолчанию отключен.
  • Ваш мгновенный опыт остается загруженным на устройство пользователя до тех пор, пока кэш мгновенного опыта не будет очищен, что происходит в одной из следующих ситуаций:

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

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

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

Добавьте логику для мгновенного взаимодействия с рабочими процессами

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

Проверьте, поддерживает ли приложение мгновенный опыт

Если часть логики вашего приложения зависит от того, вовлечен ли пользователь в ваш мгновенный опыт, вызовите метод 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-студия

Используя Android Studio, вы можете создать свой пакет приложений, выбрав Build > Build Bundle(s) / APK(s) > Build Bundle(s) . Для получения дополнительной информации о создании вашего проекта см. раздел Build your project .

Интерфейс командной строки

Вы также можете создать пакет приложения из командной строки с помощью Gradle.

Поддержка 64-битной архитектуры

Приложения, опубликованные в Google Play, должны поддерживать 64-битную архитектуру. Добавление 64-битной версии вашего приложения обеспечивает повышение производительности и настраивает вас на устройства с 64-битным оборудованием. Узнайте больше о поддержке 64-битной архитектуры .

Испытайте мгновенный опыт

Перед публикацией пакета приложений с поддержкой мгновенного запуска вы можете протестировать мгновенный запуск в одном из следующих мест, чтобы проверить функциональность:

Android-студия

Чтобы протестировать мгновенный запуск вашего приложения на локальном компьютере с помощью Android Studio, выполните следующие действия:

  1. Если на вашем тестовом устройстве установлена ​​версия приложения, удалите ее.
  2. В Android Studio в параметрах установки, которые отображаются на вкладке «Общие» диалогового окна «Конфигурации запуска/отладки» , установите флажок «Развернуть как мгновенное приложение» .
  3. Выберите Выполнить > Выполнить в строке меню или нажмите Выполнить. на панели инструментов, затем выберите устройство, на котором вы хотите протестировать мгновенные впечатления вашего приложения. Мгновенный опыт вашего приложения загружается на выбранное вами тестовое устройство.

Интерфейс командной строки

Чтобы протестировать мгновенный запуск вашего приложения на локальном компьютере с помощью командной строки, выполните следующие действия:

  1. Если на вашем тестовом устройстве установлена ​​версия приложения, удалите ее.
  2. Загрузите и запустите мгновенное приложение на тестовом устройстве, введя следующую команду:
ia run output-from-build-command

Внутренний испытательный трек

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

Чтобы опубликовать приложение во внутреннем тестовом режиме, выполните следующие действия:

  1. Загрузите свой пакет приложений, следуя инструкциям в руководстве Загрузка пакета приложений в Play Console .
  2. Подготовьте загруженный пакет для выпуска на внутреннем тестовом треке. Для получения дополнительной информации см. статью поддержки о том, как подготовить и развернуть выпуски .
  3. Войдите в учетную запись внутреннего тестировщика на устройстве, затем запустите свой мгновенный опыт с одной из следующих поверхностей:

    • Кнопка «Попробовать сейчас» в описании вашего приложения в Play Store.
    • Ссылка с баннера на сайте вашего приложения.

Опубликуйте пакет приложений в рабочей версии

Чтобы опубликовать пакет приложений с поддержкой мгновенного запуска, выполните следующие действия:

  1. Если вы еще этого не сделали, подпишите свой пакет приложений с помощью ключа выпуска и загрузите пакет приложений в Play Console .
  2. В Play Console откройте «Управление релизами» > «Приложения Android Instant Apps» , затем перейдите в раздел «Производство приложений Instant Apps» .
  3. Выберите «Обновить из библиотеки» , затем выберите загруженный вами пакет приложений с поддержкой мгновенного обновления.

Выберите, где опубликовать ваш мгновенный опыт

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

Дополнительные ресурсы

Чтобы узнать больше о создании мгновенных впечатлений и пакетов приложений Android, ознакомьтесь со следующими ресурсами:

Видео: мгновенное объединение приложений
Узнайте, как добавить мгновенный опыт в Android App Bundle, в этом сеансе с Android Dev Summit '18.
Видео: Публикация небольших приложений с помощью Android App Bundle
Узнайте, как пакеты приложений помогают вам быстрее разрабатывать приложения и создавать APK-файлы меньшего размера для ваших пользователей.
Codelab: Ваш первый комплект приложений для Android
Пошаговое руководство по созданию пакета приложений Android и добавлению в него функций.
Формат пакета приложений Android
Узнайте больше о том, как программа командной строки bundletool организует пакет приложения из кода и ресурсов вашего приложения.