Уменьшить размер игры

В этом руководстве описывается, как уменьшить размер игры. После установки игра меньшего размера требует меньше времени для загрузки и меньше данных. И то, и другое приводит к более высокой конверсии в установках. Исследование Google показывает, что увеличение размера обслуживаемого APK-файла на 6 МБ приводит к снижению количества установок на 1%. Многие разработчики перемещают активы из APK в сеть доставки контента (CDN), но затем несут затраты как на хостинг CDN, так и на разработку и обслуживание системы управления активами.

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

  1. Используйте оптимизированные методы доставки, такие как App Bundle и Play Asset Delivery .
  2. Определите базовый размер игры и поймите ее структуру .
  3. Найдите ресурсы и другие файлы, размер которых можно уменьшить .
  4. Осмотрите графические текстуры и выявите возможности для оптимизации .
  5. Следуйте общим рекомендациям по активам .

Используйте оптимизированные методы доставки, такие как наборы приложений Android и доставка ресурсов Play.

Рассмотрим следующие способы доставки:

  • Хотя устаревшие проекты обычно выдают для публикации APK-файлы, для публикации игр в Google Play следует использовать пакет Android App Bundle . Пакеты приложений предоставляют оптимизированные APK-файлы, адаптированные к конфигурации устройства каждого пользователя. В среднем пакеты приложений уменьшают размер приложения на 20 %.

  • Чтобы предоставлять игровые ресурсы через Google Play и превысить ограничение размера загрузки в 200 МБ для пакетов приложений размером до нескольких ГБ, используйте Play Asset Delivery (PAD) . Никакого внешнего CDN не требуется. PAD поддерживает три различных метода доставки, каждый из которых можно использовать в одной игре:

    • Время установки: загрузка ресурсов после установки. Ресурсы упаковываются в пакеты ресурсов, которые заменяют файлы Opaque Binary Blob (OBB).
    • Быстрое выполнение: загрузка ресурсов после установки.
    • По требованию: игра инициирует загрузку ресурсов по мере необходимости.

    PAD требует, чтобы игры были упакованы в формате App Bundle. PAD также может уменьшить объем данных, используемых CDN разработчика (если он все еще необходим).

  • Google Play использует пакеты приложений Android для создания и предоставления оптимизированных APK-файлов для конфигурации устройства каждого пользователя. Эти оптимизированные APK-файлы включают в себя единый набор текстур, отформатированных с использованием оптимального формата сжатия для устройства. Настройте свой пакет приложений для поддержки различных форматов сжатия текстур для поддержки самого широкого спектра устройств.

Определите базовый размер игры и поймите ее структуру.

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

  1. Используйте производственную (неотладочную) сборку от разработчика или опубликованный APK.
  2. Запишите размер двоичного файла, предоставленный разработчиком, или, если игра была опубликована, на странице игры в Play Store. Для размера APK наиболее важным фактором является объем данных, который пользователь должен загрузить для запуска реальной игры.
  3. Установите игру на устройство и запустите ее в начальное меню игры. На этом этапе проверьте установочный размер игры, указанный Android (в разделе «Настройки» > «Память» ). Некоторые игры имеют небольшой начальный размер установки, так как это ключевой номер для оптимизации, но после установки загружаются дополнительные данные. Некоторые игры после установки загружают несколько гигабайт данных.
  4. Некоторые игры загружают данные только после того, как вы начнете в них играть. Вам следует немного поиграть в игру, чтобы определить, сколько дополнительных данных загружает игра для типичного пользователя, впервые играющего в игру.

Поиск ресурсов и других файлов, размер которых можно уменьшить.

