Pertimbangan performa

Untuk menciptakan pengalaman pengguna AR yang menarik, Anda harus berkemampuan AR aplikasi Anda berjalan dengan 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 memilih kecepatan frame yang konsisten dan lebih rendah daripada kecepatan frame yang bervariasi dan lebih tinggi.
  • Meminimalkan pemakaian baterai, sehingga pengguna dapat menggunakan perangkat mereka untuk tugas lain sepanjang hari, atau berinteraksi lebih lama dengan pengalaman AR Anda.
  • Menciptakan pengalaman AR yang menarik tempat konten buatan AR muncul stabil relatif terhadap lingkungan, dan secara realistis menyatu dengan lingkungan fleksibel App Engine.

Praktik terbaik performa

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

Menggunakan anchor untuk meningkatkan performa pelacakan

Meskipun Anda dapat 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 bisa melonjak waktu setiap kali ARCore memperbarui pemahamannya tentang dunia.

Objek virtual yang tidak terpasang ke anchor terkadang akan tampak melompat dan tidak akan tampak stabil relatif terhadap lingkungan. Hal ini dapat menjadikan 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
  • Driver sistem operasi dan perangkat

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

Menonaktifkan fitur yang menggunakan CPU secara intensif saat tidak digunakan

Fitur ARCore tertentu meningkatkan penggunaan CPU saat diaktifkan. Pertimbangkan menonaktifkan fitur ini ketika pengalaman AR tidak memerlukan mereka. Ini akan membuat siklus CPU tambahan tersedia untuk aplikasi Anda, dan meningkatkan performa termal dan masa pakai baterai.

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

  • Instant Placement harus dinonaktifkan setelah pelacakan penuh ditetapkan. 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 QA, Anda dapat menggunakan thermal API Android untuk memantau dan melacak performa aplikasi di perangkat.

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

Mengidentifikasi kehabisan CPU ARCore

Saat sesi ARCore aktif, aplikasi Anda harus berbagi CPU dan GPU seluler terbatas resource dengan ARCore. Aplikasi yang terikat CPU bisa bersaing dengan sumber daya CPU yang diperlukan untuk pelacakan gerakan.

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

adb logcat | grep 'VIO frequency low'

Menghindari kekurangan CPU ARCore

Saat sesi ARCore aktif, aplikasi Anda harus berbagi CPU dan GPU seluler terbatas perangkat resource dengan ARCore. Aplikasi yang terikat CPU bisa bersaing dengan sumber daya CPU yang diperlukan untuk pelacakan gerakan.

Membuat database Augmented Gambar terlebih dahulu

Jika memungkinkan, buat database Gambar Augmented 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 untuk menghindari pemblokiran thread UI utama.

Membatasi jumlah streaming kamera yang diminta

Saat menggunakan Kamera Bersama Java, aplikasi dapat meminta aliran gambar CPU atau GPU tambahan.