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 perangkat {i>motion <i}(gerakan).
- Merender pada kecepatan frame yang wajar dan konsisten. Pengguna umumnya lebih memilih kecepatan frame yang konsisten dan lebih rendah daripada kecepatan frame yang variabel dan lebih tinggi.
- Meminimalkan konsumsi baterai, memungkinkan pengguna menggunakan perangkat mereka untuk hal lain tugas 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 fitur-fitur terbaik berikut praktik terbaik.
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 dari waktu ke waktu ketika ARCore memperbarui pemahamannya tentang dunia.
Objek virtual yang tidak melekat pada sebuah anchor terkadang akan terlihat melompat dan tidak akan tampak stabil dibandingkan dengan lingkungan. Hal ini dapat menjadikan Pengalaman AR kurang menarik bagi pengguna.
Mempertimbangkan karakteristik performa khusus perangkat
Perangkat yang didukung ARCore mencakup berbagai macam karakteristik perangkat keras dan kinerja mereka. 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 pada berbagai kelas 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 menyediakan siklus CPU tambahan 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 mapan. Fitur ini dapat dinonaktifkan di konfigurasi sesi.
Augmented Images harus dinonaktifkan setiap kali fitur tidak diperlukan untuk pengalaman AR Anda. Untuk menonaktifkan Gambar Augmented, konfigurasi
null
atau dari database Gambar Augmented yang kosong dalam konfigurasi sesi.
Memantau termal perangkat
Selama pengembangan dan pengujian QA, Anda bisa menggunakan API termal Android untuk memantau dan melacak kinerja aplikasi di perangkat.
Pastikan untuk menggunakan build produksi aplikasi Anda (dan bukan pengembangan atau qa aplikasi Anda yang mungkin memiliki performa runtime berbeda karakteristik.
PowerManager#getCurrentThermalStatus()
(level API 29)PowerManager#getThermalHeadroom(int)
(Level API 30)
Mengidentifikasi kekurangan 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 pra-pembuatan database Augmented Image Anda pada waktu pengembangan. Apakah perlu membuat database Augmented Image saat runtime atau secara dinamis menambahkan gambar ke {i>database<i} yang ada, pastikan untuk menambahkan gambar di latar belakang untuk menghindari pemblokiran thread UI utama.
Batasi jumlah streaming kamera yang diminta
Saat menggunakan Kamera Bersama Java, aplikasi dapat meminta aliran gambar CPU atau GPU tambahan.