В этом разделе описывается, как уменьшить размер файлов в APK. Вы можете использовать App Bundle Explorer для загрузки APK-файлов для конкретного устройства.

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

  1. Используйте APK-анализатор Android Studio. В Android Studio выберите «Файл» > «Профиль» или «Отладка APK» и выберите свой APK.
  2. Выберите папку «Ресурсы» . Для каждого файла указан необработанный размер файла и процент от общего размера загрузки.
  3. Просмотрите папку «Ресурсы» и определите, где находится основная часть данных игры. Определите, есть ли какие-либо активы, которые занимают слишком много места (то есть больше 1% от общего объема). В частности, обратите внимание на следующее:

    • Большие изображения и видеофайлы (например, файлы PNG, JPEG и mp4). Эти файлы обычно используются в заставках, фонах и логотипах. Эти файлы редко используются в большинстве игр и могут быть дополнительно сжаты, не влияя на удобство работы пользователя. Файлы PNG без потерь имеют особенно большой размер и являются отличными кандидатами на сжатие.
    • Большие файлы шрифтов (например, файлы TTF). Если вы добавите поддержку эмодзи, это может значительно увеличить размер файла шрифта. Если размер файла шрифта превышает несколько сотен килобайт, подумайте о том, как уменьшить его размер.
    • Дублирующиеся форматы или версии аудиофайлов, которые можно комбинировать.
  4. Если в APK включено несколько двоичных интерфейсов приложений (ABI), перейдите к пакетам приложений или создайте несколько APK.

  5. Определите размер файлов двоичных общих объектов (.so). Чтобы проверить двоичные файлы на наличие элементов, которые не нужно включать, например файлов журналов, вы можете использовать инструмент Bloaty McBloatface . Дополнительную информацию о том, как оптимизировать двоичные файлы, см. в разделе Флаги и параметры компиляции .

  6. Просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Осмотрите графические текстуры и выявите возможности для оптимизации.

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

Чтобы проверить текстуры в игре, используйте Android GPU Inspector (AGI), RenderDoc или, только для графических процессоров Qualcomm Snapdragon, Snapdragon Profiler .

Ищите следующее:

  • Текстуры, размер которых можно изменить до меньшего разрешения, например, большая текстура для чего-то, что в игре отображается только в небольшом размере. Понижение разрешения текстур требует больших вычислительных затрат.
  • Использование нескольких небольших текстур, которые можно объединить в одну текстурную карту.
  • Текстуры, которые могут использовать меньше битов в цветовых каналах. Хорошими кандидатами являются текстуры с несколькими сплошными текстурами. Градиенты и оттенки цвета требуют большего разрешения и поэтому не являются хорошими кандидатами.
  • Изучите лучшие алгоритмы сжатия текстур: от ETC1 до ETC2 и ASTC.
  • Откажитесь от верхнего уровня MIP-карты при загрузке текстур на устройствах более низкого уровня для экономии памяти. Система текстурной потоковой передачи Unity может это сделать.

  • Если вы еще этого не сделали, просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Общие рекомендации по активам

Следуйте этим рекомендациям для ресурсов APK:

  • Ресурсы изображений, аудио и видео (не текстуры графического процессора). Определите, можно ли изменить размер ресурсов или еще больше сжать их. Для игр обычно допустима более высокая степень сжатия. PNG-файлы без потерь имеют особенно большой размер и поэтому являются отличными кандидатами на сжатие.
  • Ресурсы изображений (не текстуры графического процессора). Рассмотрите возможность использования WEBP , формата сжатия изображений как с потерями, так и без потерь. WEBP с потерями сжимает изображения на 25–34 % сильнее, чем JPG.
  • Уменьшите разрешение текстуры. Текстура, намного превышающая количество пикселей, которые в конечном итоге отображаются на экране, представляет собой неэффективное использование пространства и ресурсов графического процессора. Чтобы изменить текстуру и посмотреть, как она выглядит в кадре без необходимости пересборки игры, используйте AGI .
  • Измените форматы графических текстур. Используйте форматы текстур, которые используют меньше битов на канал. Например, используйте 16-битный формат текстур, такой как RGB565, вместо 32-битного формата текстур, такого как ARGB. Для получения дополнительной информации см. следующее:

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

,

