Предупреждение: 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>
Эта активность запускается, когда пользователь нажимает кнопку Try Now в Play Store или кнопку Instant play в приложении Google Play Games. Вы также можете запустить эту активность напрямую с помощью API deep link .
Определите правильные коды версий
Код версии мгновенного опыта вашей игры должен быть меньше кода версии устанавливаемой игры. Версионирование вашего приложения таким образом позволяет игрокам перейти от мгновенного опыта 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/конфигурация_безопасности_сети.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 Analyzer : обеспечивает целостное представление содержимого скомпилированного APK. Используя это представление, вы можете определить количество байтов, которые каждый элемент вносит в общий размер. Используйте этот инструмент для быстрой проверки размера ресурсов, активов, логики и собственных библиотек, которые использует ваша игра.
- Bloaty McBloatface : показывает профиль размера двоичных файлов.
- Android GPU Inspector : посмотрите, как уменьшение размера текстуры влияет на размер файла, не перекомпилируя игру.
Методы
Ниже приведен список методов, которые можно использовать для уменьшения размера игры:
- Извлеките часть логики вашей игры и поместите ее в один или несколько функциональных модулей , которые не учитываются при подсчете ограничения по размеру.
- Уменьшите разрешение текстур вашей игры.
- Рассмотрите возможность использования формата WebP , особенно если вы используете несжатые текстуры на GPU. Формат 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
, то прогресс игрока автоматически переносится в полную версию вашей игры. В противном случае вам необходимо вручную перенести данные, связанные с прогрессом игрока. Для этого используйте API Cookie - пример приложения
Дополнительные ресурсы
Узнайте больше о Google Play Instant из этих дополнительных ресурсов:
- Codelab: создайте свое первое мгновенное приложение
- Добавьте поддержку Google Play Instant в существующее приложение.
- Codelab: Создание многофункционального мгновенного приложения
- Модулируйте многофункциональное приложение.