Apress

Pro Android C++ with the NDK

By Onur Cinar

Pro Android C++ with the NDK Cover Image

Pro Android C++ with the NDK (Native Development Kit) is an advanced tutorial and professional reference for experienced app developers now porting, developing or employing C++ and other native code to integrate into the Android platform to run more sophisticated native apps with increased performance.

Full Description

  • ISBN13: 978-1-4302-4827-9
  • 416 Pages
  • User Level: Intermediate to Advanced
  • Publication Date: December 11, 2012
  • Available eBook Formats: EPUB, MOBI, PDF
  • Print Book Price: $49.99
  • eBook Price: $34.99
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full Description

Android is one of the major players in the mobile phone market. Android is a mobile platform that is built on the top of Linux operating system. The native-code support on Android offers endless opportunities to application developers, not limited the functionality that is provided by Android framework. Pro Android C++ with the NDK is an advanced tutorial and professional reference for today's more sophisticated app developers now porting, developing or employing C++ and other native code to integrate into the Android platform to run sophisticated native apps and better performing apps in general. Using a game app case study, this book explores tools for troubleshooting, debugging, analyzing memory issues, unit testing, unit test code coverage, performance measurement, on native applications, as well as integrating  the Android NDK toolchain into existing Autoconf, Makefile, CMake, or JAM based build systems. Pro Android C++ with the NDK also covers the following:
·        

  • The Android platform, and getting up to speed with the Android NDK, and exploring the APIs that are provided in native space.
  • An overview of Java Native Interface (JNI), and auto-generating JNI code through Simplified Wrapper and Interface Generator (SWIG).
  • An introduction to Bionic API, native networking. native multithreading, and the C++ Standard Template Library (STL) support.
  • Native graphics and sound using JNI Graphics, OpenGL ES, and OpenSL ES.
  • Debugging and troubleshooting native applications using Logging, GNU Debugger (GDB), Eclipse Debugger, Valgrind, strace, and other tools.
  • Profiling native code using GProf to identify performance bottlenecks, and NEON/SIMD optimization from an advanced perspective, with tips and recommendations.

What you’ll learn

  • What is the Android platform, and getting up to speed with the Android NDK.
  • Using the Eclipse IDE to streamline developing native applications
  • How to use Java Native Interface (JNI) to connect native code to Java world.
  • Auto-generate JNI code using Simplified Wrapper and Interface Generator (SWIG).
  • Introduction to Bionic API
  • Networking through POSIX sockets
  • Developing multithreaded applications using POSIX Threads, and Java Threads.
  • Debug through Logging, GNU Debugger (GDB), and Eclipse Debugger
  • Analyze memory issues through Valgrind
  • C++ Support and Standard Template Library STL
  • Native Graphics through JNI Graphics and OpenGL ES
  • Native Sound through OpenSL ES
  • Profiling the native code using GProf to identify performance bottlenecks
  • Optimize code using SIMD/NEON

Who this book is for

This book is for software professionals who are interested in leveraging the Android NDK to port their existing native-code app, such as C++, to the Android platform, as well as existing Android developers who are interested in improving their apps overall performance by utilizing native-code.  

Table of Contents

Table of Contents

  1. Getting Started with C++ on Android   
  2. Exploring the Android NDK   
  3. Communicating with Native Code using JNI    
  4. Auto-Generate JNI Code Using SWIG  
  5. Logging, Debugging, and Troubleshooting    
  6. Bionic API Primer  
  7. Native Threads 
  8. POSIX Socket API: Connection Oriented Communication 
  9. POSIX Socket API: Connetionless Communication 
  10. POSIX Socket API: Local Communication
  11. C++ Support 
  12. Native Graphics API
  13. Sound Native API
  14. Profiling and NEON Optimization
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.

Errata

If you think that you've found an error in this book, please let us know about it. You will find any confirmed erratum below, so you can check if your concern has already been addressed.

* Required Fields

No errata are currently published