В этом руководстве описывается, как уменьшить размер игры. После установки игра меньшего размера требует меньше времени для загрузки и меньше данных. И то, и другое приводит к более высокой конверсии в установках. Исследование Google показывает, что увеличение размера обслуживаемого APK-файла на 6 МБ приводит к снижению количества установок на 1%. Многие разработчики перемещают активы из APK в сеть доставки контента (CDN), но затем несут затраты как на хостинг CDN, так и на разработку и обслуживание системы управления активами.

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

  1. Используйте оптимизированные методы доставки, такие как App Bundle и Play Asset Delivery .
  2. Определите базовый размер игры и поймите ее структуру .
  3. Найдите ресурсы и другие файлы, размер которых можно уменьшить .
  4. Осмотрите графические текстуры и выявите возможности для оптимизации .
  5. Следуйте общим рекомендациям по активам .

Используйте оптимизированные методы доставки, такие как наборы приложений Android и доставка ресурсов Play.

Рассмотрим следующие способы доставки:

  • Хотя устаревшие проекты обычно выдают для публикации APK-файлы, для публикации игр в Google Play следует использовать пакет Android App Bundle . Пакеты приложений предоставляют оптимизированные APK-файлы, адаптированные к конфигурации устройства каждого пользователя. В среднем пакеты приложений уменьшают размер приложения на 20 %.

  • Чтобы предоставлять игровые ресурсы через Google Play и превысить ограничение размера загрузки в 200 МБ для пакетов приложений размером до нескольких ГБ, используйте Play Asset Delivery (PAD) . Никакого внешнего CDN не требуется. PAD поддерживает три различных метода доставки, каждый из которых можно использовать в одной игре:

    • Время установки: загрузка ресурсов после установки. Ресурсы упаковываются в пакеты ресурсов, которые заменяют файлы Opaque Binary Blob (OBB).
    • Быстрое выполнение: загрузка ресурсов после установки.
    • По требованию: игра инициирует загрузку ресурсов по мере необходимости.

    PAD требует, чтобы игры были упакованы в формате App Bundle. PAD также может уменьшить объем данных, используемых CDN разработчика (если он все еще необходим).

  • Google Play использует пакеты приложений Android для создания и предоставления оптимизированных APK-файлов для конфигурации устройства каждого пользователя. Эти оптимизированные APK-файлы включают в себя единый набор текстур, отформатированных с использованием оптимального формата сжатия для устройства. Настройте свой пакет приложений для поддержки различных форматов сжатия текстур для поддержки самого широкого спектра устройств.

Определите базовый размер игры и поймите ее структуру.

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

  1. Используйте производственную (неотладочную) сборку от разработчика или опубликованный APK.
  2. Запишите размер двоичного файла, предоставленный разработчиком, или, если игра была опубликована, на странице игры в Play Store. Для размера APK наиболее важным фактором является объем данных, который пользователь должен загрузить для запуска реальной игры.
  3. Установите игру на устройство и запустите ее в начальное меню игры. На этом этапе проверьте установочный размер игры, указанный Android (в разделе «Настройки» > «Память» ). Некоторые игры имеют небольшой начальный размер установки, так как это ключевой номер для оптимизации, но после установки загружаются дополнительные данные. Некоторые игры после установки загружают несколько гигабайт данных.
  4. Некоторые игры загружают данные только после того, как вы начнете в них играть. Вам следует немного поиграть в игру, чтобы определить, сколько дополнительных данных загружает игра для типичного пользователя, впервые играющего в игру.

Поиск ресурсов и других файлов, размер которых можно уменьшить.

