Chapter 1: Setting Up Your Environment
Getting started with Android development
Time for action – preparing Windows for Android development
Time for action – installing Android SDK and NDK on Windows
Time for action – preparing OS X for Android development
Time for action – installing Android SDK and NDK on OS X
Time for action – preparing Ubuntu for Android development
Time for action – installing Android SDK and NDK on Ubuntu
Time for action – installing Eclipse with ADT on your OS
Time for action – creating an Android virtual device
Time for action – setting up an Android device
Chapter 2: Starting a Native Android Project
Building NDK sample applications
Time for action – compiling and deploying San Angeles sample
Creating your first native Android project
Time for action – creating a native Android project
Interfacing Java with C/C++
Time for action – calling C code from Java
Debugging native Android applications
Time for action – debugging a native Android application
Analyzing native crash dumps
Time for action – analyzing a native crash dump
Setting up a Gradle project to compile native code
Time for action – creating a native Android project
Time for action – using your own Makefiles with Gradle
Chapter 3: Interfacing Java and C/C++ with JNI
Initializing a native JNI library
Time for action – defining a simple GUI
Time for action – initializing the native store
Converting Java strings in native code
Time for action – handling strings in the native store
Passing Java primitives to native code
Time for action – handling primitives in the native store
Referencing Java objects from native code
Time for action – saving references to Objects in native Store
Time for action – handling Java arrays in native Store
Raising and checking Java exceptions
Time for action – raising & catching exceptions in native Store
Chapter 4: Calling Java Back from Native Code
Calling Java back from native code
Time for action – determining JNI method signatures
Time for action – calling back Java from native code
Time for action – allocating an object with JNI
Time for action – running and synchronizing a thread
Processing bitmaps natively
Time for action – decoding a camera's feed
Time for action – processing pictures with the Bitmap API
Chapter 5: Writing a Fully Native Application
Creating a native Activity
Time for action – creating a basic native Activity
Time for action – stepping the event loop
Time for action – handling Activity events
Accessing window surface natively
Time for action – displaying raw graphics
Time for action – animating graphics with a timer
Chapter 6: Rendering Graphics with OpenGL ES
Time for action – initializing OpenGL ES
Time for action – clearing and swapping buffers
An insight into the OpenGL pipeline
Loading textures using the Asset manager
Time for action – reading assets with the Asset manager
Time for action – compiling and embedding libpng module
Time for action – loading a PNG image
Time for action – generating an OpenGL texture
Time for action – initializing OpenGL ES
Rendering particle effects
Time for action – rendering a star field
Adapting graphics to various resolutions
Time for action – adapting resolution with off-screen rendering
Chapter 7: Playing Sound with OpenSL ES
Time for action – creating OpenSL ES engine and output
Time for action – playing background music
Time for action – creating and playing a sound buffer queue
Chapter 8: Handling Input Devices and Sensors
Interacting with touch events
Time for action – handling touch events
Detecting keyboard, D-Pad, and Trackball events
Time for action – handling keyboard, D-Pad, and trackball events natively
Time for action – handling accelerometer events
Time for action – turning an Android device into a Joypad
Chapter 9: Porting Existing Libraries to Android
Activating the Standard Template Library
Time for action – activating GNU STL in DroidBlaster
Time for action – read files with STL stream
Time for action – using STL containers
Time for action – compiling Box2D on Android
Time for action – running Box2D physics engine
Prebuilding Boost on Android
Time for action – prebuilding Boost static library
Time for action – compiling an executable linked to Boost
Mastering module Makefiles
Chapter 10: Intensive Computing with RenderScript
Executing a predefined Intrinsic
Time for action – creating a Java UI
Time for action – running RenderScript Blur intrinsic
Time for action – writing a luminance threshold filter
Combining scripts together
Time for action – combining Intrinsics and scripts together
Chapter 11: Afterword
This is just the beginning