SlideShare uma empresa Scribd logo
1 de 38
Sidiq Permana
Intel 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 ?
 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

Mais conteúdo relacionado

Mais procurados

Bab 1 Definisi & konsep komunikasi
Bab 1 Definisi & konsep komunikasiBab 1 Definisi & konsep komunikasi
Bab 1 Definisi & konsep komunikasi
zasbaruden
 
Perbincangan tokoh "seni dalam pendidikan"
Perbincangan tokoh "seni dalam pendidikan"Perbincangan tokoh "seni dalam pendidikan"
Perbincangan tokoh "seni dalam pendidikan"
Asmawati Mohd Rapa
 
kemahiran belajar : Interpersonal dan intrapersonal
kemahiran belajar : Interpersonal dan intrapersonalkemahiran belajar : Interpersonal dan intrapersonal
kemahiran belajar : Interpersonal dan intrapersonal
Luqman Hakim
 
8004852 perbezaan-individu
8004852 perbezaan-individu8004852 perbezaan-individu
8004852 perbezaan-individu
Fiqrie Shamsuri
 
ASAS PSIKOLOGI memory
ASAS PSIKOLOGI memoryASAS PSIKOLOGI memory
ASAS PSIKOLOGI memory
Amin Upsi
 

Mais procurados (17)

Bab 1 Definisi & konsep komunikasi
Bab 1 Definisi & konsep komunikasiBab 1 Definisi & konsep komunikasi
Bab 1 Definisi & konsep komunikasi
 
Rph transisi 21 23 februari 2021
Rph transisi 21 23 februari 2021Rph transisi 21 23 februari 2021
Rph transisi 21 23 februari 2021
 
kaedah mengajar.
kaedah mengajar.kaedah mengajar.
kaedah mengajar.
 
Tajuk 3 irama, warna dan ruang
Tajuk 3 irama, warna dan ruangTajuk 3 irama, warna dan ruang
Tajuk 3 irama, warna dan ruang
 
Kaunselor bukan guru disiplin
Kaunselor bukan guru disiplinKaunselor bukan guru disiplin
Kaunselor bukan guru disiplin
 
MEMERHATI DAN MENGESAN PERKEMBANGAN KANAK-KANAK PRASEKOLAH
MEMERHATI DAN MENGESAN PERKEMBANGAN KANAK-KANAK PRASEKOLAHMEMERHATI DAN MENGESAN PERKEMBANGAN KANAK-KANAK PRASEKOLAH
MEMERHATI DAN MENGESAN PERKEMBANGAN KANAK-KANAK PRASEKOLAH
 
Modul aktiviti pembelajaran bertema prasekolah pendidikan khas bermasalah pem...
Modul aktiviti pembelajaran bertema prasekolah pendidikan khas bermasalah pem...Modul aktiviti pembelajaran bertema prasekolah pendidikan khas bermasalah pem...
Modul aktiviti pembelajaran bertema prasekolah pendidikan khas bermasalah pem...
 
Perbincangan tokoh "seni dalam pendidikan"
Perbincangan tokoh "seni dalam pendidikan"Perbincangan tokoh "seni dalam pendidikan"
Perbincangan tokoh "seni dalam pendidikan"
 
Pembelajaran berkesan
Pembelajaran berkesanPembelajaran berkesan
Pembelajaran berkesan
 
kemahiran belajar : Interpersonal dan intrapersonal
kemahiran belajar : Interpersonal dan intrapersonalkemahiran belajar : Interpersonal dan intrapersonal
kemahiran belajar : Interpersonal dan intrapersonal
 
6 Topi Berpikir (2014)
6 Topi Berpikir (2014)6 Topi Berpikir (2014)
6 Topi Berpikir (2014)
 
8004852 perbezaan-individu
8004852 perbezaan-individu8004852 perbezaan-individu
8004852 perbezaan-individu
 
JSU
JSUJSU
JSU
 
ASAS PSIKOLOGI memory
ASAS PSIKOLOGI memoryASAS PSIKOLOGI memory
ASAS PSIKOLOGI memory
 
1. menerapkan cara perawatan sistem kelistrikan
1. menerapkan cara perawatan sistem kelistrikan1. menerapkan cara perawatan sistem kelistrikan
1. menerapkan cara perawatan sistem kelistrikan
 
KAQ1063 Kuliah 3 (2).ppt
KAQ1063 Kuliah 3 (2).pptKAQ1063 Kuliah 3 (2).ppt
KAQ1063 Kuliah 3 (2).ppt
 
