Book description
Android on x86: an Introduction to Optimizing for Intel® Architecture serves two main purposes. First, it makes the case for adapting your applications onto Intel's x86 architecture, including discussions of the business potential, the changing landscape of the Android marketplace, and the unique challenges and opportunities that arise from x86 devices. The fundamental idea is that extending your applications to support x86 or creating new ones is not difficult, but it is imperative to know all of the technicalities. This book is dedicated to providing you with an awareness of these nuances and an understanding of how to tackle them.
Second, and most importantly, this book provides a one-stop detailed resource for best practices and procedures associated with the installation issues, hardware optimization issues, software requirements, programming tasks, and performance optimizations that emerge when developers consider the x86 Android devices. Optimization discussions dive into native code, hardware acceleration, and advanced profiling of multimedia applications. The authors have collected this information so that you can use the book as a guide for the specific requirements of each application project.
This book is not dedicated solely to code; instead it is filled with the information you need in order to take advantage of x86 architecture. It will guide you through installing the Android SDK for Intel Architecture, help you understand the differences and similarities between processor architectures available in Android devices, teach you to create and port applications, debug existing x86 applications, offer solutions for NDK and C++ optimizations, and introduce the Intel Hardware Accelerated Execution Manager. This book provides the most useful information to help you get the job done quickly while utilizing best practices.
What you'll learn
The development-relevant differences between Android on ARM and Android on Intel x86
How to set up the SDK for an emulated Intel Android device
How to build the Android OS for the Intel Mobile Processor
How to create new x86 based Android applications, set up testing and performance tuning, and port existing Android applications to work with the x86 processor
How to debug problems they encounter when working on the x86 Android test platform
Intricacies of the Intel Hardware Accelerated Execution Manager. The reader will also gain significant insight into the OpenGL Android support.
Who this book is for
Android developers
Hardware designers who need to understand how Android will work on their processors
CIOs and CEOs of technology-based companies
IT staff who may encounter or need to understand the issues
New startup founders and entrepreneurs
Computer science students
Table of contents
- Title Page
- About ApressOpen
- Dedication
- Contents at a Glance
- Contents
- About the Authors
- Acknowledgments
- Introduction
- CHAPTER 1: History and Evolution of the Android OS
- CHAPTER 2: The Mobile Device and Operating System Landscape
- CHAPTER 3: Beyond the Mobile App—A Technology Foundation
- CHAPTER 4: Android Development—Business Overview and Considerations
-
CHAPTER 5: The Intel Mobile Processor
- Intel’s x86 Line
- Clash of the Mobile Titans: ARM versus Intel
- Intel’s Atom Line of Microprocessors
- Inside the Medfield System-on-Chip
- Architecture Differences between Intel’s Saltwell and ARM’s Cortex A15
- Intel Hyper-Threading Technology
- Application Compatibility: Native Development Kit and Binary Translator
- Overview
- CHAPTER 6: Installing the Android SDK for Intel Application Development
- CHAPTER 7: Creating and Porting NDK-Based Android Applications
-
CHAPTER 8: Debugging Android
- Prerequisites
- Application Debugging Using the Android Debug Bridge
- Intel Hardware Accelerated Execution Manager
- Running Android Within Oracle VirtualBox
- Debugging with GDB, the GNU Project Debugger
- The Intel Graphics Performance Analyzer (Intel GPA)
- System Debug of Android OS Running on an Intel Atom Processor
- Cross-Debug: Intel Atom Processor and ARM Architecture
- Considerations for Intel Hyper-Threading Technology
- SoC and Interaction of Heterogeneous Multi-Core
- Overview
-
CHAPTER 9: Performance Optimizations for Android Applications on x86
- Basic Concepts of Performance Optimization
- Methodology of Performance Optimizations
- Performance Optimization Approaches
- Performance Tuning with Intel VTune
- Intel Graphics Performance Analyzers
- Android Multithreaded Design
- Case Study: Intel GPA–Assisted Multithreaded Optimization for an Android Application
- Overview
- CHAPTER 10: x86 NDK and C/C++ Optimizations
-
CHAPTER 11: Using Intel Hardware Accelerated Execution Manager on Windows, Mac OS, and Linux to Speed Up Android on x86 Emulation
- Introduction
- Downloading Intel HAXM
- Downloading Through Android SDK Manager
- Downloading Manually
- Installing Intel HAXM on Windows
- Adjusting Intel HAXM Memory Allocation
- Intel Virtualization Technology (Intel VT-x) Capability
- Tips and Tricks
- Mac OS
- Adjusting Intel HAXM Memory Allocation
- Removing Intel HAXM
- Troubleshooting
- Intel Execute Disable (XD) Bit Capability Error
- Intel Virtualization Technology (VT-x) Capability
- Tips and Tricks
- Linux
- KVM Installation
- Start the AVD from Android SDK Directly from Terminal
- Start the AVD by AVD Manager in Eclipse
- Overview
-
CHAPTER 12: Performance Testing and Profiling Apps with Platform Tuning
- Start with Your First x86 Full Format Video Player
- How to Determine CPU Usage and Find Hotspots
- Use Yasm to Get the Best-Performing x86 Library
- Use SSE (Intel’s Streaming SIMD Extensions) to Optimize Color Space Transformation
- How to Display an Image Using the Android 4.0 NDK
- The Common Cross-Compile Script
- Testing and Profiling with Hardware Acceleration
- Using the Integration Layer (IL) for Hardware Encoding
- Use OpenMAX AL on Android 4.0
- Use a Powerful Media API: MediaCodec on Android 4.1
- Overview
-
APPENDIX A: References
- CHAPTER 1: History and Evolution of the Android OS
- CHAPTER 2: The Mobile Device and Operating System Landscape
- CHAPTER 3: Beyond the Mobile App—A Technology Foundation
- CHAPTER 4: Android Development—Business Overview and Considerations
- CHAPTER 5: The Intel Mobile Processor
- CHAPTER 6: Installing the Android SDK for Intel Application Development
- CHAPTER 7: Creating and Porting NDK-Based Android Applications
- CHAPTER 8: Debugging Android
- CHAPTER 9: Performance Optimizations for Android Applications on x86
- CHAPTER 10: x86 NDK and C/C++ Optimizations
- CHAPTER 11: Using Intel Hardware Accelerated Execution Manager on Windows, Mac OS, and Linux to Speed Up Android on x86 Emulation
- CHAPTER 12: Performance Testing and Profiling Apps with Platform Tuning
- Index
Product information
- Title: Android on x86: An Introduction to Optimizing for Intel® Architecture
- Author(s):
- Release date: January 2014
- Publisher(s): Apress
- ISBN: 9781430261308
You might also like
book
Linux® Kernel Primer, The: A Top-Down Approach for x86 and PowerPC Architectures
Learn Linux kernel programming, hands-on: a uniquely effective top-down approach The Linux is the definitive guide …
video
Android Open Conference 2011: Complete Video Compilation
Looking for the latest and best information for maximizing the power of the Android platform? This …
book
Efficient Android Threading
Multithreading is essential if you want to create an Android app with a great user experience, …
book
Linux® Programming by Example
“This is an excellent introduction to Linux programming. The topics are well chosen and lucidly presented. …