Hinweise zur Leistung

Um überzeugende AR-Nutzererfahrungen zu schaffen, ist es wichtig, dass deine AR-fähige App gut funktioniert.

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Fühlt sich responsiv auf Nutzereingaben an, einschließlich Touch-Gesten und Gerätebewegungen.
  • Wird mit einer angemessenen und konsistenten Framerate gerendert. Nutzer bevorzugen in der Regel konsistente Framerates und niedrigere als variable und höhere Framerates.
  • Minimiert die Entladung des Akkus, sodass Nutzer ihr Gerät den ganzen Tag über für andere Aufgaben verwenden oder länger mit AR-Funktionen interagieren können.
  • Schafft ein überzeugendes AR-Erlebnis, bei dem AR-generierte Inhalte im Verhältnis zur Umgebung stabil erscheinen und sich realistisch in die Umgebung einfügen.

Best Practices für die Leistung

Berücksichtigen Sie bei der Entwicklung von AR-Erlebnissen die folgenden Best Practices.

Mit Ankern die Tracking-Leistung verbessern

Obwohl es möglich ist, Ihre 3D-Inhalte mithilfe von Weltraumkoordinaten zu platzieren, sollten Sie nach Möglichkeit immer einen Anker verwenden. ARCore sorgt dafür, dass Anker relativ zur Welt stabil erscheinen, obwohl sich die zugrunde liegenden Weltraumkoordinaten ändern und im Laufe der Zeit springen können, wenn ARCore die Welterkennung aktualisiert.

Virtuelle Objekte, die nicht an einen Anker angehängt sind, scheinen gelegentlich zu springen und wirken im Verhältnis zur Umgebung nicht stabil. Dies kann die AR-Erfahrung für Nutzende weniger ansprechend machen.

Gerätespezifische Leistungsmerkmale berücksichtigen

ARCore-unterstützte Geräte decken eine breite Palette von Hardware- und Leistungsmerkmalen ab. Die Geräteleistung kann aus folgenden Gründen variieren:

  • CPU/GPU des Geräts, Taktgeschwindigkeit
  • Verfügbarer Arbeitsspeicher und verfügbare Bandbreite
  • Qualität des Kamera-/IMU-Sensors
  • Andere Hardwareunterschiede
  • Betriebssystem- und Gerätetreiber

Wir empfehlen, deine App auf verschiedenen Geräteklassen zu testen, die für die Geräte stehen, die deine Nutzer verwenden werden.

Deaktivieren Sie CPU-intensive Funktionen, wenn sie nicht verwendet werden

Bestimmte ARCore-Funktionen erhöhen die CPU-Auslastung, wenn sie aktiviert sind. Sie können diese Funktionen deaktivieren, wenn sie für Ihre AR-Nutzung nicht erforderlich sind. Dadurch stehen Ihrer App zusätzliche CPU-Zyklen zur Verfügung und die Thermalleistung und die Akkulaufzeit werden verbessert.

Derzeit erhöht sich die ARCore-CPU-Auslastung, wenn Instant Placement und/oder Augmented Images für die aktuelle Sitzung aktiviert sind. Befolgen Sie diese Richtlinien, um die Effizienz der CPU-Auslastung zu erhöhen:

  • Instant Placement sollte deaktiviert werden, sobald vollständiges Tracking eingerichtet wurde. Das Feature kann in der Sitzungskonfiguration deaktiviert werden.

  • Augmented Images sollte deaktiviert werden, wenn die Funktion für deine AR-Nutzung nicht erforderlich ist. Wenn du erweiterte Bilder deaktivieren möchtest, konfiguriere in der Sitzungskonfiguration eine null-Datenbank oder eine leere Datenbank für erweiterte Bilder.

Überhitzung von Geräten im Blick behalten

Während der Entwicklung und QA-Tests können Sie die Thermal APIs von Android verwenden, um die Leistung Ihrer App auf dem Gerät zu überwachen und zu verfolgen.

Verwenden Sie einen Produktions-Build der Anwendung und keinen Entwicklungs- oder Qa-Build, der unterschiedliche Eigenschaften der Laufzeitleistung haben könnte.

ARCore-CPU-Mangel ermitteln

Wenn eine ARCore-Sitzung aktiv ist, muss deine App begrenzte mobile CPU- und GPU-Ressourcen mit ARCore teilen. CPU-gebundene Anwendungen können mit den CPU-Ressourcen konkurrieren, die für die Bewegungserkennung erforderlich sind.

Wenn du prüfen möchtest, ob das SLAM (Simultaneous localization and Mapping) von ARCore normal ausgeführt werden kann, prüfe, ob die Meldung VIO Frequency low (VIO-Häufigkeit niedrig) nicht in den Android-Geräteprotokollen angezeigt wird:

adb logcat | grep 'VIO frequency low'

ARCore-CPU-Mangel vermeiden

Wenn eine ARCore-Sitzung aktiv ist, muss deine App ein Gerät mit eingeschränkten mobilen CPU- und GPU-Ressourcen mit ARCore teilen. CPU-gebundene Anwendungen können mit den CPU-Ressourcen konkurrieren, die für die Bewegungserkennung erforderlich sind.

Datenbanken für erweiterte Bilder vorab erstellen

Erstellen Sie Ihre Datenbanken für erweiterte Bilder nach Möglichkeit bereits bei der Entwicklung. Wenn es erforderlich ist, zur Laufzeit Augmented Image-Datenbanken zu erstellen oder einer vorhandenen Datenbank dynamisch Bilder hinzuzufügen, fügen Sie Bilder in einem Hintergrundthread hinzu, damit der UI-Hauptthread nicht blockiert wird.

Anzahl der angeforderten Kamerastreams begrenzen

Wenn Sie Java Shared Camera verwenden, können Apps zusätzliche CPU- oder GPU-Bildstreams anfordern.