API Memory Advice — это экспериментальный нативный API, который помогает приложениям Android оставаться в пределах безопасности для использования памяти. API достигает этого, оценивая объем используемых ресурсов памяти, а затем уведомляя приложение о превышении определенных пороговых значений. API также может сообщать предполагаемый процент использования памяти непосредственно вашему приложению.
Оценки, предоставляемые API, помогают определить, когда вашему приложению следует скорректировать использование памяти, или найти области для улучшения в будущих версиях вашего приложения. Корректировки могут включать все, что изменяет потребление памяти, например, снижение детализации и качества визуальных и аудиоактивов.
Оценочные ресурсы памяти включают собственную динамическую память, выделенную malloc, и графическую память, выделенную API OpenGL ES и Vulkan Graphics, что делает API Memory Advice идеальным для игр и приложений с интенсивным использованием графики.
Оценки сделаны на основе следующего:
- Метрики устройства, собираемые API
- Данные машинного обучения с устройств
- Тестирование устройств
На уровне API API Memory Advice определяет набор состояний рекомендаций по памяти и передает их приложениям с помощью набора функций.
Распределения
API Memory Advice является частью Android Games Development Kit (AGDK) и распространяется по следующим каналам:
- Бинарные релизы в библиотеках Android Games Jetpack .
- Бинарные релизы на странице загрузки AGDK .
- Исходный код на AOSP .
Игры должны использовать релиз 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 Memory Advice
- Пример Memory Advice на Github
- Исходный код API Memory Advice
Проблемы и отзывы
API Memory Advice находится на стадии бета-тестирования и приветствует ваши отзывы. Если у вас есть предложения или вы обнаружили проблемы при использовании API, создайте проблему в IssueTracker .