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) и распространяется по следующим каналам:
- Бинарные релизы в библиотеках 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 .