Android on X86 : An Introduction to Optimizing for Intel Architecture.

Bibliographic Details
Main Author: Krajci, Iggy.
Other Authors: Cummings, Darren.
Format: eBook
Language:English
Published: Berkeley, CA : Apress L. P., 2013.
Edition:1st ed.
Subjects:
Online Access:Click to View
Table of Contents:
  • Intro
  • Contents at a Glance
  • Contents
  • About the Authors
  • Acknowledgments
  • Introduction
  • Chapter 1: History and Evolution of the Android OS
  • Origins
  • The First Distribution of Android
  • Open Source Apache License
  • What Is Android?
  • Applications
  • Application Frameworks
  • Native Libraries
  • Surface Manager
  • SQLite
  • WebKit
  • OpenGL/ES
  • Android Runtime
  • Linux Kernel
  • The Open Handset Alliance
  • Android Open Source Project
  • Astro (1.0)
  • Cupcake (1.5)
  • Donut (1.6)
  • Éclair (2.0/2.1)
  • Froyo (2.2.x)
  • Gingerbread (2.3.x)
  • Honeycomb (3.x)
  • Ice Cream Sandwich (4.0.x)
  • Jelly Bean (4.1.x)
  • KitKat (4.4.x)
  • Overview
  • Chapter 2: The Mobile Device and Operating System Landscape
  • Competition in the Mobile Space
  • iOS
  • Overview
  • Applications
  • Platforms
  • BlackBerry
  • Windows Phone
  • Symbian
  • MeeGo
  • Before Android
  • Smartphone History
  • Simon Personal Communicator
  • Nokia 9000 (Nokia Communicator)
  • Kyocera 6035
  • BlackBerry 5810
  • The Mobile Market: Success and Failure
  • Motorola i1
  • Droid X
  • BlackBerry Torch
  • iPhone
  • The Mobile Market: Trends
  • Location
  • Current Mobile Uses
  • Commerce
  • Overview
  • Chapter 3: Beyond the Mobile App-A Technology Foundation
  • Connected Devices
  • Home Computing
  • Automotive
  • Digital Entertainment
  • Special Requirements
  • Ruggedization
  • Ingress Protection Rating
  • Medical
  • Virtualized
  • Secure Communications
  • Type 1
  • Federal Information Processing Standard
  • The Cyber Fiber of Our Connected World
  • Cellular Networks
  • Open Mobile Alliance
  • Wireless Communications
  • Wi-Fi
  • Bluetooth
  • Mobile Interfaces
  • Touch Screens
  • Capacitive
  • Resistive
  • Vibration Motors
  • LED Lights
  • Accelerometer
  • Tilt Sensor
  • Hardware Buttons
  • Overview
  • Chapter 4: Android Development- Business Overview and Considerations.
  • The Android Market Share
  • How Android Makes Money
  • Why Android Is Successful
  • Free
  • Open Source
  • Customization
  • Application Base
  • Hardware Choices
  • Device Price
  • Legacy and Future Platform Support
  • Legacy Support
  • Future Support
  • Why x86 and Android Are Right for You
  • Cross Compatibility
  • Barrier to Entry
  • Security of Android
  • Application Security
  • Platform Security
  • Licensing
  • Android Licensing Cost
  • Application Licensing Cost
  • Physical Development Costs
  • Software Development Systems
  • Android Testing Systems
  • Overview
  • Chapter 5: The Intel Mobile Processor
  • Intel's x86 Line
  • History
  • Strengths and Weaknesses
  • Business Model
  • Clash of the Mobile Titans: ARM versus Intel
  • ARM
  • History
  • Strengths and Weaknesses
  • Business Model
  • Future
  • Intel's Atom Line of Microprocessors
  • Intel Atom Evolution
  • Intel Atom Security
  • Intel Atom Features
  • Android and the Atom
  • Inside the Medfield System-on-Chip
  • Zooming In on the Saltwell CPU Architecture
  • Architecture Differences between Intel's Saltwell and ARM's Cortex A15
  • Architecture
  • Integer Pipelines
  • Instruction Sets
  • Multi-Core/Thread Support
  • Security Technology
  • Intel Hyper-Threading Technology
  • Application Compatibility: Native Development Kit and Binary Translator
  • Overview
  • Chapter 6: Installing the Android SDK for Intel Application Development
  • Preparing for the SDK Installation
  • Supported Operating Systems
  • Hardware Requirements
  • Installing the JDK
  • Installing Eclipse
  • Installing Apache Ant (Optional)
  • Downloading the SDK Starter Package and Adding SDK Components
  • Setting Up Eclipse to work with the SDK
  • Installing the ADT Plug-in for Eclipse
  • Configuring the ADT Plug-in
  • Overview of Android Virtual Device Emulation
  • Which Emulator Should You Use
  • Why Use the Emulator.
  • Building an Emulator Image
  • Setting Up the SDK to Use x86 Emulator Images
  • Key Gingerbread Features
  • Battery Usage Stats
  • Task Manager
  • Cut and Paste Text
  • Ice Cream Sandwich Emulation
  • Prerequisites
  • Downloading Through the Android SDK Manager
  • Using the System Image
  • Downloading Manually
  • CPU Acceleration
  • GPU Acceleration
  • Overview
  • Chapter 7: Creating and Porting NDK-Based Android Applications
  • JNI and NDK Introduction
  • JNI Introduction
  • Java Methods and Their Corresponding Relationship with the C Function Prototype Java
  • Java and C Data Type Mapping
  • NDK Introduction
  • NDK Installation
  • Android NDK Installation
  • Install Cygwin
  • Install CDT
  • NDK Examples
  • Using the Command-Line Method to Generate a Library File
  • Create an Android App Project
  • Modify the Java Files
  • Generate the Project in Eclipse
  • Create a Subdirectory in the Project Root Directory
  • Create a C Interface File
  • Compile the Corresponding. C File
  • Create the NDK Makefile File in the jni Directory
  • Generating a Library File in the IDE
  • Workflow Analysis for NDK Application Development
  • NDK Compiler Optimization
  • Machine-Independent Compiler Switch Options
  • -0 or -01
  • -02
  • -03
  • -00
  • Intel Processor-Related Compiler Switch Options
  • Overview
  • Chapter 8: Debugging Android
  • Prerequisites
  • Intel USB Driver for Android Devices
  • Installing the Intel Atom x86 System Image for Android Emulator
  • Application Debugging Using the Android Debug Bridge
  • Setting Up ADB
  • ADB on Windows
  • ADB Host-Client Communication
  • Starting ADB
  • Key ADB Device Commands
  • Using the Android Debug Tools Plug-in for Eclipse
  • The Debug Perspective in Eclipse
  • The DDMS Perspective
  • Application Runtime Environment for Debugging
  • Intel Hardware Accelerated Execution Manager
  • KVM Installation.
  • Using a 64-Bit Kernel
  • Install KVM
  • Starting the Android Virtual Device
  • Using AVD Manager in Eclipse to Launch a Virtual Device
  • Running Android Within Oracle VirtualBox
  • Google x86 VirtualBox Build Targets for Android 4.x
  • Downloading the Source Tree and Installing the Repository
  • Building a Custom Kernel with Mouse Support
  • Add Patched Kernel
  • Reduce Compile Time Using CCACHE
  • Build Android 4.0.x with New Kernel
  • Build the VirtualBox Disk and Android Installer
  • Using an Android Installer Disk to Create a Large Virtual Partition
  • Serial Port
  • Ethernet
  • Final Notes
  • 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
  • JTAG Debugging
  • Android OS Debugging,
  • Device Driver Debugging
  • Hardware Breakpoints
  • Cross-Debug: Intel Atom Processor and ARM Architecture
  • Variable Length Instructions
  • Hardware Interrupts
  • Single Step
  • Virtual Memory Mapping
  • Considerations for Intel Hyper-Threading Technology
  • SoC and Interaction of Heterogeneous Multi-Core
  • SVEN (System Visible Event Nexus)
  • Signal Encode/Decode Debug
  • SVEN Benefits
  • Overview
  • Chapter 9: Performance Optimizations for Android Applications on x86
  • Basic Concepts of Performance Optimization
  • Selection of a Faster Instruction
  • Improve the Degree of Parallelism
  • Effective Use of the Register Cache
  • Methodology of Performance Optimizations
  • Performance Optimization Approaches
  • Performance Optimizations Automatically Done by a Compiler
  • Performance Optimizations Assisted by Development Tools
  • Use of High-Performance Libraries
  • Performance Optimizations Done Manually
  • Performance Tuning with Intel VTune
  • System Tuning
  • Tuning Based on the Microarchitecture of the Processor
  • VTune's two modes.
  • Intel Graphics Performance Analyzers
  • Introduction
  • Installation
  • Sample Usage of Intel GPA on Android
  • Android Multithreaded Design
  • Android Framework or a Thread
  • Java Thread Programming Interface
  • Threaded Programming Extensions and Support
  • Message
  • Handler
  • Message Queue
  • Looper
  • AsyncTask
  • Thread Example
  • Thread Synchronization
  • Thread Communication
  • Principles of Multithreaded Optimization for Intel Atom Processors
  • Case Study: Intel GPA-Assisted Multithreaded Optimization for an Android Application
  • Original Application and Intel GPA Analysis
  • Optimized Application and Intel GPA Analysis
  • Overview
  • Chapter 10: x86 NDK and C/C++ Optimizations
  • Vectorization
  • Vectorization Report
  • Pragmas
  • Auto-Vectorization and Limits
  • Interprocedural Optimizations
  • Optimization with Intel IPP
  • NDK Integrated Optimization Examples
  • C/C++: The Original Application Acceleration
  • Step 1: Create a New Android Application Project
  • Step 2: Write the C Implementation Code of the cCodeTask Function
  • Compiler Optimization Extension Application
  • Step 1: Modify the Android Part of the Application
  • Step 2: Modify the Makefile File of mycomputetask.c and Rebuild the Library Files
  • Step 2: Write the C Implementation Code for the anotherCCodeTask Function
  • Multiple Situations Comparison of Compiler Optimization Extensions
  • Example: Compare the Optimization Results by Using SSE Instructions
  • Overview
  • Chapter 11: Using Intel Hardware Accelerated Execution Manager on Windows, Mac OS, and Linux to Speed Up Android on x86 Emu...
  • 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
  • Intel VT-x Is Not Supported.
  • Intel VT-x Is Not Enabled.