Обзор API Memory Advice

API Memory Advice — это экспериментальный нативный API, который помогает приложениям Android оставаться в пределах безопасного использования памяти. API достигает этого, оценивая объём используемых ресурсов памяти и уведомляя приложение о превышении определённых пороговых значений. API также может сообщать предполагаемый процент использования памяти непосредственно вашему приложению.

Оценки, предоставляемые API, помогают определить, когда вашему приложению следует скорректировать использование памяти, или найти области для улучшения в будущих версиях. Изменения могут включать любые изменения, влияющие на потребление памяти, например, снижение детализации и качества визуальных и аудиоматериалов.

Расчетные ресурсы памяти включают собственную динамическую память, выделенную malloc, и графическую память, выделенную API OpenGL ES и Vulkan Graphics, что делает API Memory Advice идеальным для игр и приложений с интенсивным использованием графики.

Оценки сделаны на основе следующего:

  • Метрики устройства, собираемые API
  • Данные машинного обучения с устройств
  • Тестирование устройств

На уровне API API Memory Advice определяет набор состояний рекомендаций по памяти и передает их приложениям с помощью набора функций.

Начать Начать играть в игры на Unity

Распределения

API Memory Advice входит в состав Android Games Development Kit (AGDK) и распространяется по следующим каналам:

В играх следует использовать версию API Memory Advice, рекомендованную для вашей среды сборки. Для Android Studio мы рекомендуем версию Jetpack. Для Android Game Development Extension (AGDE) мы рекомендуем версию на странице загрузки AGDK.

Функции

В этом разделе описываются функции API Memory Advice.

Состояние памяти

API сообщает приложениям о следующих состояниях памяти:

  • MEMORYADVICE_STATE_OK
  • MEMORYADVICE_STATE_APPROACHING_LIMIT
  • MEMORYADVICE_STATE_CRITICAL

Подробную информацию смотрите на справочных страницах memoryadvice_memorystate .

Отчет о состоянии памяти

API поддерживает отправку отчетов о состоянии памяти посредством механизма опроса или обратного вызова:

  • Опрос :
    Приложение может в любой момент обратиться к API, чтобы получить состояние памяти.

  • Перезвонить :
    Приложение может зарегистрировать функцию обратного вызова с помощью API Memory Advice. Приложение задаёт частоту вызова функции обратного вызова. API использует эту частоту для определения момента выполнения функции обратного вызова, когда объём памяти приложения приближается к безопасному пределу или критически мал. Функция обратного вызова не вызывается, если объём памяти безопасен. Функция обратного вызова выполняется из собственного потока, а не из потока, принадлежащего приложению.

Соображения относительно стоимости и частоты звонков

API Memory Advice использует вычислительное время для генерации состояния памяти. Стоимость зависит от устройства, но обычно составляет от 1 до 3 мс на вызов. Эти накладные расходы следует учитывать при определении частоты опроса состояния памяти или частоты обратного вызова состояния памяти.

Требования

Требования к устройству

  • Android 4.4 (уровень API 19) или выше.

Требования к приложению

  • API поддерживает только собственные приложения (приложения, написанные в основном на C/C++).

  • API поддерживает только физические устройства; эмуляторы не поддерживаются.

Требования к версии NDK

Выпуск API Memory Advice поддерживает большинство популярных версий NDK. Список поддерживаемых NDK см. в примечаниях к выпуску .

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

Проблемы и отзывы

API Memory Advice находится в стадии бета-тестирования и приветствует отзывы. Если у вас есть предложения или вы обнаружили проблемы при использовании API, создайте проблему в IssueTracker .