Android and Intel Inside

29
Android and Intel inside Christoph Jechlitschek Software and Services Group Intel Corporation

description

Android* on IA Momentum, Developing Android Apps for IA, App Development with x86 NDK

Transcript of Android and Intel Inside

Page 1: Android and Intel Inside

Android and Intel inside

Christoph Jechlitschek

Software and Services GroupIntel Corporation

Page 2: Android and Intel Inside

Agenda

• Android* on IA Momentum

• Developing Android Apps for IA

• App Development with x86 NDK

Page 3: Android and Intel Inside

Megafon MintRussia

Lenovo K800China Unicom

Orange San DiegoUK, France

Lava XoloIndia

ZTE Grand X IN

Motorola Razr IEurope, Latin America

Smartphones with Intel Inside

Page 4: Android and Intel Inside

Why Intel® Atom™ processors & Android?

Enhanced Video and Graphics• 2D/3D HW accelerated graphics performance optimized for Intel

Atom Processors • Full HD support(1080p) for local video playback and HW-

accelerated video encode/decode for multiple formats (H.264, MPEG-4, H.263, Flash, etc.)

• SW-optimized audio codecs for more efficient CPU utilizationConnectivity, Security and Mobility across devices

• Connectivity & mobility through WiFi Direct and WiDi support• Wind River, an Intel subsidiary, offers solution accelerators for

DLNA, SyncML, additional Bluetooth profiles, etc.• Built-in HW assist for secure boot and full disk encryption.

Performance Leadership• Fast web page loading , optimized for Intel Atom processor• Best multi-tasking performance enabled by Intel® Hyper-

Threading Technology• Hundreds of Intel software engineers working to optimize Android

on AtomDesign-in and Application Enabling• Intel technical support for design in and custom application enabling• Intel® System Software Tools 1.0 for Android for power and

performance tuning• Applications developed to Android SDK APIs run “as is” on all Intel

platforms• Most Android NDK applications run on Atom with simple recompile

Page 5: Android and Intel Inside

Focusing on Mobile ExperiencesApplications & Services, Operating Systems, Platforms and Silicon

BRAND EXPERIENCES

SECURITY TECHNOLOGY

And More

201322nm

Largest Dedicated Security

Company

+ 201414nm

201232nm

#7

Entertainment Business BasicEducation Gaming

Page 6: Android and Intel Inside

Agenda

• Android* on IA Momentum

• Developing Android Apps for IA

• App Development with x86 NDK

Page 7: Android and Intel Inside

Applications

Application Framework

Home Contacts Phone Browser

Activity Manager

Windows Manager

Telephony Manager

Resource Manager

Content Providers

View System

Location Manager

Notifica-tion Manager

Package Manager

Surface Manager

OpenGL | ES

SGL

Media Framework

FreeType

SSL

SQLite

WebKit

libc

Core Libraries

Dalvik Virtual Machine

Display Driver

Camera Driver

Flash Memory Driver

Binder (IPC) Driver

Keypad Driver

WiFi Driver

Audio Drivers

Power Manage-ment

Libraries

Linux Kernel

Android Runtime

Ap

ps

User

Exp

eri

en

ce

Mid

dle

ware

Op

era

tin

g

Syste

m

Android* on Intel® Atom™ processor-based platforms

Page 8: Android and Intel Inside

Android* Optimizations for Intel® Atom™-based devices

• Dalvik VM runtime optimization• x86 trace-based JIT and Native

Code Generation• Enriched memory management

(e.g., garbage collection)• JNI streamlining

• Tuning of native libraries

• Bionic optimizations

• Javascript & HTML5 optimization

• Power Management for Android

• OpenGL ES 1.1/2.0 Driver

• HW Overlay

• HW Accelerated Media decode/encode

• Library to integrate w/ Android & reference implementation (MIX)

• Standard SoC drivers, middleware and applications optimized for power

Power ReductionPerformance Tuning

Intel has a rich history optimizing Java for IA. We’ve applied that knowledge to Dalvik Java with impressive results

Page 9: Android and Intel Inside

Performance Gains from optimizations

Series10

1

2

3

4

5

6

7

Trace JIT enabled

Up to 6x Improvement!

Perf

orm

an

ce

Source: Intel Software and Solutions Group1 Intel Z670 reference design with Honeycomb2 SSE = Streaming SIMD Testing on Medfield (Z2460) CDK with Gingerbread.

Se-ries1

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Significant improvements in both web (HTML5) and Java* workloads due to optimizations for Intel SSE instructions in Android graphics libraries.

Perf

orm

an

ce

No Trace JIT1

Dalvik Runtime Optimizations Android* Native Library

No SSE2 with SSE

Linpack CaffeineMark

HTML5Slideshow

HTML5Zoom

HTML5Animation

HTML5Fancy Show

JetBoy* Stress

AlbumSlideshow(SA)

Page 10: Android and Intel Inside

Faster Emulation and Prebuilt Atom Images

Pre-built Atom Images• Android SDK manager has x86

emulation images built-in• To emulate an Atom-based Android

phone, install the “Intel Atom x86 System Image” available in the Android SDK Manager

• http://software.intel.com/en-us/articles/installing-the-intel-atom-tm-android-x86-emulator-image-add-on-from-the-android-sdk-manager/

