Memory Advice API 개요

Memory Advice API는 Android 앱이 메모리 사용량의 안전 한계를 넘지 않도록 도와주는 실험용 네이티브 API입니다. 이를 위해 사용 중인 메모리 리소스의 양을 추정하고 특정 기준점을 초과하면 앱에 알립니다. API는 예상 메모리 사용량 비율을 앱에 직접 보고할 수도 있습니다.

API에서 제공하는 추정치는 앱이 메모리 사용량을 조정해야 하는 시점을 판단하거나 앱의 향후 버전에서 개선할 영역을 찾는 데 도움이 됩니다. 조정할 부분으로는 시각적 애셋과 오디오 애셋의 세부정보와 품질을 낮추는 등 메모리 소비를 변경하는 모든 작업이 포함될 수 있습니다.

예상 메모리 리소스에는 malloc에서 할당된 네이티브 힙 메모리와 OpenGL ES 및 Vulkan Graphics API에서 할당된 그래픽 메모리가 포함되어 있으므로 Memory Advice API는 게임 및 그래픽이 많은 앱에 적합합니다.

추정치는 다음에 기반하여 산출됩니다.

  • API에서 수집하는 기기 측정항목
  • 기기의 머신러닝 데이터
  • 기기 테스트

API 수준에서 Memory Advice API는 메모리 조언 상태 집합을 정의하고 일련의 함수를 사용하여 앱에 조언 상태를 전달합니다.

시작하기 Unity 게임 시작하기

배포

Memory Advice API는 Android Game Development Kit(AGDK)의 일부이며, 다음 채널을 통해 배포됩니다.

게임은 빌드 환경에 권장되는 Memory Advice API 버전을 사용해야 합니다. Android 스튜디오의 경우 Jetpack 버전을 사용하는 것이 좋습니다. Android 게임 개발 확장 프로그램(AGDE)의 경우 AGDK 다운로드 페이지에 있는 버전을 사용하는 것이 좋습니다.

기능

이 섹션에서는 Memory Advice API 기능을 설명합니다.

메모리 상태

API는 앱에 다음 메모리 상태를 보고합니다.

  • MEMORYADVICE_STATE_OK
  • MEMORYADVICE_STATE_APPROACHING_LIMIT
  • MEMORYADVICE_STATE_CRITICAL

자세한 내용은 memoryadvice_memorystate 참조 페이지를 확인하세요.

메모리 상태 보고

이 API는 폴링 또는 콜백 메커니즘을 통해 메모리 상태를 보고합니다.

  • 폴링:
    앱에서 언제든지 API를 호출하여 메모리 상태를 가져올 수 있습니다.

  • 콜백:
    앱에서 Memory Advice API를 사용하여 콜백 함수를 등록할 수 있습니다. 앱이 콜백의 호출 빈도를 지정합니다. API는 빈도를 사용하여 애플리케이션 메모리 조건이 안전 한계에 가까워지거나 매우 낮을 때 콜백을 실행할 시점을 결정합니다. 메모리 조건이 안전한 경우에는 콜백이 호출되지 않습니다. 콜백은 앱에 속한 스레드가 아니라 자체 스레드에서 실행됩니다.

비용 및 호출 빈도 고려사항

Memory Advice API는 메모리 상태를 생성하기 위해 계산 시간을 사용합니다. 비용은 기기에 따라 다르지만, 일반적으로 호출당 1~3밀리초가 듭니다. 메모리 상태의 폴링 주기 또는 메모리 상태 콜백에 지정할 빈도를 결정할 때 이 오버헤드를 고려해야 합니다.

요구사항

기기 요구사항

  • Android 4.4(API 수준 19) 이상

앱 요구사항

  • 이 API는 네이티브 앱(주로 C/C++로 작성된 앱)만 지원합니다.

  • API는 실제 기기만 지원합니다. 에뮬레이터는 지원하지 않습니다.

NDK 버전 요구사항

Memory Advice API 버전은 많이 사용되는 NDK 버전을 대부분 지원합니다. 지원되는 NDK 목록은 출시 노트를 참고하세요.

추가 리소스

문제 및 의견

Memory Advice API는 베타 버전이며 여러분의 의견을 환영합니다. API를 사용하는 동안 제안사항이 있거나 문제가 발생하면 IssueTracker에서 문제를 생성하세요.