Free Sample
+ Collection

Android Native Development Kit Cookbook

Cookbook
Feipeng Liu

Create Android apps using Native C/C++ with the expert guidance contained in this cookbook. From basic routines to advanced multimedia development, it helps you harness the full power of Android NDK.
$29.99
$49.99
RRP $29.99
RRP $49.99
eBook
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781849691505
Paperback346 pages

About This Book

  • Build, debug, and profile Android NDK apps
  • Implement part of Android apps in native C/C++ code
  • Optimize code performance in assembly with Android NDK

Who This Book Is For

Android developers who want to learn Android NDK programming, or develop multimedia and games in Android NDK will benefit from this book.

Table of Contents

Chapter 1: Hello NDK
Introduction
Setting up an Android NDK development environment in Windows
Setting up an Android NDK development environment in Ubuntu Linux
Setting up an Android NDK development environment in Mac OS
Updating Android NDK
Writing a Hello NDK program
Chapter 2: Java Native Interface
Introduction
Loading native libraries and registering native methods
Passing parameters and receiving returns in primitive types
Manipulating strings in JNI
Managing references in JNI
Manipulating classes in JNI
Manipulating objects in JNI
Manipulating arrays in JNI
Accessing Java static and instance fields in the native code
Calling static and instance methods from the native code
Caching jfieldID, jmethodID, and referencing data to improve performance
Checking errors and handling exceptions in JNI
Integrating assembly code in JNI
Chapter 3: Build and Debug NDK Applications
Introduction
Building an Android NDK application at the command line
Building an Android NDK application in Eclipse
Building an Android NDK application for different ABIs
Building Android NDK applications for different CPU features
Debugging an Android NDK application with logging messages
Debugging an Android NDK application with CheckJNI
Debugging an Android NDK application with NDK GDB
Debugging an Android NDK application with CGDB
Debugging an Android NDK application in Eclipse
Chapter 4: Android NDK OpenGL ES API
Introduction
Drawing 2D Graphics and applying transforms with the OpenGL ES 1.x API
Drawing 3D graphics and lighting up the scene with the OpenGL ES 1.x API
Mapping texture to 3D objects with the OpenGL ES 1.x API
Drawing 3D graphics with the OpenGL ES 2.0 API
Displaying graphics with EGL
Chapter 5: Android Native Application API
Introduction
Creating a native activity with the native_activity.h interface
Creating a native activity with the Android native app glue
Managing native windows at Android NDK
Detecting and handling input events at Android NDK
Accessing sensors at Android NDK
Managing assets at Android NDK
Chapter 6: Android NDK Multithreading
Introduction
Creating and terminating native threads at Android NDK
Synchronizing native threads with mutex at Android NDK
Synchronizing native threads with conditional variables at Android NDK
Synchronizing native threads with reader/writer locks at Android NDK
Synchronizing native threads with semaphore at Android NDK
Scheduling native threads at Android NDK
Managing data for native threads at Android NDK
Chapter 7: Other Android NDK API
Introduction
Programming with the jnigraphics library in Android NDK
Programming with the dynamic linker library in Android NDK
Programming with the zlib compression library in Android NDK
Programming audio with the OpenSL ES audio library in Android NDK
Programming with the OpenMAX AL multimedia library in Android NDK
Chapter 8: Porting and Using the Existing Libraries with Android NDK
Introduction
Porting a library as a shared library module with the Android NDK build system
Porting a library as a static library module with the Android NDK build system
Porting a library with its existing build system using the Android NDK toolchain
Using a library as a prebuilt library
Using a library in multiple projects with import-module
Porting a library that requires RTTI, exception, and STL support
Chapter 9: Porting an Existing Application to Android with NDK
Introduction
Porting a command-line executable to Android with an NDK build system
Porting a command-line executable to Android with an NDK standalone compiler
Adding GUI to a ported Android app
Using background threads at porting

What You Will Learn

  • Develop Android apps in C/C++ without a single line of Java
  • Program 2D/3D graphics with both OpenGL ES 1x and 2.0 in Android NDK
  • Write multi-threaded Android apps in Android NDK
  • Port existing C/C++ libraries and applications to Android with NDK
  • Develop multimedia Android apps with Android NDK

 

In Detail

Building Android applications would usually mean that you spend all of your time working in Java. There are however times when this is not the most efficient or best method for the application being built. This is where Android NDK comes in. Android NDK allows the developer to write in Native C/C++, giving you the power to reuse code and libraries and also, in most cases, increase the speed and efficiency of your application.

The "Android Native Development Kit Cookbook" will help you understand the development, building, and debugging of your native Android applications. We will discover and learn JNI programming and essential NDK APIs such as OpenGL ES, and the native application API. We will then explore the process of porting existing libraries and software to NDK. By the end of this book you will be able to build your own apps in NDK apps.

"Android Native Development Kit Cookbook" begins with basic recipes that will help you in the building and debugging of native apps, and JNI programming. The recipes cover various topics of application development with Android NDK such as OpenGL programming and Multimedia programming. We will begin with a simple recipe, Hello NDK, before moving on to cover advanced topics with recipes on OpenGL ES that focus on 2D and 3D graphics, as well as recipes that discuss working with NDK and external APIs. If you are looking for ways to make your application available in Android and take measures to boost your application’s performance, then this Cookbook is for you.

Authors

Read More