Pro Android C++ with the NDK [electronic resource] /
Cinar, Onur.author.
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.
Title Page; Copyright Page; Dedication Page; Contents at a Glance; Table of Contents; About the Author; About the Technical Reviewer; Preface; What You Will Learn; Downloading the Code; Contacting the Author; Chapter 1 Getting Started with C++ on Android; Microsoft Windows; Downloading and Installing the Java Development Kit on Windows; Downloading and Installing the Apache ANT on Windows; Downloading and Installing the Android SDK on Windows; Downloading and Installing the Cygwin on Windows; Downloading and Installing the Android NDK on Windows
Downloading and Installing the Eclipse on WindowsApple Mac OS X; Installing Xcode on Mac; Validating the Java Development Kit on Mac; Validating the Apache ANT on Mac; Validating the GNU Make; Downloading and Installing the Android SDK on Mac; Downloading and Installing the Android NDK on Mac; Downloading and Installing the Eclipse on Mac; Ubuntu Linux; Checking the GNU C Library Version; Enabling the 32-Bit Support on 64-Bit Systems; Downloading and Installing the Java Development Kit on Linux; Downloading and Installing the Apache ANT on Linux
Downloading and Installing the GNU Make on LinuxDownloading and Installing the Android SDK on Linux; Downloading and Installing the Android NDK on Linux; Downloading and Installing the Eclipse on Linux; Downloading and Installing the ADT; Installing the Android Platform Packages; Configuring the Emulator; Summary; Chapter 2 Exploring the Android NDK; Components Provided with the Android NDK; Structure of the Android NDK; Starting with an Example; Specifying the Android NDK Location; Importing the Sample Project; Adding Native Support to Project; Running the Project
Building from the Command LineExamining the Structure of an Android NDK Project; Build System; Android.mk; Building a Shared Library; Building Multiple Shared Libraries; Building Static Libraries; Sharing Common Modules using Shared Libraries; Sharing Modules between Multiple NDK Projects; Using Prebuilt Libraries; Building Standalone Executable; Other Build System Variables; Other Build System Function Macros; Defining New Variables; Conditional Operations; Application.mk; Using the NDK-Build Script; Troubleshooting Build System Problems; Summary
Chapter 3 Communicating with Native Code using JNIWhat is JNI?; Starting with an Example; Declaration of Native Methods; Loading the Shared Libraries; Implementing the Native Methods; C/C++ Header Generator: javah; Running from Command Line; Running from Eclipse IDE; Method Declarations; JNIEnv Interface Pointer; Instance vs. Static Methods; Data Types; Primitive Types; Reference Types; Operations on Reference Types; String Operations; New String; Converting a Java String to C String; Releasing Strings; Array Operations; New Array; Accessing the Array Elements; Operating on a Copy
Operating on Direct Pointer
Includes index.
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.
Mobile computing.
Application software.
Mobile Computing.
Computer Applications.