Внимание: Google Play Instant больше не будет доступен. С декабря 2025 года мгновенные приложения нельзя будет публиковать через Google Play, и все API мгновенного запуска сервисов Google Play перестанут работать. Пользователи больше не смогут получать мгновенные приложения через Play, используя какие-либо механизмы.
Мы вносим это изменение, основываясь на отзывах разработчиков и наших постоянных инвестициях в улучшение экосистемы с момента внедрения Google Play Instant.
Чтобы продолжить оптимизацию для роста числа пользователей, мы призываем разработчиков направлять пользователей в их обычные приложения или игры, используя глубокие ссылки для перенаправления их на определенные маршруты или функции, когда это уместно.
Действия по настройке приложений для запуска в Google Play Instant , описанные в статье «Создание первого приложения с мгновенным запуском» , применимы и к играм. В этом руководстве особое внимание уделяется некоторым этапам настройки, характерным именно для игр.
Вы можете разрабатывать игры для Google Play Instant, используя Unity (с плагином Google Play Instant Unity или без него), Cocos2D , Android Studio или свой собственный движок.
Это руководство предполагает, что вы уже знаете, какой игровой опыт хотите предоставить. Если вы хотите узнать идеи и рекомендации по созданию качественных игр, ознакомьтесь с рекомендациями по UX-дизайну для игр в Google Play Instant .
Кроме того, перед публикацией игры, которая может работать в Google Play Instant, следует ознакомиться с контрольным списком технических требований .
Укажите точку входа
Действие, включающее следующий фильтр намерений, становится точкой входа для Google Play Instant:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Это действие запускается, когда пользователь нажимает кнопку «Попробовать сейчас» в Play Маркете или кнопку «Мгновенное воспроизведение» в приложении Google Play Игры. Вы также можете запустить это действие напрямую, используя API глубокой ссылки .
Определите правильные коды версий
Код версии мгновенного опыта вашей игры должен быть меньше кода версии устанавливаемой игры. Такое версионирование приложения позволяет игрокам перейти от мгновенного опыта Google Play к загрузке и установке игры на свои устройства. Фреймворк Android рассматривает этот переход как обновление приложения.
Чтобы убедиться, что вы следуете рекомендуемой схеме управления версиями, воспользуйтесь одной из следующих стратегий:
- Перезапустите коды версий для Google Play Instant с 1.
- Увеличьте код версии устанавливаемого приложения на большое число, например, 1000, чтобы обеспечить достаточно места для увеличения номера версии вашего мгновенного опыта.
Вы можете разрабатывать игру для мгновенного запуска и игру для установки в двух отдельных проектах Android Studio. Однако в этом случае для публикации игры в Google Play вам необходимо выполнить следующие действия:
- Используйте одно и то же имя пакета в обоих проектах Android Studio.
- В Google Play Console загрузите оба варианта в одно и то же приложение.
Более подробную информацию о настройке версии игры можно найти в разделе Версия вашего приложения .
Поддержка среды исполнения
Как и другие приложения, игры в Google Play Instant запускаются в ограниченной изолированной среде на устройстве. Чтобы обеспечить поддержку этой среды выполнения, выполните действия, описанные в следующих разделах.
Отказаться от открытого текстового трафика
Игры в Google Play Instant не поддерживают HTTP-трафик. Если ваша игра предназначена для Android 9 (уровень API 28) или выше, Android по умолчанию отключает поддержку открытого текста в вашей игре.
Однако, если ваша игра предназначена для Android 8.1 (уровень API 27) или ниже, необходимо создать файл конфигурации сетевой безопасности . В этом файле установите для cleartextTrafficPermitted значение false , как показано в следующем фрагменте кода:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
Обновите версию целевой песочницы
Обновите файл AndroidManifest.xml вашей мгновенной игры, чтобы он соответствовал среде «песочницы», поддерживаемой Google Play Instant. Вы можете выполнить это обновление, добавив атрибут android:targetSandboxVersion в элемент <manifest> вашей игры, как показано в следующем фрагменте кода:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
Более подробную информацию см. в документации по атрибуту targetSandboxVersion .
Не полагайтесь на наличие кэша или данных приложения
Ваш мгновенный опыт остается загруженным на устройство пользователя до тех пор, пока кэш мгновенного опыта не будет очищен, что происходит в одной из следующих ситуаций:
- Кэш мгновенного опыта очищается сборщиком мусора, поскольку на устройстве заканчивается доступная память.
- Пользователь перезагружает свое устройство.
В случае возникновения любого из этих процессов пользователю придется повторно загрузить ваш мгновенный опыт, чтобы взаимодействовать с ним.
Если в системе очень мало места на диске, возможно, пользовательские данные вашего мгновенного опыта удалены из внутреннего хранилища. Поэтому рекомендуется периодически синхронизировать пользовательские данные с сервером игры, чтобы сохранить прогресс пользователя.
Уменьшите размер вашего приложения
В отличие от других типов приложений, игры в Google Play Instant имеют ограничение на размер загружаемого файла в 15 МБ . Чтобы создать игру такого размера, вам может потребоваться рефакторинг её логики. В этом разделе описаны некоторые инструменты и методы, которые помогут оптимизировать размер вашей игры.
Инструменты
Следующий список инструментов поможет вам определить, что влияет на размер вашей игры:
- Анализатор APK : предоставляет целостное представление содержимого скомпилированного APK-файла. С помощью этого представления можно определить, сколько байтов каждый элемент вносит в общий размер. Используйте этот инструмент для быстрой проверки размера ресурсов, ресурсов, логики и нативных библиотек, используемых вашей игрой.
- Bloaty McBloatface : показывает профиль размера двоичных файлов.
- Android GPU Inspector : посмотрите, как уменьшение размера текстуры влияет на размер файла без необходимости перекомпиляции игры.
Методы
Ниже приведен список методов, которые можно использовать для уменьшения размера игры:
- Извлеките часть логики вашей игры и поместите ее в один или несколько функциональных модулей , которые не учитываются при подсчете ограничения по размеру.
- Уменьшите разрешение текстур вашей игры.
- Рассмотрите формат WebP , особенно если вы используете несжатые текстуры на видеокарте. Формат WebP создаёт изображения такого же качества, как JPEG, но на 15–30% меньше. Хотя распаковка изображений WebP занимает больше времени, это время всё равно значительно меньше времени загрузки текстур вашей игры. Google также интегрировала этот формат в игровой движок с открытым исходным кодом .
- Сжимайте или повторно используйте звуки и музыку.
- Используйте различные флаги компиляции, чтобы уменьшить размер двоичного файла:
-
-fvisibility=hidden– Самый важный. Вcmakeего можно указать следующим образом:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz– Также важно для уменьшения размера. Если вы компилируете с помощьюgcc, используйте-Os.-
-flto– Иногда уменьшает размер файла. - Флаги компоновщика – используйте
--gc-sectionsвместе с флагами компилятора, такими как-ffunction-sectionsи-fdata-sections.
-
- Используйте Proguard для сокращения размера кода и ресурсов .
- Используйте Gradle 4.4 или выше для создания DEX-файлов меньшего размера.
- Реализовать облачную доставку активов .
Разделите большую игру на несколько APK-файлов
Оптимизировать работу Google Play Instant так, чтобы игра поместилась в один APK-файл размером 15 МБ, может быть сложно, даже после применения рекомендаций по уменьшению размера APK . Чтобы решить эту проблему, можно разделить игру на несколько APK-файлов. Игроки начинают со загрузки основного, базового APK-файла; по мере игры остальные разделённые APK-файлы становятся доступны игре в фоновом режиме.
Например, базовый APK может содержать основной игровой движок и ресурсы, необходимые для отображения загрузочного экрана. При запуске базовый APK отображает загрузочный экран и немедленно запрашивает дополнительный разделённый APK, содержащий данные игры и уровня. После того, как этот разделённый APK станет доступен, он может загрузить свои ресурсы в игровой движок и предоставить игроку контент, необходимый для начала игры.
Внедрение лучших практик UX
После того как вы настроите игру так, чтобы она поддерживала мгновенный опыт, добавьте логику, показанную в следующих разделах, чтобы обеспечить хороший пользовательский опыт.
Поддержка 64-битных архитектур
Приложения, опубликованные в Google Play, должны поддерживать 64-битную архитектуру. Добавление 64-битной версии приложения повышает производительность и позволяет использовать его на устройствах, поддерживающих только 64-битную архитектуру. Подробнее о поддержке 64-битной архитектуры читайте здесь .
Проверьте, запущена ли игра в режиме мгновенного опыта.
Если логика вашей игры зависит от того, активен ли пользователь в режиме мгновенного взаимодействия, вызовите метод isInstantApp() . Этот метод возвращает true если текущий процесс является мгновенным взаимодействием.
Выполнив эту проверку, вы сможете определить, должно ли ваше приложение работать в ограниченной среде выполнения или же вы можете воспользоваться возможностями платформы.
Отобразить приглашение к установке
Если вы создали пробную версию Google Play Instant, в какой-то момент игра должна предложить игроку установить полную версию на своё устройство. Для этого используйте метод showInstallPrompt() в API Google для Android .
Дополнительную информацию о том, как и когда следует предлагать проигрывателю выполнить установку, см. в разделе Рекомендации по UX для игр в Google Play Instant .
Передача данных в установленный опыт
Если игроку понравится пробная версия, он может решить установить полную версию. Для обеспечения комфортного пользовательского опыта важно, чтобы прогресс игрока был перенесён из мгновенной версии в полную.
Если в вашей игре указано значение targetSandboxVersion 2 , то прогресс игрока автоматически переносится в полную версию игры. В противном случае вам необходимо перенести данные о прогрессе игрока вручную. Для этого используйте Cookie API — пример приложения.
Дополнительные ресурсы
Узнайте больше о Google Play Instant из этих дополнительных ресурсов:
- Codelab: Создайте свое первое мгновенное приложение
- Добавить поддержку Google Play Instant в существующее приложение.
- Codelab: Создание многофункционального мгновенного приложения
- Модулируйте многофункциональное приложение.