Внимание: функция Google Play Instant больше не будет доступна. Начиная с декабря 2025 года, публикация Instant-приложений через Google Play будет невозможна, и все API Instant для сервисов Google Play перестанут работать. Пользователи больше не смогут получать Instant-приложения от Play никаким способом.
Мы вносим это изменение, основываясь на отзывах разработчиков и наших постоянных инвестициях в улучшение экосистемы с момента запуска Google Play Instant.
Для дальнейшей оптимизации с целью увеличения числа пользователей мы рекомендуем разработчикам направлять пользователей в свои основные приложения или игры, используя диплинки для перенаправления их на определенные страницы или функции, когда это необходимо.
При уменьшении размера приложения до требуемого уровня сначала попробуйте стандартные методы оптимизации размера APK-файлов . Если вам потребуется еще больше уменьшить размер, возможно, вам придется использовать облачную доставку ресурсов. В этом документе описывается, как подготовить ресурсы для облачной доставки и какие варианты поддержки предлагают различные игровые движки. Хотя рекомендации на этой странице ориентированы на игры, эти принципы применимы к любому приложению, содержащему большие ресурсы.
Подготовка
Размышляя о разделении вашего приложения для облачной доставки ресурсов, подумайте, как можно разделить файлы приложения на разделы в зависимости от того, когда они должны быть доступны пользователю. Как правило, это относится к трем категориям: необходимы постоянно, необходимы при запуске и необходимы позже.
Необходимо всегда
Некоторые ресурсы сложно разделить на более мелкие блоки или их необходимо включить в базовый APK-файл. Примерами могут служить код вашей игры и его библиотеки или зависимости движка. Хотя Google Play Core поддерживает пакеты приложений для кода , многие движки не поддерживают код, загружаемый позже.
Необходимо на этапе запуска
После запуска игры пользователь должен иметь возможность начать играть немедленно. Google Play Instant требует, чтобы пользователи могли начать играть в вашу игру менее чем за 15 секунд при подключении к сети LTE или 4G (см. контрольный список Google Play Instant ). Поэтому ограничьте размер любой дополнительной загрузки после запуска только тем, что необходимо для обеспечения первоначального игрового процесса. Например, быстрая загрузка сразу после запуска может включать в себя ресурсы первого игрового уровня и локаций, или любой код, необходимый для запуска первых нескольких минут игрового процесса.
Понадобится позже
Всё, что вы можете загрузить позже, в фоновом режиме по мере необходимости, попадает в эту категорию. Сюда входит большинство ресурсов для игр с длительным временем прохождения. Загрузка этих ресурсов позже поможет максимально уменьшить размер вашего приложения.
Поддержка двигателя
Облачная доставка ресурсов — это основной способ, позволяющий вашей игре превысить лимит в 15 МБ для игр с мгновенным запуском. Поддержка загрузки ресурсов зависит от игрового движка. Ниже приведены наиболее распространенные случаи, а также варианты размещения ресурсов.
Следует отметить, что меньшее количество ресурсов, необходимых на момент запуска, позволяет пользователю быстрее освоиться в игре, что приводит к меньшему оттоку игроков и лучшему удержанию игроков при первом запуске.
Доставка игровых функций (через пакеты приложений)
Если вы публикуете свое приложение в виде пакета (что является предпочтительным методом), вы можете использовать модули функций для загрузки дополнительных ресурсов помимо базового APK. Для вашего мгновенного приложения каждый модуль функций должен иметь параметр dist:instant="true" в манифесте. Свойство dist:on-demand использовать не следует; оно в основном используется для модулей по запросу в установленных APK. Кроме того, каждый модуль функций должен быть меньше лимита мгновенного APK в 15 МБ, независимо от того, содержит ли модуль код или нет. Несоблюдение этого лимита не позволит опубликовать каждый модуль в альфа-версии или релиз-треках. После правильной настройки вы можете загружать модули функций во время выполнения, используя библиотеку PlayCore.
Создатель кокоса
Cocos поддерживает облачную доставку ресурсов начиная с версии 2.0.4 . Cocos загружает ресурсы по запросу, отображая заглушки, если ресурсы не были загружены вовремя. Cocos генерирует файлы ресурсов, которые должны размещаться на каком-либо онлайн-сервисе, поскольку Cocos не предоставляет собственного.
Единство
Поддержка облачной доставки реализована в плагине Unity Google Play Instant для версий Unity 5.6, 2017.4 или 2018.2. Более поздние версии Unity предлагают больше преимуществ для оптимизации движка, поэтому переход на них может быть целесообразным для освобождения дополнительного места. Облачные ресурсы Unity размещаются в файлах AssetBundle , которые Unity создает для вас. Загрузка этих файлов на облачный сервер обеспечивает облачную доставку ресурсов, поскольку Unity имеет встроенную поддержку загрузки пакетов ресурсов .
Другие двигатели
Независимо от того, используете ли вы собственный движок или набор нативных библиотек, ваш выбор может предусматривать возможность загрузки ресурсов в облако «из коробки». Если у вас достаточно ресурсов, которые необходимо загружать из облака, вам потребуется разработать или интегрировать способ загрузки ресурсов по запросу для вашей игры. API Firebase Hosting или Firebase Cloud Storage — хорошее место для начала. Некоторые движки также предлагают простую загрузку файлов по HTTPS, чего может быть достаточно для ваших нужд.
Хостинговые ресурсы
Если вы не используете пакеты приложений Google Play для загрузки своих ресурсов через Play, вам потребуется разместить их в другом месте. Вы можете разместить их на любом сервисе, который вам нравится, при условии, что он имеет разумную глобальную дистрибуцию и доступность. Пользователи приложения Google Play Games играют по всему миру, поэтому облачные ресурсы должны быть доступны им быстро в любом месте.