1. Trang chủ
  2. » Công Nghệ Thông Tin

pro android c with the ndk

404 3,6K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 404
Dung lượng 7,28 MB

Nội dung

COMPANION eBOOK Shelve in Mobile Computing User level: Intermediate-Advanced www.apress.com BOOKS FOR PROFESSIONALS BY PROFESSIONALS ® B uild better apps using Pro Android C++ with the NDK. Whether you’re a soft- ware professional interested in porting your existing native-code app to Android or already developing on the platform, this book shows you how to build sophisticated native apps with increased performance. Pro Android C++ with the NDK offers you an overview of Java Native Interface (JNI), Bionic API, POSIX threads and sockets, C++ support, native graphics and sound API, and NEON/SIMD optimization. With the help of a game app case study, you’ll learn how to: • Connect native code to the Java world using JNI • Auto-generate JNI code using SWIG • Multithread through POSIX threads • Network through POSIX sockets • Debug through logging, GDB, and the Eclipse Debugger • Analyze memory through Valgrind • Measure app performance through GProf • Optimize code through NEON/SIMD • Use the Eclipse IDE to devolope native code This advanced tutorial and professional reference gives you the knowledge and skills you need to port, develop, and employ C++ and other native code on the Android platform to run more graphically intense apps, more sophisticated native apps, and better performing apps in general. Pro Android C++ with the NDK Onur Cinar Building graphic-rich and better performing native applications Companion eBook Available Cinar Pro Android C++ with the NDK SOURCE CODE ONLINE www.it-ebooks.info For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.it-ebooks.info v Contents at a Glance About the Author ��������������������������������������������������������������������������������������������������������������� xix About the Technical Reviewer ������������������������������������������������������������������������������������������� xxi Preface ���������������������������������������������������������������������������������������������������������������������������� xxiii Chapter 1: Getting Started with C++ on Android ■ ���������������������������������������������������������������1 Chapter 2: Exploring the Android NDK ■ �����������������������������������������������������������������������������41 Chapter 3: Communicating with Native Code using JNI ■ ��������������������������������������������������67 Chapter 4: Auto-Generate JNI Code Using SWIG ■ ��������������������������������������������������������������95 Chapter 5: Logging, Debugging, and Troubleshooting ■ ���������������������������������������������������127 Chapter 6: Bionic API Primer ■ �����������������������������������������������������������������������������������������155 Chapter 7: Native Threads ■ ���������������������������������������������������������������������������������������������179 Chapter 8: POSIX Socket API: Connection-Oriented Communication ■ ����������������������������209 Chapter 9: POSIX Socket API: Connectionless Communication ■ �������������������������������������247 Chapter 10: POSIX Socket API: Local Communication ■ ���������������������������������������������������259 Chapter 11: C++ Support ■ �����������������������������������������������������������������������������������������������275 www.it-ebooks.info vi Contents at a Glance Chapter 12: Native Graphics API ■ �����������������������������������������������������������������������������������285 Chapter 13: Native Sound API ■ ���������������������������������������������������������������������������������������335 Chapter 14: Profiling and NEON Optimization ■ ���������������������������������������������������������������363 Index ���������������������������������������������������������������������������������������������������������������������������������381 www.it-ebooks.info 1 Chapter 1 Getting Started with C++ on Android Needless to say, exploring and practicing are the best methods for learning. Having a fully functional development environment ready at the very beginning of this book will enable you to explore and experiment with the material while working through the chapters. The Android C++ development environment is mainly formed by the following components: Android Software Development Kit (SDK) Android Native Development Kit (NDK) Android Development Tools (ADT) Plug-In for Eclipse Java Development Kit (JDK) Apache ANT Build System GNU Make Build System Eclipse IDE This chapter will provide step-by-step instructions for setting up the proper Android C++ development environment. Android development tools are provided for the major operating systems: Microsoft Windows Apple Mac OS X Linux Since the requirements and the installation procedure vary depending on the operating system, the following sections will walk you through the steps for setting up the Android C++ development environment based on the operating system. You can skip over the ones that don’t apply to you. www.it-ebooks.info 2 CHAPTER 1: Getting Started with C++ on Android Microsoft Windows Android development tools require Windows XP (32-bit only), Vista, or Windows 7. In this section, you will be downloading and installing the following components: Java JDK 6 Apache ANT Build System Android SDK Cygwin Android NDK Eclipse IDE Figure 1-1. Oracle JDK 6 Download button Note Android development tools only support Java compiler compliance level 5 or 6. Although the later versions of JDK can be configured to comply with those levels, using JDK 6 is much simpler and less prone to errors. Multiple JDK flavors are supported by Android development tools, such as IBM JDK, Open JDK, and Oracle JDK (formerly known as Sun JDK). In this book, it is assumed that Oracle JDK will be used since it supports a broader range of platforms. In order to download Oracle JDK, navigate to www.oracle.com/technetwork/java/javase/downloads/index.html and follow these steps: 1. Click the JDK 6 download button, as shown in Figure 1-1. At the time of this writing the latest version of Oracle JDK 6 is Update 33. www.it-ebooks.info 3CHAPTER 1: Getting Started with C++ on Android 2. Clicking the Oracle JDK 6 Download button takes you to a page listing the Oracle JDK 6 installation packages for supported platforms. 3. Check “Accept License Agreement” and download the installation package for Windows x86, as shown in Figure 1-2. Figure 1-2. Download Oracle JDK 6 for Windows x86 Now you can install. The Oracle JDK 6 installation package for Windows comes with a graphical installation wizard. The installation wizard will guide you through the process of installing JDK. The installation wizard will first install the JDK, and then the JRE. During the installation process, the wizard will ask for the destination directories, as well as the components to be installed. You can continue with the default values here. Make a note of the installation directory for the JDK part, shown in Figure 1-3. Figure 1-3. Oracle JDK 6 installation directory www.it-ebooks.info 4 CHAPTER 1: Getting Started with C++ on Android 4. Clicking the Environment Variables button will launch the Environment Variables dialog. The dialog is separated into two parts: the top one is for the user and the bottom is for the system. 5. Click the New button in the system variables section to define a new environment variable, as shown in Figure 1-5. The JDK will be ready to use upon completion of the installation process. The installation wizard does not automatically add the Java binary directory into the system executable search path, also known as the PATH variable. This needs to be done manually as the last step of the JDK installation. 1. Choose Control Panel from the Start button menu. 2. Click the System icon to launch the System Properties dialog. 3. Switch to the Advanced tab and click the Environment Variables button, as shown in Figure 1-4. Figure 1-4. System Properties dialog www.it-ebooks.info 5CHAPTER 1: Getting Started with C++ on Android 6. Set the variable name to JAVA_HOME and the variable value to the Oracle JDK installation directory that you noted during the Oracle JDK installation, as shown in Figure 1-6. Figure 1-6. New JAVA_HOME environment variable Figure 1-5. Environment Variables dialog 7. Click OK button to save the environment variable. www.it-ebooks.info 6 CHAPTER 1: Getting Started with C++ on Android 8. From the list of system variables, double-click the PATH variable and append ;%JAVA_HOME%\bin to the variable value, as shown in Figure 1-7. Figure 1-8. Validating Oracle JDK installation Appending Oracle JDK binary path to system PATH variable Start ➤ Accessories ➤ . Using the command prompt, execute javac –version. If the installation was 1-8. Downloading and Installing the Apache ANT on Windows Apache ANT is a command-line build tool that whose mission is to drive any type of process that can be described in terms of targets and tasks. Android development tools require Apache ANT version 1.8 or later for the build process to function. At the time of this writing, the latest version of Apache ANT is 1.8.4. In order to download Apache ANT, navigate to http://ant.apache.org/bindownload.cgi and download the installation package in ZIP format, as shown in Figure 1-9. Then follow these steps: Figure 1-9. Apache ANT download package in ZIP format www.it-ebooks.info [...]... Started with C+ + on Android   Choosing Cygwin installation directory 3 The next dialog will ask you select the local package directory This is the temporary directory that will be used to download the packages Keep the default value and click the Next button 4 In the next dialog, you will select the Internet connection type Unless you need to use a proxy to access the Internet, keep the default selection... choose Extract All from the context menu to launch the Extract Compressed Folder wizard 3 Using the Browse button, choose the destination directory A dedicated empty destination directory is not needed since the ZIP file already contains a sub directory called eclipse that holds the Eclipse files 4 Click the Extract button to install Eclipse 5 In order to make Eclipse easily accessible, go to the Eclipse... directory A dedicated empty destination directory is not needed since the ZIP file already contains a sub directory called android- ndk- r8 that contains the Android NDK files Make a note of the destination directory 3 Click the Extract button to install Android NDK The binary paths of Android SDK can be appended to the system executable search path by following these steps: 1 Again, launch the Environment... com/tools/sdk /ndk/ index.html and go to the Downloads section shown in Figure 1-24 Then follow these steps: Figure 1-24.  Android NDK download page 1 Android NDK installation package is provided as a ZIP archive When the download completes, right-click the ZIP file and choose Extract All from the context menu to launch the Extract Compressed Folder wizard 2 Using the Browse button, choose the destination directory... since the ZIP file already contains a sub directory called apache-ant-1.8.4 that holds the Apache ANT files In this book, the C: \android directory will be used as the root directory to hold the Android development tools and dependencies Make a note of the destination directory Figure 1-10.  Extracting Apache ANT ZIP archive 4 Click the Extract button to install Apache ANT Upon installing the Apache... “Direct Connection” and click the Next button to proceed 5 The installer will ask you to select a download site From the list of mirror sites, either chooses a random one or the one closest geographically to your location Then click the Next button 6 Cygwin is not a single application; it is a large software distribution containing multiple applications In the next dialog, the Cygwin installer will provide... Properties 2 Click the New button in the system variables section to define a new environment variable Set the variable name to ANDROID_ NDK_ HOME and the variable value to the Android NDK installation directory (such as C: \android\ android -ndk- r8), as shown in Figure 1-25 Figure 1-25.  ANDROID_ NDK_ HOME environment variable www.it-ebooks.info 16 CHAPTER 1: Getting Started with C+ + on Android 3 Click the. .. with C+ + on AndroidAndroid SDK  Android NDK  Eclipse IDE Installing Xcode on Mac Xcode provides developer tools for application development on the OS X platform Xcode can be found at Mac OS X installation media or through the Mac App Store free of charge Navigate to https://developer.apple.com/xcode/ for more information Starting the Xcode installer will take you 1 Approve the licenses 2 Select... Getting Started with C+ + on Android Downloading and Installing the Android NDK on Mac Android Native Development Kit (NDK) is a companion tool to Android SDK that lets you develop Android applications using native programming languages such as C+ + The Android NDK provides header files, libraries, and cross-compiler toolchains At the time of this writing, the latest version for Android NDK is R8 In order...CHAPTER 1: Getting Started with C+ + on Android 1 The Windows operating system comes with native support for ZIP files When the download completes, right-click the ZIP file 2 Choose Extract All from the context menu to launch the Extract Compressed Folder wizard 3 Using the Browse button, choose the destination directory, as shown in Figure 1-10 A dedicated empty destination directory is not . already contains a sub directory called android- ndk- r8 that contains the Android NDK files. Make a note of the destination directory. 3. Click the Extract button to install Android NDK. The binary. When the download completes, right-click the ZIP file. 2. Choose Extract All from the context menu to launch the Extract Compressed Folder wizard. 3. Using the Browse button, choose the destination. platforms. Click the link for www.it-ebooks.info 9CHAPTER 1: Getting Started with C+ + on Android 6. When the download completes, right-click the ZIP file and choose Extract All from the context

Ngày đăng: 28/04/2014, 16:44