Внимание: функция Google Play Instant больше не будет доступна. Начиная с декабря 2025 года, публикация Instant-приложений через Google Play будет невозможна, и все API Instant для сервисов Google Play перестанут работать. Пользователи больше не смогут получать Instant-приложения от Play никаким способом.
Мы вносим это изменение, основываясь на отзывах разработчиков и наших постоянных инвестициях в улучшение экосистемы с момента запуска Google Play Instant.
Для дальнейшей оптимизации с целью увеличения числа пользователей мы рекомендуем разработчикам направлять пользователей в свои основные приложения или игры, используя диплинки для перенаправления их на определенные страницы или функции, когда это необходимо.
Шаги по настройке приложений для запуска в Google Play Instant , описанные в разделе «Создание первого приложения Instant» , также применимы к играм. В этом руководстве особое внимание уделяется некоторым шагам настройки, специфичным для игр.
Вы можете разрабатывать игры для Google Play Instant, используя Unity (с плагином Google Play Instant Unity или без него), Cocos2D , Android Studio или собственный движок.
В этом руководстве предполагается, что вы уже знаете, какой игровой опыт хотите предоставить. Если вы хотите ознакомиться с идеями и лучшими практиками создания высококачественных игр, прочитайте раздел «Лучшие практики UX для игр» на Google Play Instant .
Кроме того, перед публикацией игры, которая может работать в Google Play Instant, следует ознакомиться со списком технических требований .
Укажите точку входа
Действие, включающее следующий фильтр намерений, становится точкой входа для мгновенного доступа к Google Play:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Эта функция запускается, когда пользователь нажимает кнопку « Попробовать сейчас» в Play Store или кнопку «Мгновенная игра» в приложении Google Play Games. Вы также можете запустить эту функцию напрямую, используя API глубоких ссылок .
Укажите правильные коды версий.
Код версии вашей игры в режиме мгновенного запуска должен быть меньше кода версии игры в режиме установки. Такая система версионирования позволяет игрокам перейти от мгновенного запуска в Google Play к загрузке и установке игры на своё устройство. Платформа Android рассматривает этот переход как обновление приложения.
Чтобы гарантировать соблюдение рекомендуемой схемы версионирования, воспользуйтесь одной из следующих стратегий:
- Перезапустите коды версий для Google Play Instant Experience с 1.
- Увеличьте код версии устанавливаемого приложения на большое число, например, 1000, чтобы обеспечить достаточно места для увеличения номера версии вашего мгновенного приложения.
Разрабатывать как мгновенную игру, так и устанавливаемую игру можно в двух отдельных проектах Android Studio. Однако в этом случае для публикации игры в Google Play необходимо выполнить следующие действия:
- Используйте одно и то же имя пакета в обоих проектах Android Studio.
- В консоли Google Play загрузите оба варианта в одно и то же приложение.
Для получения более подробной информации о настройке версии вашей игры см. раздел «Версия вашего приложения» .
Поддержка среды выполнения
Как и другие приложения, игры в 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 для уменьшения размера кода и ресурсов .
- Для генерации DEX-файлов меньшего размера используйте Gradle версии 4.4 или выше.
- Внедрить облачную доставку активов .
Разделить большую игру на несколько 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 .
Чтобы узнать больше о том, как и когда следует запрашивать у проигрывателя разрешение на установку, ознакомьтесь с рекомендациями по улучшению пользовательского опыта для игр в Google Play Instant .
Передача данных в установленную систему.
Если игроку понравится пробная версия, он может решить установить полную версию вашей игры. Для обеспечения хорошего пользовательского опыта важно, чтобы прогресс игрока переносился из вашей пробной версии в полную версию игры.
Если в вашей игре указано значение targetSandboxVersion равное 2 , то прогресс игрока автоматически переносится в полную версию игры. В противном случае вам необходимо вручную перенести данные, связанные с прогрессом игрока. Для этого используйте пример приложения Cookie API.
Дополнительные ресурсы
Узнайте больше о Google Play Instant из этих дополнительных ресурсов:
- Codelab: Создайте свое первое приложение мгновенно
- Добавить поддержку Google Play Instant в существующее приложение.
- Codelab: Создайте многофункциональное приложение мгновенно.
- Создайте модульное многофункциональное приложение.