Um ansprechende AR-Erlebnisse zu schaffen, ist es wichtig, App gut funktioniert.
Für Ihre App müssen folgende Voraussetzungen erfüllt sein:
- Reagiert auf Nutzereingaben, einschließlich Touch-Gesten und Gerät Bewegung.
- Wird mit einer angemessenen und konsistenten Framerate gerendert. Nutzer im Allgemeinen Konsistente und niedrigere Framerates gegenüber solchen, und höher.
- Minimiert Akkuentladung, sodass Nutzer ihr Gerät auch für andere Aufgaben erledigen oder sich länger mit AR beschäftigen.
- Erstellt ein ansprechendes AR-Erlebnis mit AR-generierten Inhalten stabil und fügt sich harmonisch in die Umgebung ein. zu verbessern.
Best Practices für die Leistung
Für noch mehr faszinierende AR-Erlebnisse sollten Sie Folgendes verwenden: im Hinterkopf behalten.
Anker verwenden, um die Tracking-Leistung zu verbessern
Es ist zwar möglich, 3D-Content mithilfe von Weltraumkoordinaten zu platzieren, Verwenden Sie nach Möglichkeit immer einen Anker. ARCore sorgt dafür, dass Anchors im Verhältnis zur Welt stabil wirken, auch wenn die die zugrunde liegenden Weltraumkoordinaten ändern und sich im Laufe der Zeit ändern, wenn ARCore aktualisiert sein Verständnis der Welt.
Virtuelle Objekte, die nicht mit einem Anker verbunden sind, werden gelegentlich und erscheinen im Verhältnis zur Umgebung nicht stabil. Dies kann dazu führen, AR-Erlebnisse sind für Nutzer weniger ansprechend.
Gerätespezifische Leistungsmerkmale berücksichtigen
Geräte mit ARCore-Unterstützung decken viele verschiedene der Hardware und der Leistungsmerkmale. Die Geräteleistung kann aus folgenden Gründen variieren:
- CPU/GPU des Geräts, Taktgeschwindigkeit
- Verfügbarer Arbeitsspeicher und verfügbare Bandbreite
- Kamera-/IMU-Sensorqualität
- Weitere Hardwareunterschiede
- Betriebssystem- und Gerätetreiber
Wir empfehlen dir, deine App auf verschiedenen Geräteklassen zu testen, für die Geräte, die Ihre Nutzer verwenden werden.
CPU-intensive Funktionen bei Nichtgebrauch deaktivieren
Bestimmte ARCore-Funktionen erhöhen die CPU-Auslastung, wenn sie aktiviert sind. Erwägen Sie deaktiviert werden, wenn die AR-Nutzung nicht erforderlich ist. . Dadurch stehen Ihrer App zusätzliche CPU-Zyklen zur Verfügung und und die Akkuleistung.
Derzeit steigt die ARCore-CPU-Auslastung bei Instant Placement und/oder Augmented Images ist für die aktuelle Sitzung aktiviert. Diesen folgen Richtlinien zur Steigerung der CPU-Auslastungseffizienz:
Instant Placement sollte deaktiviert werden, sobald das vollständige Tracking abgeschlossen ist festgelegt ist. Die Funktion kann in der Sitzungskonfiguration deaktiviert werden.
Augmented Images sollte deaktiviert werden, wenn die Funktion nicht erforderlich ist für dein AR-Erlebnis. Zum Deaktivieren erweiterter Bilder konfigurieren Sie eine
null
oder leere Datenbank für Augmented Images in der Sitzungskonfiguration.
Überhitzung des Geräts überwachen
Während der Entwicklungs- und QA-Tests kannst du die Thermal-APIs von Android verwenden, und die Leistung Ihrer App auf dem Gerät erfassen.
Verwenden Sie einen Produktions-Build Ihrer App und keinen Entwicklungs- oder qa-Build der Anwendung, der möglicherweise eine andere Laufzeitleistung aufweist Eigenschaften.
PowerManager#getCurrentThermalStatus()
(API-Level 29)PowerManager#getThermalHeadroom(int)
(API-Level 30)
ARCore-CPU-Mangel ermitteln
Wenn eine ARCore-Sitzung aktiv ist, muss deine App eingeschränkte mobile CPU- und GPU-Kapazität teilen mit ARCore. CPU-gebundene Anwendungen können mit den CPU-Ressourcen konkurrieren die für die Bewegungserkennung erforderlich sind.
Um zu prüfen, ob die gleichzeitige Lokalisierung und Zuordnung (SLAM) ordnungsgemäß ausgeführt werden kann, prüfen Sie, ob die niedrige VIO-Frequenz aktiviert ist. Nachricht erscheint nicht in den Android-Geräteprotokollen:
adb logcat | grep 'VIO frequency low'
ARCore-CPU-Mangel vermeiden
Wenn eine ARCore-Sitzung aktiv ist, muss deine App eingeschränkte mobile CPU- und GPU-Kapazität teilen mit ARCore. CPU-gebundene Anwendungen können mit den CPU-Ressourcen konkurrieren die für die Bewegungserkennung erforderlich sind.
Augmented Images-Datenbanken vorab erstellen
Erstellen Sie Ihre Augmented Image-Datenbanken nach Möglichkeit zum Zeitpunkt der Entwicklung vorab. Ob es notwendig ist, Augmented Image-Datenbanken zur Laufzeit oder dynamisch zu erstellen Bilder zu einer vorhandenen Datenbank hinzufügen und Bilder im Hintergrund hinzufügen damit der UI-Hauptthread nicht blockiert wird.
Anzahl der angeforderten Kamerastreams begrenzen
Wenn Sie die gemeinsam genutzte Java-Kamera verwenden, können Apps zusätzliche CPU- oder GPU-Image-Streams anfordern.