Memory Advice API – Übersicht

Die Memory Advice API ist eine experimentelle native API, mit der Android-Apps die Sicherheitsgrenzen für die Speichernutzung einhalten können. Die API erreicht dies, indem sie die Menge der verwendeten Speicherressourcen schätzt und die Anwendung dann benachrichtigt, wenn bestimmte Schwellenwerte überschritten werden. Die API kann den geschätzten Prozentsatz der Arbeitsspeichernutzung auch direkt an Ihre App melden.

Anhand der Schätzungen der API lässt sich bestimmen, wann die Speichernutzung Ihrer App angepasst werden sollte. Außerdem lassen sich damit Bereiche ermitteln, die in zukünftigen Versionen Ihrer App verbessert werden können. Die Anpassungen können alles umfassen, was sich auf den Speicherverbrauch auswirkt, z. B. die Verringerung der Details und der Qualität von Bild- und Audio-Assets.

Die geschätzten Arbeitsspeicherressourcen umfassen den von Malloc zugewiesenen nativen Heap-Speicher und den von den OpenGL ES und Vulkan Graphics APIs zugewiesenen Grafikspeicher. Dadurch eignet sich die Memory Advice API optimal für Spiele und grafikintensive Apps.

Die Schätzungen basieren auf Folgendem:

  • Von der API erfasste Gerätemesswerte
  • Machine-Learning-Daten von Geräten
  • Gerätetests

Auf API-Ebene definiert die Memory Advice API eine Reihe von Empfehlungsstatus für den Arbeitsspeicher und sendet diese mit einer Reihe von Funktionen an Apps.

Erste Schritte Erste Schritte für Unity-Spiele

Distributionen

Die Memory Advice API ist Teil des Android Games Development Kit (AGDK) und wird über die folgenden Kanäle vertrieben:

Für Spiele sollte die Memory Advice API-Version verwendet werden, die für ihre Build-Umgebung empfohlen wird. Für Android Studio empfehlen wir den Jetpack-Release. Für die Android Game Development Extension (AGDE) empfehlen wir den Release auf der AGDK-Downloadseite.

Funktionen

In diesem Abschnitt werden die Funktionen der Memory Advice API beschrieben.

Speicherstatus

Die API meldet Apps die folgenden Speicherstatus:

  • MEMORYADVICE_STATE_OK
  • Speicherlimit (SPPROACHING_LIMIT)
  • SPEICHERKRITERIEN_STATISTIK

Weitere Informationen finden Sie auf den Referenzseiten zu memoryadvice_memorystate.

Arbeitsspeicherstatus melden

Die API unterstützt die Meldung des Speicherstatus entweder über einen Abfrage- oder einen Callback-Mechanismus:

  • Polling:
    Eine App kann jederzeit die API aufrufen, um den Arbeitsspeicherstatus abzurufen.

  • Callback:
    Eine App kann eine Callback-Funktion mit der Memory Advice API registrieren. Die App gibt die Anrufhäufigkeit für den Rückruf an. Die API bestimmt anhand der Frequenz, wann der Callback ausgeführt werden soll, wenn sich der Zustand des Anwendungsspeichers dem sicheren Limit nähert oder kritisch niedrig ist. Der Callback wird nicht aufgerufen, wenn die Speicherbedingungen sicher sind. Der Callback wird aus seinem eigenen Thread ausgeführt, nicht von einem Thread, der zur Anwendung gehört.

Überlegungen zu Kosten und Anrufhäufigkeit

Die Memory Advice API generiert den Speicherstatus anhand der Rechenzeit. Die Kosten variieren je nach Gerät, liegen jedoch in der Regel zwischen 1 und 3 ms pro Anruf. Sie sollten diesen Mehraufwand berücksichtigen, wenn Sie festlegen, wie oft der Arbeitsspeicherstatus abgefragt oder die Häufigkeit für den Callback für den Arbeitsspeicherstatus angegeben werden soll.

Voraussetzungen

Geräteanforderungen

  • Android 4.4 (API-Level 19) oder höher.

Anforderungen an Apps

  • Die API unterstützt nur systemeigene Apps, d. h. Apps, die hauptsächlich in C/C++ geschrieben sind.

  • Die API unterstützt nur physische Geräte, Emulatoren werden nicht unterstützt.

NDK-Versionsanforderungen

Die Memory Advice API-Version unterstützt die gängigsten NDK-Versionen. Eine Liste der unterstützten NDK-Versionen findest du in den Versionshinweisen.

Zusätzliche Ressourcen

Probleme und Feedback

Die Memory Advice API befindet sich in der Betaphase und wir freuen uns über Feedback. Wenn du Vorschläge hast oder Probleme bei der Verwendung der API findest, erstelle ein Problem im IssueTracker.