В этом разделе описывается, как уменьшить размер файлов в APK. Вы можете использовать App Bundle Explorer для загрузки APK-файлов для конкретного устройства.

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

  1. Используйте APK-анализатор Android Studio. В Android Studio выберите «Файл» > «Профиль» или «Отладка APK» и выберите свой APK.
  2. Выберите папку «Ресурсы» . Для каждого файла указан необработанный размер файла и процент от общего размера загрузки.
  3. Просмотрите папку «Ресурсы» и определите, где находится основная часть данных игры. Определите, есть ли какие-либо активы, которые занимают слишком много места (то есть больше 1% от общего объема). В частности, обратите внимание на следующее:

    • Большие изображения и видеофайлы (например, файлы PNG, JPEG и mp4). Эти файлы обычно используются в заставках, фонах и логотипах. Эти файлы редко используются в большинстве игр и могут быть дополнительно сжаты, не влияя на удобство работы пользователя. Файлы PNG без потерь имеют особенно большой размер и являются отличными кандидатами на сжатие.
    • Большие файлы шрифтов (например, файлы TTF). Если вы добавите поддержку эмодзи, это может значительно увеличить размер файла шрифта. Если размер файла шрифта превышает несколько сотен килобайт, подумайте о том, как уменьшить его размер.
    • Дублирующиеся форматы или версии аудиофайлов, которые можно комбинировать.
  4. Если в APK включено несколько двоичных интерфейсов приложений (ABI), перейдите к пакетам приложений или создайте несколько APK.

  5. Определите размер файлов двоичных общих объектов (.so). Чтобы проверить двоичные файлы на наличие элементов, которые не нужно включать, например файлов журналов, вы можете использовать инструмент Bloaty McBloatface . Дополнительную информацию о том, как оптимизировать двоичные файлы, см. в разделе Флаги и параметры компиляции .

  6. Просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Осмотрите графические текстуры и выявите возможности для оптимизации.

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

Чтобы проверить текстуры в игре, используйте Android GPU Inspector (AGI), RenderDoc или, только для графических процессоров Qualcomm Snapdragon, Snapdragon Profiler .

Ищите следующее:

  • Текстуры, размер которых можно изменить до меньшего разрешения, например, большая текстура для чего-то, что в игре отображается только в небольшом размере. Понижение разрешения текстур требует больших вычислительных затрат.
  • Использование нескольких небольших текстур, которые можно объединить в одну текстурную карту.
  • Текстуры, которые могут использовать меньше битов в цветовых каналах. Хорошими кандидатами являются текстуры с несколькими сплошными текстурами. Градиенты и оттенки цвета требуют большего разрешения и поэтому не являются хорошими кандидатами.
  • Изучите лучшие алгоритмы сжатия текстур: от ETC1 до ETC2 и ASTC.
  • Откажитесь от верхнего уровня MIP-карты при загрузке текстур на устройствах более низкого уровня для экономии памяти. Система текстурной потоковой передачи Unity может это сделать.

  • Если вы еще этого не сделали, просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Общие рекомендации по активам

Следуйте этим рекомендациям для ресурсов APK:

  • Ресурсы изображений, аудио и видео (не текстуры графического процессора). Определите, можно ли изменить размер ресурсов или еще больше сжать их. Для игр обычно допустима более высокая степень сжатия. PNG-файлы без потерь имеют особенно большой размер и поэтому являются отличными кандидатами на сжатие.
  • Ресурсы изображений (не текстуры графического процессора). Рассмотрите возможность использования WEBP , формата сжатия изображений как с потерями, так и без потерь. WEBP с потерями сжимает изображения на 25–34 % сильнее, чем JPG.
  • Уменьшите разрешение текстуры. Текстура, намного превышающая количество пикселей, которые в конечном итоге отображаются на экране, представляет собой неэффективное использование пространства и ресурсов графического процессора. Чтобы изменить текстуру и посмотреть, как она выглядит в кадре без необходимости пересборки игры, используйте AGI .
  • Измените форматы графических текстур. Используйте форматы текстур, которые используют меньше битов на канал. Например, используйте 16-битный формат текстур, такой как RGB565, вместо 32-битного формата текстур, такого как ARGB. Для получения дополнительной информации см. следующее:

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

,

