Chapter 1, Hello NDK, covers how to set up an Android NDK development environment in
Windows, Linux, and MacOS. We will write a "Hello NDK" application at the end of the chapter.
Chapter 2, Java Native Interface, describes the usage of JNI in detail. We will call native
methods from the Java code and vice versa.
Chapter 3, Build and Debug NDK Applications, demonstrates building native code from a
command line and Eclipse IDE. We will also look at debugging native code with gdb, cgdb,
eclipse, and so on.
Chapter 4, Android NDK OpenGL ES API, illustrates OpenGL ES 1.x and 2.0 APIs. We will cover
2D drawing, 3D graphics, texture mapping, EGL, and so on.
Chapter 5, Android Native Application API, discusses Android native application APIs, including
managing native windows, accessing sensors, handling input events, managing assets, and
so on. We will see how to write a pure native app in this chapter.
Chapter 6, Android NDK Multithreading, depicts Android multithreading API. We will cover
creating and terminating native threads, various thread synchronization techniques
(mutex, conditional variables, semaphore, and reader/writer lock), thread scheduling,
and thread data management.
Chapter 7, Other Android NDK API, discusses a few more Android libraries, including
jnigraphics, the dynamic linker library, the zlib compression library, the OpenSL
ES library, and the OpenMAX AL library.
Chapter 8, Porting and Using Existing Libraries with Android NDK, describes various
techniques of porting and using existing C/C++ libraries with NDK. We will port the boost
library at the end of the chapter.
Chapter 9, Porting Existing Applications to Android with NDK, provides a step-by-step guide
for porting an existing application to Android with NDK. We use an open source image resizing
program as an example.
Bonus Chapter 1, Developing Multimedia Applications with NDK, demonstrates how to write
multimedia applications with the ffmpeg library. We will port the ffmpeg library and use the
library APIs to write a frame grabber application.
Bonus Chapter 2, Developing Games with NDK, discusses writing games with NDK. We will
port the Wolfenstein 3D game to show how to set up game display, add game control, and
enable audio effects for a game.