Tagihan LK 1 untuk Calon Pengajar Praktik
Tagihan LK 1 untuk Calon Pengajar PraktikTagihan LK 1 untuk Calon Pengajar Praktik
Tagihan LK 1 untuk Calon Pengajar Praktik
 

Semelhante a Pengenalan android ndk

Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n rudaPengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
Fajarudin Noer
 
Pemrograman android
Pemrograman androidPemrograman android
Pemrograman android
Mdeno Akbar
 

Semelhante a Pengenalan android ndk (20)

Ebook Workshop Dasar android
Ebook Workshop Dasar androidEbook Workshop Dasar android
Ebook Workshop Dasar android
 
Android application development
Android application developmentAndroid application development
Android application development
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
 
Pengenalan dasar android Programming
Pengenalan dasar android ProgrammingPengenalan dasar android Programming
Pengenalan dasar android Programming
 
Pengenalan dasar android programming
Pengenalan dasar android programming Pengenalan dasar android programming
Pengenalan dasar android programming
 
201012101edit
201012101edit201012101edit
201012101edit
 
Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n rudaPengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
Pengenalan android kelompok 1 fajarudin noer, bayu tulus , n ruda
 
Perbandingan bahasa C dan java serta sejarah singkat
Perbandingan bahasa C dan java serta sejarah singkatPerbandingan bahasa C dan java serta sejarah singkat
Perbandingan bahasa C dan java serta sejarah singkat
 
Perbandingan bahasa c# dan sejarah singkat
Perbandingan bahasa c# dan sejarah singkatPerbandingan bahasa c# dan sejarah singkat
Perbandingan bahasa c# dan sejarah singkat
 
Pertemuan1 installasi eclipse
Pertemuan1 installasi eclipsePertemuan1 installasi eclipse
Pertemuan1 installasi eclipse
 
Introduction: AndroidX
Introduction: AndroidXIntroduction: AndroidX
Introduction: AndroidX
 
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
 
Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)
 
Pertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docxPertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docx
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
 
Android2
Android2Android2
Android2
 
C/C++ programming
C/C++ programmingC/C++ programming
C/C++ programming
 
Pengenalan android
Pengenalan androidPengenalan android
Pengenalan android
 
Sqlite
SqliteSqlite
Sqlite
 
Pemrograman android
Pemrograman androidPemrograman android
Pemrograman android
 

Mais de Google (6)

What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajar
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapter
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Local developer program
Local developer programLocal developer program
Local developer program
 

Último

Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
yoodika046
 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
VinaAmelia23
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
ssupi412
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
Arisatrianingsih
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
AhmadAffandi36
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
rororasiputra
 

Último (19)

Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistikaPengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
 
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdfGambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
 
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptxPPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
 
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptxPPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
 
Kalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.pptKalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.ppt
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
 
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman MadyaPelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
 
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
 
Contoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
Contoh PPT Pelaksanaan Pekerjaan Gedung KonstruksiContoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
Contoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
 

Pengenalan android ndk

  • 1. Sidiq Permana Intel Android Software Innovator & CIO of Nusantara Beta Studio Pengenalan Android NDK
  • 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
  • 6. Contoh Aplikasi yang 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...
  • 8. Contoh library dan project yang menggunakan NDK
  • 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 ?
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22.  The case : menampilkan teks “Hello World dari NDK!!!” dengan menggunakan Android NDK Show me the code
  • 23.  Android SDK sudah terinstal  Android NDK sudah terinstal  Cygwin (Untuk windows sudah terinstal) Pastikan....
  • 24. C/C++ code dalam bentuk JNI
  • 29. Jadi apa yang didapat ?
  • 30.  Objective : Untuk mendapatkan gambaran proses sederhana C/C++, JNI dan Java dalam NDK Case 2 : Hitung Luas Persegi Panjang dengan NDK
  • 34.  Klik kanan di project lalu pilih add native support  Klik Finish pada dialog yang muncul Ndk enable
  • 35.  Klik kanan di project lalu pilih Make Targets  Create  Masukan nama “Target Name” pada dialog dan “OK” Kompilasi C/C++ code menjadi lib .so
  • 36.  Build .so dengan cara Make Target  Build, lalu pilih target yang sudah dibuat sebelumnya lalu Build pada dialog yang muncul
  • 38. Want more ? Lets’s write some codes. Thank you