by Naman Dwivedi (@naman14) on Wednesday, 10 August 2016

+11
Vote on this proposal
Status: Confirmed & Scheduled
View session in schedule
Section
Workshop

Technical level
Advanced

Media

Abstract

Android NDK provides a powerful set of tools to build and run native code in Android apps. Often times, an Andorid app will need to execute code written in such native code languages like C/C++ for doing some computationally intensive tasks or for simply reusing code libraries written in these languages. In this workshop, I will be talking about setting up the NDK and how to port existing softwares written in C/C++ to Android and Java.

Outline

  1. Introduction and Setup -

    • When to use the NDK.

    • Setting up the NDK to work with Android Studio and Gradle

    • Introduction to Android.mk and Application.mk

  2. Compiling native code

    • Compiling native code to build shared libraries

    • Building libraries for different CPU architectures

  3. Java Native Interface (JNI)

    • JNI basics and syntax

    • Communication between native and Java code using JNI

  4. Porting native code libraries to Java

    • Creating a Java wrapper around a native library

    • Using the Java wrapper and native code as a seperate module or an Android library

Requirements

Laptop with Android Studio installed along with Android SDK and NDK (https://developer.android.com/ndk/downloads/index.html)

Speaker bio

Persuing B.Tech from Delhi College of Engineering and currently in 3rd year. I am an enthusiastic open source Android developer. I like to work on Core and UI/UX development. I have also been contributing to CyanogenMod and AOSP in my free time recently.
I am the lead Android developer of the winning team of the PMO Mobile app contest, a contest organised by Google and government to crowd-source the app for the Prime Minister’s office of India.
I am a top ranked developer (Ranked No. 1) on Github in terms of number of stars on Github projects in Android/Java. I have also been a speaker at DroidCon 2015 where I talked about Custom views and animations.