Getting started with Android development
Time for action — preparing Windows for Android development
Installing Android development kits on Windows
Time for action — installing Android SDK and NDK on Windows
Time for action — preparing Mac OS X for Android development
Installing Android development kits on Mac OS X
Time for action — installing Android SDK and NDK on Mac OS X
Time for action — preparing Ubuntu Linux for Android development
Installing Android development kits on Linux
Time for action — installing Android SDK and NDK on Ubuntu
Setting up the Eclipse development environment
Time for action — installing Eclipse
Time for action — creating an Android virtual device
Developing with an Android device on Windows and Mac OS X
Time for action — setting up your Android device on Windows and Mac OS X
Developing with an Android device on Linux
Time for action — setting up your Android device on Ubuntu
Troubleshooting a development device
Creating, Compiling, and Deploying Native Projects
Compiling and deploying NDK sample applications
Time for action — compiling and deploying the hellojni sample
Creating your first Android project using eclipse
Time for action — initiating a Java project
Time for action — calling C code from Java
Compiling native code from Eclipse
Time for action — creating a hybrid Java/C/C++ project
Interfacing Java and C/C++ with JNI
Time for action — building a native key/value store
Referencing Java objects from native code
Time for action — saving a reference to an object in the Store
Throwing exceptions from native code
Time for action — raising exceptions from the Store
Time for action — saving a reference to an object in the Store
Calling Java Back from Native Code
Synchronizing Java and native threads
Time for action — running a background thread
Calling Java back from native code
Time for action — invoking Java code from a native thread
Time for action — decoding camera feed from native code
Writing a Fully-native Application
Time for action — creating a basic native activity
Time for action — handling activity events
Accessing window and time natively
Time for action — displaying raw graphics and implementing a timer
Rendering Graphics with OpenGL ES
Time for action — initializing OpenGL ES
Reading PNG textures with the asset manager
Time for action — loading a texture in OpenGL ES
Time for action — drawing a Ship sprite
Rendering a tile map with vertex buffer objects
Time for action — drawing a tile-based background
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
Handling Input Devices and Sensors
Time for action — handling touch events
Detecting keyboard, D-Pad, and Trackball events
Time for action — handling keyboard, D-Pad, and trackball, natively
Time for action — turning your device into a joypad
Porting Existing Libraries to Android
Developing with the Standard Template Library
Time for action — embedding GNU STL in DroidBlaster
Time for action — embedding Boost in DroidBlaster
Porting third-party libraries to Android
Time for action — compiling Box2D and Irrlicht with the NDK
Time for action — simulating physics with Box2D
Running a 3D engine on Android
Time for action — rendring 3D graphics with Irrlicht
Time for action — debugging DroidBlaster
Time for action — analysing a crash dump