SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Detecting Hacks: Anomaly Detection on Networking Data
Detecting Hacks: Anomaly Detection on Networking DataDetecting Hacks: Anomaly Detection on Networking Data
Detecting Hacks: Anomaly Detection on Networking DataDataWorks Summit
 
NABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerNABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerDiegoMoussallem
 
Tarzan of the apes 1
Tarzan of the apes 1Tarzan of the apes 1
Tarzan of the apes 1LUIS NARBONA
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...Luis Beltran
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin OverviewEkta Raj
 
Container Security
Container SecurityContainer Security
Container SecuritySalman Baset
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSeProsima
 
Lightning-fast Analytics for Workday transactional data
Lightning-fast Analytics for Workday transactional dataLightning-fast Analytics for Workday transactional data
Lightning-fast Analytics for Workday transactional dataPavel Hardak
 
Using gcov and lcov
Using gcov and lcovUsing gcov and lcov
Using gcov and lcovtest test
 
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...Servizi a rete
 
DevSecOps for you Full Stack
DevSecOps for you Full StackDevSecOps for you Full Stack
DevSecOps for you Full StackRon Nixon
 
Successfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudSuccessfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudAmazon Web Services
 
Ibm pure data system for analytics n3001
Ibm pure data system for analytics n3001Ibm pure data system for analytics n3001
Ibm pure data system for analytics n3001Abhishek Satyam
 
Advanced Components on Top of L4Re
Advanced Components on Top of L4ReAdvanced Components on Top of L4Re
Advanced Components on Top of L4ReVasily Sartakov
 
Practical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief KarfiantoPractical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief Karfiantoidsecconf
 
Software Engineering Management Framework - Building an Awesome Software Engi...
Software Engineering Management Framework - Building an Awesome Software Engi...Software Engineering Management Framework - Building an Awesome Software Engi...
Software Engineering Management Framework - Building an Awesome Software Engi...Jonathan Fulton
 
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...Igor Rosa Macedo
 
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...Mathias Wien
 

Tendances (20)

Detecting Hacks: Anomaly Detection on Networking Data
Detecting Hacks: Anomaly Detection on Networking DataDetecting Hacks: Anomaly Detection on Networking Data
Detecting Hacks: Anomaly Detection on Networking Data
 
NABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF VerbalizerNABU - Multilingual Graph-based Neural RDF Verbalizer
NABU - Multilingual Graph-based Neural RDF Verbalizer
 
Tarzan of the apes 1
Tarzan of the apes 1Tarzan of the apes 1
Tarzan of the apes 1
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
 
Container Security
Container SecurityContainer Security
Container Security
 
Micro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROSMicro XRCE-DDS and micro-ROS
Micro XRCE-DDS and micro-ROS
 
Lightning-fast Analytics for Workday transactional data
Lightning-fast Analytics for Workday transactional dataLightning-fast Analytics for Workday transactional data
Lightning-fast Analytics for Workday transactional data
 
Using gcov and lcov
Using gcov and lcovUsing gcov and lcov
Using gcov and lcov
 
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...
Dal C.I.P.P. al RAPL, i sistemi di risanamento senza scavo dai piccoli ai gra...
 
DevSecOps for you Full Stack
DevSecOps for you Full StackDevSecOps for you Full Stack
DevSecOps for you Full Stack
 
Successfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the CloudSuccessfully Implementing DEV-SEC-OPS in the Cloud
Successfully Implementing DEV-SEC-OPS in the Cloud
 
Ibm pure data system for analytics n3001
Ibm pure data system for analytics n3001Ibm pure data system for analytics n3001
Ibm pure data system for analytics n3001
 
DevOps and Cloud
DevOps and CloudDevOps and Cloud
DevOps and Cloud
 
Advanced Components on Top of L4Re
Advanced Components on Top of L4ReAdvanced Components on Top of L4Re
Advanced Components on Top of L4Re
 
Practical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief KarfiantoPractical DevSecOps - Arief Karfianto
Practical DevSecOps - Arief Karfianto
 
Software Engineering Management Framework - Building an Awesome Software Engi...
Software Engineering Management Framework - Building an Awesome Software Engi...Software Engineering Management Framework - Building an Awesome Software Engi...
Software Engineering Management Framework - Building an Awesome Software Engi...
 
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
SonarQube - Como avaliar seus fornecedores e garantir a qualidade de suas ent...
 
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...
ICME 2016 - High Efficiency Video Coding - Coding Tools and Specification: HE...
 
Automated Deployments
Automated DeploymentsAutomated Deployments
Automated Deployments
 

Similaire à Pengenalan android ndk

Ebook Workshop Dasar android
Ebook Workshop Dasar androidEbook Workshop Dasar android
Ebook Workshop Dasar androidSaeful Bahri
 
Android application development
Android application developmentAndroid application development
Android application developmentGoogle
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)eltwordy
 
Pengenalan dasar android programming
Pengenalan dasar android programming Pengenalan dasar android programming
Pengenalan dasar android programming Mdeno Akbar
 
Pengenalan dasar android Programming
Pengenalan dasar android ProgrammingPengenalan dasar android Programming
Pengenalan dasar android ProgrammingAlbertz Ace-Red
 
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 rudaFajarudin Noer
 
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 singkatHibaten Wafiroh
 
Perbandingan bahasa c# dan sejarah singkat
Perbandingan bahasa c# dan sejarah singkatPerbandingan bahasa c# dan sejarah singkat
Perbandingan bahasa c# dan sejarah singkatHibaten Wafiroh
 
Pertemuan1 installasi eclipse
Pertemuan1 installasi eclipsePertemuan1 installasi eclipse
Pertemuan1 installasi eclipseTri Sugihartono
 
Introduction: AndroidX
Introduction: AndroidXIntroduction: AndroidX
Introduction: AndroidXFridaPutriassa
 
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...shabilla6
 
Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)dikwan_moeis
 
Pertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docxPertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docxHendroGunawan8
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming TutorialDimas Prawira
 
Pemrograman android
Pemrograman androidPemrograman android
Pemrograman androidMdeno Akbar
 

Similaire à 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 programming Pengenalan dasar android programming
Pengenalan dasar android programming
 
Pengenalan dasar android Programming
Pengenalan dasar android ProgrammingPengenalan 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
 

Plus de Google

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)Google
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)Google
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajarGoogle
 
Layout, listview, gridview, and adapter
Layout, listview, gridview, and adapterLayout, listview, gridview, and adapter
Layout, listview, gridview, and adapterGoogle
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Local developer program
Local developer programLocal developer program
Local developer programGoogle
 

Plus 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
 

Dernier

Metode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfMetode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfArvinThamsir1
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppttaniaalda710
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxRemigius1984
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfYogiCahyoPurnomo
 
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdfAnonymous6yIobha8QY
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfMODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfihsan386426
 

Dernier (8)

Metode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfMetode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdf
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptx
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
 
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfMODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
 

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