Much Faster Emulation• Intel® Hardware Accelerated

Execution Manager (HAXM) for Mac and Windows uses Intel® Virtualization Technology (VT) to accelerate x86 emulation by an order of magnitude

• VT is supported in Linux* (KVM) for x86

• http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/

Page 11: Android and Intel Inside

Intel® Graphics Performance Analyzers (Intel® GPA)

• Provides real-time performance analysis of your OpenGL-ES* applications

• Conduct real-time experiments with OpenGL-ES* state overrides

• Triage system-level performance with CPU, Power and GPU metrics

System Analyzer

Note: Public release of Intel GPA for Android* is targeted for 2H-2012

Page 12: Android and Intel Inside

Using Intel® Graphics Performance Analyzers

1. Install APK2. Run Intel® GPA System Analyzer on development machine

3. View Profile

Page 13: Android and Intel Inside

Agenda

• Android* on IA Momentum

• Developing Android Apps for IA

• App Development with x86 NDK

Page 14: Android and Intel Inside

Android* Native Development Kit (NDK)

Build scripts/toolkit to incorporate native c/c+

+ code in Android Apps via JNI

Why Use NDK?

• Performance intensive tasks

• e.g.: signal-processing/custom-algorithms

• Differentiated app that takes advantage of

direct CPU/HW access

• e.g.: specialized games

• Software Code reuse

• Legacy Code

• Huge legacy IA code base & libraries

Page 15: Android and Intel Inside

Android* Application Overview

Android NDK Application

Dalvik Application

Android App Class

Java Source

Compile with Javac

Java Native Library Class

Java Native Library

Compile with Javac

Create C header with Javah -jni

Header File

C Source Code

Compile and Link C Code

Dynamic Library

Application File

Makefile

Page 16: Android and Intel Inside

Adding Native Code to Android * Apps

Standard Android* Project Structure

Native Sources - JNI Folder

1. Create JNI folder for native sources

3. Create Android.mk with build rules

4. Build Native code using NDK-BUILD script.

2. Reuse or create native c/c++ sources

NDK will automatically create ABI lib folder.

Page 17: Android and Intel Inside

Creating NDK-based Apps: Code Re-use Example

1. Create default Android* App project

~/labs/lab2$ android create project --target android-13 --activity CPUIdApp --package com.example.cpuid --path .

Page 18: Android and Intel Inside

Sample Native Code for CPUID

Page 19: Android and Intel Inside

Code Re-use Example (cont’d)

2. Define JNI Native Calls in Java* source to access CPUID native code3. Declare call to Load native lib cpuid.so (“cpuid”)

Page 20: Android and Intel Inside

Code Re-use Example (cont’d)

4. Build with “ant” to generate Java* classes5. Use “javah” to generate JNI headers

Page 21: Android and Intel Inside

Code Re-use Example (cont’d)

6. Implement native source stub based on generated header stub

7. Create Android.mk build rules for compiling native code with NDK

Page 22: Android and Intel Inside

Code Re-use Example (cont’d)

8. Compile native sources with “ndk-build” script : specify APP_ABI=x869. Rebuild the final APK with ant, and optional install on emulator!

Page 23: Android and Intel Inside

Porting Existing NDK-based Apps

A simple 4-step process:

1. Recompile existing native module with APP_ABI=all

2. Update the project to use Android* platform of choice (e.g. ICS target API is “Android-15”)

Page 24: Android and Intel Inside

Porting Existing NDK-based Apps (cont’d)

3. Repackage the project into final APK file

- Example: Using “ant debug” for demo purposes

4. Install/Test the App (APK) on x86 Android* emulator or device

Page 25: Android and Intel Inside

NDK Tips: Let the NDK Do the Hard Work

• Include all ABIs in jni/Application.mk

• The NDK will generate highly optimized code for all target ABIs

Build ARM v5…

Build ARM v7a…

Build ARM x86…

Page 26: Android and Intel Inside

NDK Tips: Use “Fat Binaries”

Source Code

Application.mk with multiple ABIs

libs/armeabi-v7a

libs/x86

libs/armeabi

ndk-build apkbuilder

• Fat Binaries are .apk files that supports multiple ABIs• Use “APP_ABI := armeabi armeabi-v7a x86” in Application.mk

– Can use “APP_ABI := all” since NDK version r7

Page 27: Android and Intel Inside

Install Will Select The Right .so

Use lib/armeabi libraries

Use lib/armeabi-v7a libraries

Use lib/x86 libraries

• Android Market will automatically filter applications based on ABI support

Page 28: Android and Intel Inside

Intel Legal Information

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. INTEL PRODUCTS ARE NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS.

Intel may make changes to specifications and product descriptions at any time, without notice.

All products, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice.

Intel, processors, chipsets, and desktop boards may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Intel, Intel logo, Intel Atom, Intel Atom Inside,, Intel Inside, and Intel Inside logo are trademarks of Intel Corporation in the U.S. and other countries.

Android is a registered trademark of Google, Inc.

Java and all Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

For more complete information about performance and benchmark results, visit www.intel.com/benchmarks

Other names and brands may be claimed as the property of others.

Copyright © 2012 Intel Corporation.

Page 29: Android and Intel Inside

Intel Technology is Used in a Broad Range of leading Smartphones and Tablets …

K800

...and more to come

XoomTab

San Diego