Download - Pengenalan android ndk
Sidiq PermanaIntel Android Software Innovator & CIO of
Nusantara Beta Studio
Pengenalan Android NDK
NDK adalah satu toolset yang disediakan oleh android untuk memudahkan pengembang dalam mengintegrasikan kode atau library yang ditulis dalam bahasa C dan C++ kedalam aplikasi yang dikembangkan
NDK dalam beberapa kasus akan meningkatkan peforma komputasi dan pemrosesan data yang kompleks
NDK akan memudahkan penulisan kode untuk terintegrasi langsung dengan kernel dan hardware device pada android
NDK digunakan oleh SDK android sebagai abstraksi layer presentasi ke layer hardware. Sehingga memudahkan developer untuk berinteraksi langsung dengan hardware tanpa menggunakan bahasa Java
Apa itu NDK
Dapat menggunakan kode-kode / library yang ditulis dalam bahasa C/C++ ke dalam aplikasi yang dikembangkan
Memudahkan interaksi langsung dengan hardware yang dibutuhkan jika ada custom usage yang dibutuhkan
Dalam beberapa kasus C/C++ memberikan performa aplikasi yang bagus untuk melakukan proses komputasi untuk kalkulasi yang besar
Sebagai solusi jika memang proses-proses tertentu hanya bisa atau hanya terdapat dukungan dalam bahasa C/C++
Manfaat menggunakan NDK
Kode dan project kita akan semakin kompleks Dibutuhkan pemahaman terhadap C/C++ dan JNI (Java
Native Interface) bagi yang belum familiar Kebutuhan resource yang besar bagi pengguna windows
untuk download cygwin dan Android NDK yang lumayan besar
Kelemahan Menggunakan NDK
Ketika kamu bertemu dengan algoritma dengan kompleksitas yang tinggi atau kalkulasi kompleks pada permodelan matematika
Ketika aplikasi kamu membutuhkan koneksi langsung ke layer device seperti membaca signal radio dari bluetooth, koneksi ke VOIP, implementasi physic computation pada game atau bahkan akses untuk me-render augmentasi kamera dengan penambahan object secara real time.
Waktu terbaik menggunakan NDK
Contoh Aplikasi yang menggunakan NDK
TuneIn Radio Pro textPlus Microsoft Tag Star Chart SPYMouse SoundHound Roll in the Hole Facebook Raging ThunderPocketCloud Camera Zoom FX Blow Up Paper Camera Ocean HD Screen Saver Office Suite Jump Desktop Fieldrunners Etc...
Contoh library dan project yang menggunakan NDK
http://opencv.org/platforms/android.html http://giderosmobile.com/ https://github.com/zxing/zxing http://sipdroid.org/ Etc...
Hampir semua game engine sudah mengenkapsulasi ndk-programming didalam sdk nya. Sehingga developer tinggal akses saja pada resource yang dibutuhkan contoh : Unity dan Gideros
Bagaimana NDK Bekerja
JNI
Java Android Common Libraries
C Based Libraries
The Communication Between C++ and JAVA is Using JNI (Java Native Interface)
Native Development Kit
Harus familiar dengan bahasa C/C++ Harus familiar dengan JNI (Java Native Interface) Terkadang harus menggunakan command line tapi di
eclipse sudah di simplify dengan klik kanan :D Familiar dengan penggunaan cygwin dan harus terinstal
terlebih dahulu (untuk pengguna windows, untuk mac dan linux sudah default)
Harus familiar dengan Android Application Development baik itu SDK nya maupun IDE nya
Pemahaman dasar untuk menggunakan NDK ?
Semua device dengan Intel Processor pada smartphone android sudah mendukung Ekosistem Android secara menyeluruh
Dalvik Virtual Machine sudah teroptimalisasi untuk Intel platform Aplikasi berbasis NDK akan langsung bisa dijalankan tanpa
adanya kompilasi ulang untuk Intel platform Sejak tahun 2011 Android NDK sudah menyediakan toolchain
berbasis x86 Performa aplikasi ? Jelas tidak perlu ditanyakan Porting aplikasi hanya dibutuhkan jika ada kode yang
bergantung pada prosesor tertentu Seperangkat Tools pendukung
Apa yang Intel punya untuk mendukung pengembangan aplikasi NDK ?
Want more ?https://software.intel.com
The case : menampilkan teks “Hello World dari NDK!!!” dengan menggunakan Android NDK
Show me the code
Android SDK sudah terinstal Android NDK sudah terinstal Cygwin (Untuk windows sudah terinstal)
Pastikan....
C/C++ code dalam bentuk JNI
Android.mk
Letakan di folder jni
Java Code
Hasil kompilasi
Jadi apa yang didapat ?
C/C++ Code Lib.so
Java
Compiled With NDK
Call
Objective : Untuk mendapatkan gambaran proses sederhana C/C++, JNI dan Java dalam NDK
Case 2 : Hitung Luas Persegi Panjang dengan NDK
C/C++ Code
Android.mk
Java Code
Klik kanan di project lalu pilih add native support
Klik Finish pada dialog yang muncul
Ndk enable
Klik kanan di project lalu pilih Make Targets Create
Masukan nama “Target Name” pada dialog dan “OK”
Kompilasi C/C++ code menjadi lib .so
Build .so dengan cara Make Target Build, lalu pilih target yang sudah dibuat sebelumnya lalu Build pada dialog yang muncul
Result
Want more ? Lets’s write some codes. Thank you