В этом руководстве описывается, как уменьшить размер игры. После установки игра меньшего размера требует меньше времени для загрузки и меньше данных. И то, и другое приводит к более высокой конверсии в установках. Исследование Google показывает, что увеличение размера обслуживаемого APK-файла на 6 МБ приводит к снижению количества установок на 1%. Многие разработчики перемещают активы из APK в сеть доставки контента (CDN), но затем несут затраты как на хостинг CDN, так и на разработку и обслуживание системы управления активами.

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

  1. Используйте оптимизированные методы доставки, такие как App Bundle и Play Asset Delivery .
  2. Определите базовый размер игры и поймите ее структуру .
  3. Найдите ресурсы и другие файлы, размер которых можно уменьшить .
  4. Осмотрите графические текстуры и выявите возможности для оптимизации .
  5. Следуйте общим рекомендациям по активам .

Используйте оптимизированные методы доставки, такие как наборы приложений Android и доставка ресурсов Play.

Рассмотрим следующие способы доставки:

  • Хотя устаревшие проекты обычно выдают для публикации APK-файлы, для публикации игр в Google Play следует использовать пакет Android App Bundle . Пакеты приложений предоставляют оптимизированные APK-файлы, адаптированные к конфигурации устройства каждого пользователя. В среднем пакеты приложений уменьшают размер приложения на 20 %.

  • Чтобы предоставлять игровые ресурсы через Google Play и превысить ограничение размера загрузки в 200 МБ для пакетов приложений размером до нескольких ГБ, используйте Play Asset Delivery (PAD) . Никакого внешнего CDN не требуется. PAD поддерживает три различных метода доставки, каждый из которых можно использовать в одной игре:

    • Время установки: загрузка ресурсов после установки. Ресурсы упаковываются в пакеты ресурсов, которые заменяют файлы Opaque Binary Blob (OBB).
    • Быстрое выполнение: загрузка ресурсов после установки.
    • По требованию: игра инициирует загрузку ресурсов по мере необходимости.

    PAD требует, чтобы игры были упакованы в формате App Bundle. PAD также может уменьшить объем данных, используемых CDN разработчика (если он все еще необходим).

  • Google Play использует пакеты приложений Android для создания и предоставления оптимизированных APK-файлов для конфигурации устройства каждого пользователя. Эти оптимизированные APK-файлы включают в себя единый набор текстур, отформатированных с использованием оптимального формата сжатия для устройства. Настройте свой пакет приложений для поддержки различных форматов сжатия текстур для поддержки самого широкого спектра устройств.

Определите базовый размер игры и поймите ее структуру.

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

  1. Используйте производственную (неотладочную) сборку от разработчика или опубликованный APK.
  2. Запишите размер двоичного файла, предоставленный разработчиком, или, если игра была опубликована, на странице игры в Play Store. Для размера APK наиболее важным фактором является объем данных, который пользователь должен загрузить для запуска реальной игры.
  3. Установите игру на устройство и запустите ее в начальное меню игры. На этом этапе проверьте установочный размер игры, указанный Android (в разделе «Настройки» > «Память» ). Некоторые игры имеют небольшой начальный размер установки, так как это ключевой номер для оптимизации, но после установки загружаются дополнительные данные. Некоторые игры после установки загружают несколько гигабайт данных.
  4. Некоторые игры загружают данные только после того, как вы начнете в них играть. Вам следует немного поиграть в игру, чтобы определить, сколько дополнительных данных загружает игра для типичного пользователя, впервые играющего в игру.

Поиск ресурсов и других файлов, размер которых можно уменьшить.

