Bagaimana aplikasi android yang berbasis kan java/kotlin bisa mengeksekusi perintah/operasi-operasi sistem yang berasal dari native lib c nya linux?
Contoh yang digunakan yaitu bagaimana aplikasi android mendeteksi bluetooth.
- Langkah pertama dalam mendeteksi bluetooth pada perangkat android adalah membuat kode C yang akan berinteraksi dengan perangkat keras bluetooth. Kode C ini akan berfungsi sebagai jembatan antara aplikasi android dan perangkat keras bluetooth.
- Kode C dibuat kemudian harus dikompilasi menjadi native library C dengan ekstensi
.so
. Contoh nama library menjadilibbluetooth.so
. - Membuat kode Java yang akan memanggil fungsi dari library native C yang telah dibuat. Kita dapat menggunakan Java Native Interface (JNI) untuk menghubungkan antara kode Java dan kode C.
- Kode Java dan library
.so
harus dikompilasi menjadi APK . Ini dapat dilakukan melalui alat pengembangan android seperti Android Studio. - Setelah APK siap, install APK pada perangkat android.
- Saat aplikasi diinstal, sistem android akan memeriksa versi API yang digunakan oleh aplikasi ini. Ini penting untuk memastikan bahwa aplikasi hanya berjalan pada perangkat dengan versi android yang sesuai.
- Ketika aplikasi dijalankan, Android Runtime (ART) akan menjalankan kode Dex (kompilasi dari kode Java).
- Ketika aplikasi memanggil fungsi bluetooth melalui JNI, ART akan meneruskan pemanggilan ini ke fungsi yang sesuai dalam library native C yang telah dibuat.
- Fungsi native C Anda akan dijalankan, dan library native C akan mengakses perangkat keras bluetooth untuk mendeteksi status bluetooth dan melakukan tugas yang diperlukan.
- Hasil dari operasi deteksi bluetooth tersebut akan dikembalikan ke ART, dan ART akan meneruskannya ke aplikasi.