Pertimbangan performa

Untuk menciptakan pengalaman pengguna AR yang menarik, aplikasi berkemampuan AR harus berperforma baik.

Pastikan aplikasi Anda:

  • Terasa responsif terhadap input pengguna, yang mencakup gestur sentuh dan gerakan perangkat.
  • Merender pada kecepatan frame yang wajar dan konsisten. Pengguna umumnya lebih menyukai kecepatan frame yang konsisten dan lebih rendah daripada kecepatan frame yang bervariasi dan lebih tinggi.
  • Meminimalkan penggunaan baterai, sehingga memungkinkan pengguna menggunakan perangkat mereka untuk melakukan tugas lain sepanjang hari, atau berinteraksi lebih lama dengan pengalaman AR Anda.
  • Menciptakan pengalaman AR yang menarik dengan konten buatan AR yang tampak stabil relatif terhadap lingkungan, dan menyatu secara realistis dengan lingkungan.

Praktik terbaik performa

Untuk menciptakan pengalaman AR yang lebih menarik, buat desain dengan mempertimbangkan praktik terbaik berikut.

Menggunakan anchor untuk meningkatkan performa pelacakan

Meskipun memungkinkan untuk menempatkan konten 3D menggunakan koordinat ruang dunia, selalu gunakan anchor jika memungkinkan. ARCore memastikan bahwa anchor tampak stabil relatif terhadap dunia, meskipun koordinat ruang dunia yang mendasarinya berubah dan dapat melompat dari waktu ke waktu setiap kali ARCore memperbarui pemahamannya tentang dunia.

Objek virtual yang tidak terpasang ke anchor terkadang akan tampak melompat dan tidak akan tampak stabil secara relatif terhadap lingkungan. Hal ini dapat membuat pengalaman AR kurang menarik bagi pengguna.

Mempertimbangkan karakteristik performa khusus perangkat

Perangkat yang didukung ARCore mencakup berbagai karakteristik hardware dan performa. Performa perangkat dapat bervariasi karena:

  • CPU/GPU perangkat, kecepatan clock
  • Memori dan bandwidth yang tersedia
  • Kualitas sensor kamera/IMU
  • Perbedaan hardware lainnya
  • {i>Driver<i} perangkat dan sistem operasi

Sebaiknya uji aplikasi Anda di berbagai kelas perangkat yang mewakili perangkat yang akan digunakan pengguna Anda.

Nonaktifkan fitur intensif CPU saat tidak digunakan

Fitur ARCore tertentu meningkatkan pemakaian CPU saat diaktifkan. Pertimbangkan untuk menonaktifkan fitur ini pada saat pengalaman AR Anda tidak memerlukannya. Tindakan ini akan membuat siklus CPU tambahan tersedia untuk aplikasi Anda, serta meningkatkan performa termal dan masa pakai baterai.

Saat ini, pemakaian CPU ARCore meningkat saat Instant Placement dan/atau Augmented Images diaktifkan untuk sesi saat ini. Ikuti panduan ini untuk meningkatkan efisiensi pemakaian CPU:

  • Instant Placement harus dinonaktifkan setelah pelacakan penuh dibuat. Fitur ini dapat dinonaktifkan di konfigurasi sesi.

  • Augmented Images harus dinonaktifkan setiap kali fitur tidak diperlukan untuk pengalaman AR Anda. Untuk menonaktifkan Gambar Augmented, konfigurasikan null atau database Gambar Augmented kosong dalam konfigurasi sesi.

Memantau termal perangkat

Selama pengembangan dan pengujian UM (Uji Mutu), Anda dapat menggunakan API termal Android untuk memantau dan melacak performa aplikasi di perangkat.

Pastikan untuk menggunakan build produksi aplikasi Anda (dan bukan build pengembangan atau qa aplikasi yang mungkin memiliki karakteristik performa runtime yang berbeda.

Mengidentifikasi kelaparan CPU ARCore

Saat sesi ARCore aktif, aplikasi Anda harus membagikan resource CPU dan GPU seluler yang terbatas kepada ARCore. Aplikasi yang terikat ke CPU dapat bersaing dengan resource CPU yang diperlukan untuk pelacakan gerakan.

Untuk memverifikasi bahwa pelokalan dan pemetaan simultan (SLAM) ARCore dapat berjalan secara normal, pastikan pesan "VIO frequency low" tidak muncul di log perangkat Android:

adb logcat | grep 'VIO frequency low'

Menghindari kelaparan CPU ARCore

Saat sesi ARCore aktif, aplikasi Anda harus membagikan perangkat resource CPU dan GPU seluler yang terbatas dengan ARCore. Aplikasi yang terikat ke CPU dapat bersaing dengan resource CPU yang diperlukan untuk pelacakan gerakan.

Membuat sebelumnya database Gambar Augmented

Jika memungkinkan, buat database Gambar Augmented Anda terlebih dahulu pada waktu pengembangan. Jika perlu membuat database Gambar Augmented saat runtime atau menambahkan gambar secara dinamis ke database yang ada, pastikan untuk menambahkan gambar di thread latar belakang agar tidak memblokir UI thread utama.

Membatasi jumlah streaming kamera yang diminta

Saat menggunakan Java Shared Camera, aplikasi dapat meminta aliran gambar CPU atau GPU tambahan.