NDK adalah alat yang disediakan oleh Android untuk memfasilitasi pengembang dalam mengintegrasikan kode atau library yang ditulis dalam bahasa C dan C++ ke dalam aplikasi Android. NDK dapat meningkatkan kinerja aplikasi dan memungkinkan pengembang berinteraksi langsung dengan perangkat keras melalui penggunaan bahasa C/C++.
2. 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
3. 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
4. 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
5. 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
7. 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...
9. 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
10. 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
11. 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 ?
12. 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 ?