Blog Home
Table of Content

Issue Pada Penggunaan CameraX Versi Beta Pada Beberapa Device

By : Yudho Utomo 14 September 2022

Issue Pada Penggunaan CameraX Versi Beta Pada Beberapa Device

Kamu pemakai Camera X? Team developer Crocodic menggunakan CameraX untuk pengembangan aplikasi yang dipakai di lapangan.

Akses library selengkapnya untuk CameraX dapat kita temukan dokumentasinya disini. https://developer.android.com/jetpack/androidx/releases/camera?hl=id

untuk pengimplementasiannya ada disini
​​https://developer.android.com/codelabs/camerax-getting-started#0

Setelah perubahan dari Alpha ke Beta pada 24 Agustus 2022, ada beberapa perubahan yang noticeable dan issue yang ditemukan oleh engineer. 

Perbandingan versi Alpha dan Beta

Di versi 1.1.0-beta01, dibandingkan dengan versi Alpha, ada beberapa kelebihan yang kita ketahui diantaranya adalah 

Kelebihan versi Beta

– Callback bawaan hasil foto sudah bisa untuk menyimpan ke file directory yang diinginkan
– Penambahan library kamera-video resmi untuk mendukung kasus penggunaan pengambilan video
– Mendukung mode multi-aplikasi dengan mengizinkan aplikasi CameraX melanjutkan  kamera saat kamera dijeda oleh aplikasi lain dan fokus kembali
– Penambahan CameraState API yang akan diekspos melalui CameraInfo

Kelebihan versi Alpha

– Perbaikan bug rotasi saat menganalisis gambar
– Penambahan pengujian robolektrik awal untuk kamera palsu dalam paket pengujian kamera (WIP).
– Perbaikan bug di mana pratinjau terlihat hitam di awal (data kamera tidak ada), setelah rotasi atau peralihan antara kamera depan dan belakang.

Issue di update Beta CameraX

Update dari versi beta & alpha untuk hasil/output yg di berikan sama, hanya saja perbedaannya terjadi saat pemrosesan hasilnya ada terjadi delay pengambilan gambar di versi beta. Issue delay ini terjadi saat pengambilan gambar, yakni setelah shutter ditekan lalu ada proses lain di library CameraX, sehingga ada jeda waktu hingga gambar yang diambil ditampilkan. Lama waktu delay tersebut cukup bervariasi, dari sekitar satu hingga enam detik. 

Issue ini tidak ditemukan di semua device Android. Hanya saja, issue ini juga ditemukan di device yang sudah menyandang OS Android 12 yang notabene merupakan OS Android terbaru. Untuk callback, hasil diketahui bahwa tidak menggunakan fungsi lain selain di librarynya itu sendiri.

Untuk memahami issue ini, kami membandingkan library versi Alpha dengan Beta di beberapa device yang mengalami issue. Hasil coding versi beta yang terjadi issue adalah sebagai berikut :
Penyelesaian issue dengan mengcompare library versi alpha dengan beta agar di test di device yg terjadi issue

Untuk coding versi beta yang terjadi issue adalah sebagai berikut :

Sementara itu, coding versi alpha yang lebih stabil adalah sebagai berikut :

Pengimplementasian yang terjadi di coding beta & alpha cukup berbeda, contoh untuk versi beta menggunakan MainExecutor sedangkan di versi alpha tidak menggunakannya. MainExecutor yang dimaksud sebagai berikut

untuk versi beta tanpa menggunakan MainExecutor.

Setelah membandingkan library antara beta & alpha, hipotesis kami perbedaan tersebut yang menyebabkan issue di atas. Terkait dengan update versi alpha ke beta, dalam kasus ini tidak semua library yang terbaru akan lebih compatible di semua device. Temuan issue ini juga ditemukan di forum terkait. 

CameraX Image take picture slow – Stack Overflow

Kami mengatasi issue ini dengan mendowngrade library CameraX yg sebelumnya beta kembali ke versi alpha. Sepertinya untuk versi alpha yang digunakan lebih bagus dan lebih stabil dibandingkan versi betanya.