В этом разделе описывается, как уменьшить размер файлов в APK. Вы можете использовать App Bundle Explorer для загрузки APK-файлов для конкретного устройства.

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

  1. Используйте APK-анализатор Android Studio. В Android Studio выберите «Файл» > «Профиль» или «Отладка APK» и выберите свой APK.
  2. Выберите папку «Ресурсы» . Для каждого файла указан необработанный размер файла и процент от общего размера загрузки.
  3. Просмотрите папку «Ресурсы» и определите, где находится основная часть данных игры. Определите, есть ли какие-либо активы, которые занимают слишком много места (то есть больше 1% от общего объема). В частности, обратите внимание на следующее:

    • Большие изображения и видеофайлы (например, файлы PNG, JPEG и mp4). Эти файлы обычно используются в заставках, фонах и логотипах. Эти файлы редко используются в большинстве игр и могут быть дополнительно сжаты, не влияя на удобство работы пользователя. Файлы PNG без потерь имеют особенно большой размер и являются отличными кандидатами на сжатие.
    • Большие файлы шрифтов (например, файлы TTF). Если вы добавите поддержку эмодзи, это может значительно увеличить размер файла шрифта. Если размер файла шрифта превышает несколько сотен килобайт, подумайте о том, как уменьшить его размер.
    • Дублирующиеся форматы или версии аудиофайлов, которые можно комбинировать.
  4. Если в APK включено несколько двоичных интерфейсов приложений (ABI), перейдите к пакетам приложений или создайте несколько APK.

  5. Определите размер файлов двоичных общих объектов (.so). Чтобы проверить двоичные файлы на наличие элементов, которые не нужно включать, например файлов журналов, вы можете использовать инструмент Bloaty McBloatface . Дополнительную информацию о том, как оптимизировать двоичные файлы, см. в разделе Флаги и параметры компиляции .

  6. Просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Осмотрите графические текстуры и выявите возможности для оптимизации.

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

Чтобы проверить текстуры в игре, используйте Android GPU Inspector (AGI), RenderDoc или, только для графических процессоров Qualcomm Snapdragon, Snapdragon Profiler .

Ищите следующее:

  • Текстуры, размер которых можно изменить до меньшего разрешения, например, большая текстура для чего-то, что в игре отображается только в небольшом размере. Понижение разрешения текстур требует больших вычислительных затрат.
  • Использование нескольких небольших текстур, которые можно объединить в одну текстурную карту.
  • Текстуры, которые могут использовать меньше битов в цветовых каналах. Хорошими кандидатами являются текстуры с несколькими сплошными текстурами. Градиенты и оттенки цвета требуют большего разрешения и поэтому не являются хорошими кандидатами.
  • Изучите лучшие алгоритмы сжатия текстур: от ETC1 до ETC2 и ASTC.
  • Откажитесь от верхнего уровня MIP-карты при загрузке текстур на устройствах более низкого уровня для экономии памяти. Система текстурной потоковой передачи Unity может это сделать.

  • Если вы еще этого не сделали, просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Общие рекомендации по активам

Следуйте этим рекомендациям для ресурсов APK:

  • Ресурсы изображений, аудио и видео (не текстуры графического процессора). Определите, можно ли изменить размер ресурсов или еще больше сжать их. Для игр обычно допустима более высокая степень сжатия. PNG-файлы без потерь имеют особенно большой размер и поэтому являются отличными кандидатами на сжатие.
  • Ресурсы изображений (не текстуры графического процессора). Рассмотрите возможность использования WEBP , формата сжатия изображений как с потерями, так и без потерь. WEBP с потерями сжимает изображения на 25–34 % сильнее, чем JPG.
  • Уменьшите разрешение текстуры. Текстура, намного превышающая количество пикселей, которые в конечном итоге отображаются на экране, представляет собой неэффективное использование пространства и ресурсов графического процессора. Чтобы изменить текстуру и посмотреть, как она выглядит в кадре без необходимости пересборки игры, используйте AGI .
  • Измените форматы графических текстур. Используйте форматы текстур, которые используют меньше битов на канал. Например, используйте 16-битный формат текстур, такой как RGB565, вместо 32-битного формата текстур, такого как ARGB. Для получения дополнительной информации см. следующее:

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

,

