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® Platform is 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.
Conditions of Use
This book is licensed under a Creative Commons License (CC BY). You can download the ebook Android Application Development for the Intel Platform for free.
- Title
- Android Application Development for the Intel Platform
- Publisher
- Apress
- Author(s)
- Ryan Cohen, Tao Wang
- Published
- 2014-08-27
- Edition
- 1
- Format
- eBook (pdf, epub, mobi)
- Pages
- 540
- Language
- English
- ISBN-10
- 1484201019
- ISBN-13
- 9781484201008
- License
- CC BY
- Book Homepage
- Free eBook, Errata, Code, Solutions, etc.
Android Application Development for the Intel® Platform Contents at a Glance Copyright Contents About the Lead Project Editor About the Lead Contributing Author About the Technical Reviewer Introduction Chapter 1: Overview of Embedded Application Development for Intel Architecture Introduction to Embedded Systems Mobile Phones Consumer Electronics and Information Appliances Definition of an Embedded System Limited Resources Real-Time Performance Robustness Integrated Hardware and Software Power Constraints Difficult Development and Debugging Typical Architecture of an Embedded System Typical Hardware Architecture Von Neumann Architecture Harvard Architecture Microprocessor Architecture of Embedded Systems RISC: Advanced RISC Machines (ARM) Architecture CISC: x86 Architecture MIPS Architecture PowerPC Architecture SuperH Typical Structure of an Embedded System Typical Software Architecture Hardware Abstraction Layer Operating System Layer System Service Layer Application Layer Special Difficulties of Embedded Application Development Summary Chapter 2: Intel Embedded Hardware Platform Intel Atom Processor Intel Atom Processor Architecture Silvermont: Next-Generation Microarchitecture Features of the Intel Atom Processor Small Form Factor Low Power Consumption Dynamic Low-Voltage Technology for Mobile and Embedded Devices High Performance SSE3 Instruction Set Enhances the Processing Power of Digital Media Intel Virtualization Technology (Intel VT) Intel Hyper-Threading Technology (Intel HT Technology) and Multi-Core Technologies Other Technologies Used by the Intel Atom Processor Intel Embedded Chipset Intel System on Chip (SoC) Medfield Bay Trail 64-Bit Android OS on Intel Architecture 64 Bits vs. 32-bit Android Memory and CPU Register Size Reference Platform for Intel Embedded Systems Internet of Things (IoT) and Next Unit of Computing (NUC) Intel Galileo Development Kit for IoT Smartphones Lenovo K900 Vexia Zippers Phone ZTE Grand X2* Tablets Samsung Galaxy Tab 3 10.1 Dell Venue 7/8" Tablet Acer Iconia A1-830* ASUS MeMO Pad FHD 10* In-Vehicle Infotainment Other Application Platforms and Fields Cloud Computing Robotics Wireless Sensor Networks Learning Backpack Journalism and Portable Video Recording RFID Field Tools Summary Chapter 3: Android Application Development Processes and Tool Chains for Intel® Architecture Android Application Development Development Environment of Android Applications Cross-Development Programming Languages The Android Application Development Process Encoding Construction Deployment Debugging and Optimizing Stage Debugging and Simulation of Android Systems System Simulator Other Debugging Tools Cross-Debugging adb shell adb shell[command] Typical Development Tool Chains Editor Compiler and Linker Debugger Build Manager Makefile Auto Generation Tool Optimizing Tools -- gprof Overview, Installation, and Configuration of Android Application Development Tool Chains on Intel® Architecture android.jar ddms.bat adb.exe aapt.exe aidl.exe sqlite3.exe dx.bat android.bat Intel Environment Setup for Android (OS X Host) Android Development on Linux-based Host Machines Intel® Integrated Native Developer Experience beta Tools and Libraries Setup Intel INDE Installation Downloading Intel INDE Installing Intel INDE Launching Intel INDE Configure Eclipse Create AVD (Emulator) Summary Chapter 4: Real Device Environment Installation Mobile Phone Setting Installing the USB Driver on the Host Machine Interaction between the Host Machine and the Target Machine Developing Android Applications Creating a Project Editing and Running (on the Emulator) Running on the Real Device Debugging Android Applications Editinging the Source Code Setting Breakpoints Starting Debugging Program Execution Techniques Observing the Debugging Output of the Log.X Function Observing Variables Ending Debugging Intel Auxiliary Tools for Android Application Development Intel C++ Compiler (Intel ICC) Intel Graphics Performance Analyzers for Android OS Intel System Studio Intel Project Anarchy: a Free Mobile Game Engine by Havok Intel Performance Libraries Summary Chapter 5: The Android OS Android Overview Android Architecture Basic Android Functionality from a Programming Perspective Android System Interface Terminating an Application in Android Method 1 (for Real Devices) Method Method Using the Web Browser in the Android Emulator Common Linux Commands and Operations Check Users Changing a Password Clearing the Screen Superuser Root Operation Displaying Files and Directories Changing and Displaying the (Current) Directory Searching for Files File Operation Modifying File/Directory Permissions Working with the Executable File Path Piping and Screening Running Commands in the Background Interrupting the Execution of Commands in the Foreground Checking Hardware Information (Such as OS Version and CPU) Using the Android Development and Auxiliary Tools Using the Emulator Method Method Method Accept “yes” for custom hw and choose x86 for hw.cpu.arch propertyUsing the Help File Using DDMS Showing the DDMS Button Starting DDMS File Transfer between Host and Target Machines, and File Management Copying a File from the Host Machine to the Target Machine Copying a File from the Target Machine to the Host Machine Deleting a File Process Management on the Target Machine Starting Process Management for the Target Machine Stopping a Designated Process Taking a Target Machine Screen Capture Emulator Operation Using adb at Command Prompt Running Commands on the Target Machine Installing Application Packages on the Target Machine Uninstalling Software on the Target Machine Transferring Files between the Host and Target Machines Enabling and Disabling the adb Service Other Functions Using Android Commands Viewing the Installed Emulator Viewing the Version Information of the Currently Supported APIs Creating an Emulator Starting the Emulator Using Telnet for Emulator Commands event Command geo Command gsm Command kill Command network Command power Command redir Command sms Command Window scale? Command Summary Chapter 6: Customization and Installation of Android Tailoring and Customization of an Embedded OS Overview of Android Customization ROM Package/Image Overview of Android Image Customization Example of Android Image Customization Installation/Reflash of the Android Image Image Installation Example Automating the Procedure with flash_device.sh Intel Build Tools Suite Summary Chapter 7: GUI Design for Android Apps, Part 1: General Overview Overview of GUIs for Embedded Applications Characteristics of Interaction Modalities of Android Devices Screens of Various Sizes, Densities, and Specifications Keypads and Special Keys Touch Screens and Styluses, in Place of Mice Onscreen Keyboards Few Multimodal Interactions Few Large-Capacity Portable External Storage Devices UI Design Principles for Embedded Systems Considerations of Screen Size Size of Text and Icons Clickability of Buttons and Other Graphical Elements Size of Application Windows Considerations Arising from Touch Screens and Styluses Correctly Interpreting the Movement and Input of the Cursor (Mouse) on Tap-Only Touch Screens Setting Screen Mapping Correctly How to Solve Hover-Over Problems Providing Right-Click Functionality Keyboard Input Problems Restricting the Input of Various Commands Meeting Keyboard Demand Software Distribution and Copyright Protection Problems Android Application Overview Application File Framework AndroidManifest.xml R.java Definition File of Constants Layout Files Source Code File Component Structure of Applications Activity Intent and Intent Filters Service Broadcast Intent Receiver Content Provider Android Emulator Introducing Android Runtime (ART) Summary Chapter 8: GUI Design for Android Apps, Part 2: The Android-Specific GUI State Transitions of Activities Activity States Important Functions of Activities onCreate State-Transition Function onStart State-Transition Function onResume State-Transition Function onPause State-Transition Function onStop State-Transition Function onRestart State-Transition Function onDestroy State-Transition Function The finish Function The Context Class Introduction to Intent The Main Roles of Intent Triggering a New Activity or Letting an Existing Activity Implement the New Operation Triggering a New Service or Sending New Requests to Existing Services Trigger BroadcastReceiver Intent Resolution Action Test Category Test Data Test The Relationship between Applications and Activities The Basic Android Application Interface GuiExam Application Code Analysis Using Layouts as Interfaces Using the View Directly as an Interface Component ID Buttons and Events Inner Class Listener Using ImageView Exit Activities and Application Summary Chapter 9: GUI Design for Android Apps, Part 3: Designing Complex Applications Applications with Multiple Activities Triggering an Explicit Match of Activities with No Parameters Triggering Explicit Matching of an Activity with Parameters of Different Applications Implicit Matching of Built-In Activities Implicit Match that Uses a Custom Activity Summary Chapter 10: GUI Design for Android Apps, Part 4: Graphic Interface and Touchscreen Input Display Output Framework Drawing Framework for Responding to Touchscreen Input Multi-Touch Code Framework Responding to Keyboard Input Dialog Boxes in Android Using an Activity’s Dialog Theme onCreateDialog(int) Function showDialog(int) Function onPrepareDialog(int, Dialog) Function dismissDialog(int) Function Using a Specific Dialog Class Using Toast Reminders Dialog Box Example Application Property Settings Summary Chapter 11: Performance Optimization for Android Applications on x86 Principles of Performance Optimization Reducing Instructions and Execution Frequency Selecting Faster Instructions Improving the Degree of Parallelism Using the Register Cache Effectively Performance Optimization Methodology Automatic Optimization by the Compiler Performance Optimization Assisted by Development Tools Using High-Performance Libraries Manual Optimization Performance Optimization Approaches Intel Graphics Performance Analyzers (Intel GPA) Introduction to Intel GPA Installing Intel GPA Using Intel GPA on Android Android Multithreaded Design Android Framework of a Thread Java Thread Programming Interface Android Threaded Programming Extensions and Support Message Handler Message Queue Looper Thread Example Thread Synchronization Thread Communication Principles of Multithreaded Optimization for the Intel Atom Processor Case Study: Intel GPA-Assisted Multithreaded Optimization for an Android Application Original Application and Intel GPA Analysis Optimized Application and Intel GPA Analysis Summary Chapter 12: NDK and C/C++ Optimization Introduction to JNI Java Methods and C Function Prototype Java Java and C Data Type Mapping Java Array Processing Resource Release Introduction to NDK Installing NDK and Setting Up the Environment Installing CDT NDK Examples Using the Command Line to Generate a Library File Generating a Library File in the IDE Workflow Analysis for NDK Application Development NDK Compiler Optimization Machine-Independent Compiler Switch Options -O or -O1 -O2 -O3 -O0 Intel Processor-Related Compiler Switch Options Optimization with Intel Integrated Performance Primitives (Intel IPP) NDK Integrated Optimization Examples C/C++: Accelerating the Original Application Extending Compiler Optimization Comparing Compiler Optimizations Example 1. Comparing Optimization Results Using SSE Instructions Summary Chapter 13: The Low-Power Design of Android Application and Intel Graphics Performance Analyzers (Intel GPA): Assisted Powe... Overview of Low-Power Design The Basics of Consumption Power Consumption Control Technology Dynamic Voltage/Frequency Scaling Technology Clock Gating Energy-Saving Circuit Design and Manufacturing Processes Intel SpeedStep and Enhanced Intel SpeedStep Technology First-Generation Intel SpeedStep Technology Second-Generation Intel SpeedStep Technology (EIST) Third-Generation Intel SpeedStep Technology (Improved EIST) APM and the ACPI Standard Low-Power Operating System States Standby Hibernate Sleep Linux Power-Control Mechanism Tickless Idle PowerTOP Intel Power-Optimization Aids Low-Power Considerations in Application Design The Most Basic Principle of Low-Power Optimization General Recommendations: High Performance = Low Power Consumption Use Low-Power Hardware as Much as Possible to Achieve the Task Polling Is the Enemy of Low-Power Optimization Event-Driven Programming Reduce Periodic Operations Similar to Polling in Application Programs Low-Power Recommendations for Data Acquisition and Communications Establishing a Power-Aware Program Case Study 1: Intel GPA Assisted Power Optimization for an Android Application Original Application and Intel GPA Power Analysis Optimized Applications and an Intel GPA Power Analysis Case Study 2: Timer Optimization and Intel GPA Power Analysis Book Summary Index