You are previewing Android Application Development for the Intel® Platform.
O'Reilly logo
Android Application Development for the Intel® Platform

Book Description

The number of Android devices running on Intel processors has increased since Intel and Google announced, in late 2011, that they would be working together to optimize future versions of Android for Intel Atom processors. Today, Intel processors can be found in Android smartphones and tablets made by some of the top manufacturers of Android devices, such as Samsung, Lenovo, and Asus.

The increase in Android devices featuring Intel processors has created a demand for Android applications optimized for Intel Architecture: Android Application Development for the Intel® Platformis the perfect introduction for software engineers and mobile app developers. Through well-designed app samples, code samples and case studies, the book teaches Android application development based on the Intel platform—including for smartphones, tablets, and embedded devices—covering performance tuning, debugging and optimization.

This book is jointly developed for individual learning by Intel Software College and China Shanghai JiaoTong University.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. About ApressOpen
  5. Contents at a Glance
  6. Contents
  7. About the Lead Project Editor
  8. About the Lead Contributing Author
  9. About the Technical Reviewer
  10. Introduction
  11. Chapter 1: Overview of Embedded Application Development for Intel Architecture
    1. Introduction to Embedded Systems
      1. Mobile Phones
      2. Consumer Electronics and Information Appliances
    2. Definition of an Embedded System
      1. Limited Resources
      2. Real-Time Performance
      3. Robustness
      4. Integrated Hardware and Software
      5. Power Constraints
      6. Difficult Development and Debugging
    3. Typical Architecture of an Embedded System
      1. Typical Hardware Architecture
      2. Microprocessor Architecture of Embedded Systems
      3. Typical Software Architecture
    4. Special Difficulties of Embedded Application Development
    5. Summary
  12. Chapter 2: Intel Embedded Hardware Platform
    1. Intel Atom Processor
      1. Intel Atom Processor Architecture
      2. Features of the Intel Atom Processor
      3. Other Technologies Used by the Intel Atom Processor
    2. Intel Embedded Chipset
    3. Intel System on Chip (SoC)
      1. Medfield
      2. Bay Trail
    4. 64-Bit Android OS on Intel Architecture
      1. 64 Bits vs. 32-bit Android
      2. Memory and CPU Register Size
    5. Reference Platform for Intel Embedded Systems
      1. Internet of Things (IoT) and Next Unit of Computing (NUC)
      2. Smartphones
      3. Tablets
      4. In-Vehicle Infotainment
      5. Other Application Platforms and Fields
      6. Robotics
    6. Summary
  13. Chapter 3: Android Application Development Processes and Tool Chains for Intel® Architecture
    1. Android Application Development
      1. Development Environment of Android Applications
      2. The Android Application Development Process
      3. Debugging and Simulation of Android Systems
    2. Typical Development Tool Chains
      1. Editor
      2. Compiler and Linker
      3. Debugger
      4. Build Manager
      5. Makefile Auto Generation Tool
      6. Optimizing Tools -- gprof
    3. Overview, Installation, and Configuration of Android Application Development Tool Chains on Intel® Architecture
    4. Intel Environment Setup for Android (OS X Host)
    5. Android Development on Linux-based Host Machines
    6. Intel® Integrated Native Developer Experience beta
      1. Tools and Libraries
      2. Setup
      3. Intel INDE Installation
    7. Summary
  14. Chapter 4: Real Device Environment Installation
    1. Mobile Phone Setting
      1. Installing the USB Driver on the Host Machine
      2. Interaction between the Host Machine and the Target Machine
      3. Developing Android Applications
      4. Debugging Android Applications
    2. Intel Auxiliary Tools for Android Application Development
      1. Intel C++ Compiler (Intel ICC)
      2. Intel Graphics Performance Analyzers for Android OS
      3. Intel System Studio
      4. Intel Project Anarchy: a Free Mobile Game Engine by Havok
      5. Intel Performance Libraries
    3. Summary
  15. Chapter 5: The Android OS
    1. Android Overview
    2. Android Architecture
    3. Basic Android Functionality from a Programming Perspective
      1. Android System Interface
      2. Common Linux Commands and Operations
    4. Using the Android Development and Auxiliary Tools
      1. Using the Emulator
      2. Accept “yes” for custom hw and choose x86 for hw.cpu.arch propertyUsing the Help File
      3. Using DDMS
      4. Using adb at Command Prompt
      5. Using Android Commands
      6. Using Telnet for Emulator Commands
      7. Summary
  16. Chapter 6: Customization and Installation of Android
    1. Tailoring and Customization of an Embedded OS
    2. Overview of Android Customization
      1. ROM Package/Image
      2. Overview of Android Image Customization
      3. Example of Android Image Customization
      4. Installation/Reflash of the Android Image
      5. Image Installation Example
      6. Intel Build Tools Suite
    3. Summary
  17. Chapter 7: GUI Design for Android Apps, Part 1: General Overview
    1. Overview of GUIs for Embedded Applications
      1. Characteristics of Interaction Modalities of Android Devices
    2. UI Design Principles for Embedded Systems
      1. Considerations of Screen Size
      2. Size of Application Windows
      3. Considerations Arising from Touch Screens and Styluses
      4. Keyboard Input Problems
      5. Software Distribution and Copyright Protection Problems
    3. Android Application Overview
      1. Application File Framework
      2. Component Structure of Applications
      3. Content Provider
      4. Android Emulator
      5. Introducing Android Runtime (ART)
    4. Summary
  18. Chapter 8: GUI Design for Android Apps, Part 2: The Android-Specific GUI
    1. State Transitions of Activities
      1. Activity States
      2. Important Functions of Activities
    2. The Context Class
    3. Introduction to Intent
      1. The Main Roles of Intent
      2. Intent Resolution
    4. The Relationship between Applications and Activities
    5. The Basic Android Application Interface
      1. GuiExam Application Code Analysis
      2. Using Layouts as Interfaces
      3. Using the View Directly as an Interface
      4. Component ID
    6. Buttons and Events
      1. Inner Class Listener
      2. Using ImageView
      3. Exit Activities and Application
    7. Summary
  19. Chapter 9: GUI Design for Android Apps, Part 3: Designing Complex Applications
    1. Applications with Multiple Activities
      1. Triggering an Explicit Match of Activities with No Parameters
      2. Triggering Explicit Matching of an Activity with Parameters of Different Applications
      3. Implicit Matching of Built-In Activities
      4. Implicit Match that Uses a Custom Activity
    2. Summary
  20. Chapter 10: GUI Design for Android Apps, Part 4: Graphic Interface and Touchscreen Input
    1. Display Output Framework
    2. Drawing Framework for Responding to Touchscreen Input
    3. Multi-Touch Code Framework
    4. Responding to Keyboard Input
    5. Dialog Boxes in Android
      1. Using an Activity’s Dialog Theme
      2. Using a Specific Dialog Class
      3. Using Toast Reminders
      4. Dialog Box Example
    6. Application Property Settings
    7. Summary
  21. Chapter 11: Performance Optimization for Android Applications on x86
    1. Principles of Performance Optimization
      1. Reducing Instructions and Execution Frequency
      2. Selecting Faster Instructions
      3. Improving the Degree of Parallelism
      4. Using the Register Cache Effectively
      5. Performance Optimization Methodology
    2. Performance Optimization Approaches
    3. Intel Graphics Performance Analyzers (Intel GPA)
      1. Introduction to Intel GPA
      2. Installing Intel GPA
      3. Using Intel GPA on Android
    4. Android Multithreaded Design
      1. Android Framework of a Thread
      2. Thread Synchronization
      3. Thread Communication
      4. Principles of Multithreaded Optimization for the Intel Atom Processor
    5. Case Study: Intel GPA-Assisted Multithreaded Optimization for an Android Application
      1. Original Application and Intel GPA Analysis
      2. Optimized Application and Intel GPA Analysis
    6. Summary
  22. Chapter 12: NDK and C/C++ Optimization
    1. Introduction to JNI
      1. Java Methods and C Function Prototype Java
      2. Introduction to NDK
    2. Installing NDK and Setting Up the Environment
      1. Installing CDT
    3. NDK Examples
      1. Using the Command Line to Generate a Library File
      2. Generating a Library File in the IDE
      3. Workflow Analysis for NDK Application Development
    4. NDK Compiler Optimization
      1. Machine-Independent Compiler Switch Options
      2. Intel Processor-Related Compiler Switch Options
    5. Optimization with Intel Integrated Performance Primitives (Intel IPP)
    6. NDK Integrated Optimization Examples
      1. C/C++: Accelerating the Original Application
      2. Extending Compiler Optimization
      3. Comparing Compiler Optimizations
    7. Summary
  23. Chapter 13: The Low-Power Design of Android Application and Intel Graphics Performance Analyzers (Intel GPA): Assisted Power Optimization
    1. Overview of Low-Power Design
      1. The Basics of Consumption
      2. Power Consumption Control Technology
    2. Linux Power-Control Mechanism
      1. Tickless Idle
      2. PowerTOP
    3. Intel Power-Optimization Aids
    4. Low-Power Considerations in Application Design
      1. The Most Basic Principle of Low-Power Optimization
      2. General Recommendations: High Performance = Low Power Consumption
      3. Use Low-Power Hardware as Much as Possible to Achieve the Task
      4. Polling Is the Enemy of Low-Power Optimization
      5. Event-Driven Programming
      6. Reduce Periodic Operations Similar to Polling in Application Programs
      7. Low-Power Recommendations for Data Acquisition and Communications
      8. Establishing a Power-Aware Program
    5. Case Study 1: Intel GPA Assisted Power Optimization for an Android Application
      1. Original Application and Intel GPA Power Analysis
      2. Optimized Applications and an Intel GPA Power Analysis
    6. Case Study 2: Timer Optimization and Intel GPA Power Analysis
    7. Book Summary
  24. Index