В этом руководстве описывается, как уменьшить размер игры. После установки игра меньшего размера требует меньше времени для загрузки и меньше данных. И то, и другое приводит к более высокой конверсии в установках. Исследование Google показывает, что увеличение размера обслуживаемого APK-файла на 6 МБ приводит к снижению количества установок на 1%. Многие разработчики перемещают активы из APK в сеть доставки контента (CDN), но затем несут затраты как на хостинг CDN, так и на разработку и обслуживание системы управления активами.

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

  1. Используйте оптимизированные методы доставки, такие как App Bundle и Play Asset Delivery .
  2. Определите базовый размер игры и поймите ее структуру .
  3. Найдите ресурсы и другие файлы, размер которых можно уменьшить .
  4. Осмотрите графические текстуры и выявите возможности для оптимизации .
  5. Следуйте общим рекомендациям по активам .

Используйте оптимизированные методы доставки, такие как наборы приложений Android и доставка ресурсов Play.

Рассмотрим следующие способы доставки:

  • Хотя устаревшие проекты обычно выдают для публикации APK-файлы, для публикации игр в Google Play следует использовать пакет Android App Bundle . Пакеты приложений предоставляют оптимизированные APK-файлы, адаптированные к конфигурации устройства каждого пользователя. В среднем пакеты приложений уменьшают размер приложения на 20 %.

  • Чтобы предоставлять игровые ресурсы через Google Play и превысить ограничение размера загрузки в 200 МБ для пакетов приложений размером до нескольких ГБ, используйте Play Asset Delivery (PAD) . Никакого внешнего CDN не требуется. PAD поддерживает три различных метода доставки, каждый из которых можно использовать в одной игре:

    • Время установки: загрузка ресурсов после установки. Ресурсы упаковываются в пакеты ресурсов, которые заменяют файлы Opaque Binary Blob (OBB).
    • Быстрое выполнение: загрузка ресурсов после установки.
    • По требованию: игра инициирует загрузку ресурсов по мере необходимости.

    PAD требует, чтобы игры были упакованы в формате App Bundle. PAD также может уменьшить объем данных, используемых CDN разработчика (если он все еще необходим).

  • Google Play использует пакеты приложений Android для создания и предоставления оптимизированных APK-файлов для конфигурации устройства каждого пользователя. Эти оптимизированные APK-файлы включают в себя единый набор текстур, отформатированных с использованием оптимального формата сжатия для устройства. Настройте свой пакет приложений для поддержки различных форматов сжатия текстур для поддержки самого широкого спектра устройств.

Определите базовый размер игры и поймите ее структуру.

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

  1. Используйте производственную (неотладочную) сборку от разработчика или опубликованный APK.
  2. Запишите размер двоичного файла, предоставленный разработчиком, или, если игра была опубликована, на странице игры в Play Store. Для размера APK наиболее важным фактором является объем данных, который пользователь должен загрузить для запуска реальной игры.
  3. Установите игру на устройство и запустите ее в начальное меню игры. На этом этапе проверьте установочный размер игры, указанный Android (в разделе «Настройки» > «Память» ). Некоторые игры имеют небольшой начальный размер установки, так как это ключевой номер для оптимизации, но после установки загружаются дополнительные данные. Некоторые игры после установки загружают несколько гигабайт данных.
  4. Некоторые игры загружают данные только после того, как вы начнете в них играть. Вам следует немного поиграть в игру, чтобы определить, сколько дополнительных данных загружает игра для типичного пользователя, впервые играющего в игру.

Поиск ресурсов и других файлов, размер которых можно уменьшить.

