Book Image

Mastering Android NDK

Book Image

Mastering Android NDK

Overview of this book

Android NDK is used for multimedia applications that require direct access to system resources. NDK is also the key for portability, which in turn allows a reasonably comfortable development and debugging process using familiar tools such as GCC and Clang toolchains. This is a hands-on guide to extending your game development skills with Android NDK. The book takes you through many clear, step-by-step example applications to help you further explore the features of Android NDK and some popular C++ libraries and boost your productivity by debugging the development process. Through the course of this book, you will learn how to write portable multi-threaded native code, use HTTP networking in C++, play audio files, use OpenGL ES 3, and render high-quality text. Each chapter aims to take you one step closer to building your application. By the end of this book, you will be able to create an engaging, complete gaming application.
Table of Contents (17 chapters)
Mastering Android NDK
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Curl


The libcurl library http://curl.haxx.se/libcurl is a free and easy to use client-side URL transfer library. It is a de facto standard for native applications, which deal with numerous networking protocols. Linux and OS X users enjoy having the library on their system, and a possibility to link against it using the -lcurl switch. Compilation of libcurl for Android on a Windows host requires some additional steps to be done. We explain them here.

The libcurl library build process is based on autoconf; we will need to generate the curl_config.h file before actually building the library. Run the configure script from the folder containing the unpacked libcurl distribution package. Cross-compilation command-line flags should be set to:

--host=arm-linux CC=arm-eabi-gcc

The -I parameter of the CPPFLAGS variable should point to the /system/core/include subfolder of your NDK folder, in our case:

CPPFLAGS="-I D:/NDK/system/core/include"

The libcurl library can be customized in many ways. We use...