pengenalan android ndk

Post on 11-Feb-2017

1.858 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related