В этом разделе описывается, как уменьшить размер файлов в APK. Вы можете использовать App Bundle Explorer для загрузки APK-файлов для конкретного устройства.

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

  1. Используйте APK-анализатор Android Studio. В Android Studio выберите «Файл» > «Профиль» или «Отладка APK» и выберите свой APK.
  2. Выберите папку «Ресурсы» . Для каждого файла указан необработанный размер файла и процент от общего размера загрузки.
  3. Просмотрите папку «Ресурсы» и определите, где находится основная часть данных игры. Определите, есть ли какие-либо активы, которые занимают слишком много места (то есть больше 1% от общего объема). В частности, обратите внимание на следующее:

    • Большие изображения и видеофайлы (например, файлы PNG, JPEG и mp4). Эти файлы обычно используются в заставках, фонах и логотипах. Эти файлы редко используются в большинстве игр и могут быть дополнительно сжаты, не влияя на удобство работы пользователя. Файлы PNG без потерь имеют особенно большой размер и являются отличными кандидатами на сжатие.
    • Большие файлы шрифтов (например, файлы TTF). Если вы добавите поддержку эмодзи, это может значительно увеличить размер файла шрифта. Если размер файла шрифта превышает несколько сотен килобайт, подумайте о том, как уменьшить его размер.
    • Дублирующиеся форматы или версии аудиофайлов, которые можно комбинировать.
  4. Если в APK включено несколько двоичных интерфейсов приложений (ABI), перейдите к пакетам приложений или создайте несколько APK.

  5. Определите размер файлов двоичных общих объектов (.so). Чтобы проверить двоичные файлы на наличие элементов, которые не нужно включать, например файлов журналов, вы можете использовать инструмент Bloaty McBloatface . Дополнительную информацию о том, как оптимизировать двоичные файлы, см. в разделе Флаги и параметры компиляции .

  6. Просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Осмотрите графические текстуры и выявите возможности для оптимизации.

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

Чтобы проверить текстуры в игре, используйте Android GPU Inspector (AGI), RenderDoc или, только для графических процессоров Qualcomm Snapdragon, Snapdragon Profiler .

Ищите следующее:

  • Текстуры, размер которых можно изменить до меньшего разрешения, например, большая текстура для чего-то, что в игре отображается только в небольшом размере. Понижение разрешения текстур требует больших вычислительных затрат.
  • Использование нескольких небольших текстур, которые можно объединить в одну текстурную карту.
  • Текстуры, которые могут использовать меньше битов в цветовых каналах. Хорошими кандидатами являются текстуры с несколькими сплошными текстурами. Градиенты и оттенки цвета требуют большего разрешения и поэтому не являются хорошими кандидатами.
  • Изучите лучшие алгоритмы сжатия текстур: от ETC1 до ETC2 и ASTC.
  • Откажитесь от верхнего уровня MIP-карты при загрузке текстур на устройствах более низкого уровня для экономии памяти. Система текстурной потоковой передачи Unity может это сделать.

  • Если вы еще этого не сделали, просмотрите файл манифеста Android на наличие поддерживаемых графических форматов. Определите, есть ли в APK несколько тегов <supports-gl-texture> . Если игра поддерживает форматы для нескольких графических процессоров в одном APK, рассмотрите возможность использования Basis Universal от Binomial . Эта система сжатия текстур графического процессора создает файлы текстур в промежуточном формате, которые можно быстро перекодировать в графический процессор.

Общие рекомендации по активам

Следуйте этим рекомендациям для ресурсов APK:

  • Ресурсы изображений, аудио и видео (не текстуры графического процессора). Определите, можно ли изменить размер ресурсов или еще больше сжать их. Для игр обычно допустима более высокая степень сжатия. PNG-файлы без потерь имеют особенно большой размер и поэтому являются отличными кандидатами на сжатие.
  • Ресурсы изображений (не текстуры графического процессора). Рассмотрите возможность использования WEBP , формата сжатия изображений как с потерями, так и без потерь. WEBP с потерями сжимает изображения на 25–34 % сильнее, чем JPG.
  • Уменьшите разрешение текстуры. Текстура, намного превышающая количество пикселей, которые в конечном итоге отображаются на экране, представляет собой неэффективное использование пространства и ресурсов графического процессора. Чтобы изменить текстуру и посмотреть, как она выглядит в кадре без необходимости пересборки игры, используйте AGI .
  • Измените форматы графических текстур. Используйте форматы текстур, которые используют меньше битов на канал. Например, используйте 16-битный формат текстур, такой как RGB565, вместо 32-битного формата текстур, такого как ARGB. Для получения дополнительной информации см. следующее:

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