• No results found

Android Development: a System Perspective. Javier Orensanz

N/A
N/A
Protected

Academic year: 2021

Share "Android Development: a System Perspective. Javier Orensanz"

Copied!
21
0
0

Loading.... (view fulltext now)

Full text

(1)

Android

Development:

a System Perspective

(2)

ARM - Linux and Communities

(3)

Linaro Partner Initiative

Mission:

“Make open source development easier by delivering a common software foundation, across multiple distributions and vertical segments, deployed by the industry's leading OEM, MNO and Semiconductor companies”

Collaborate on common and undifferentiating parts of OSS

components

Include support for latest ARM CPU and features

Validate upstream contributions

Improved Tools support

(4)

ARM Open Source Tools

Engagement with the developer community for GNU tools

GNU core tools (GCC, GAS, GLD, binutils, eglibc)

Thumb®-2 support for improved performance and code size

Cortex™-A8 and Cortex-A9 performance tuning

Sponsoring CodeSourcery releases

Pre-built, pre-packaged GCC binaries

Adding Linux profiling

Oprofile

LTTng, ftrace, perf-events

Promote Linux ABI for the ARM architecture

Ensures GCC and RVCT interworking

Enable Debuggers and performance analyzers to work with any compilation tools

(5)

Smartphones Towards a Smarter World

Annual sales up 24% in 2009 to 172.4 million units

14% of total sales in 2009, growing to 38% by 2013

Half of all mobile phones in North America by 2012

(6)

Android on Smartphones (and Beyond)

20% of US smartphone subscribers Aug’10 (comScore)

34% of total smartphone sales in the US in Q2’10 (Canalys)

Android, Symbian, Maemo and other Linux variants will

account for over 62% of mobile devices by 2012 (Gartner 09)

MID Tablet

(7)

Android is Made for ARM

Android was developed and shipped on ARM

Android is optimized for ARM

1,200 files of assembler code.

20,000 or 28% of Bionic libraries are ARM assembler

6,300 C & 4,900 C++ files many with ARM optimizations

Google, ARM and other OHA Partners deliver more ARM

(8)

ARM Growing the Android Ecosystem

Technology Investment

Processor Architecture for 21st Century Web-centric computing

Tools to get the best from processor architecture

Optimization of open technologies and software

Readily available tools and hardware reference designs

ARM Solution Center for Android

An Ecosystem nucleus that partners can orbit around

Access the latest technology

Collaborate

Compete on a level playing field

Deliver solutions

(9)
(10)

Android Platform

Android is a complex layered system

Different programming languages and tools for different layers

Jav a N ati v e Managed code • Rich UI • Framework API • Tight integration: • System events – UI • Lower performance Native code • Improved performance • Code re-use • Unsupported libraries

(11)

Eclipse provides a complete framework for Android software

Android SDK plug-ins for Java applications

DS-5 for C/C++ performance-critical native applications and libraries

Nat Apps Debug

JTAG Debug DS -5 Jav a N ati v e SD K +A D T

Android Development

(12)

Eclipse Framework

Most Android development is done in Eclipse

Code editing, debug, performance analysis with Android SDK/NDK

Eclipse Integrated Development Environment (IDE)

Eclipse is an open source environment for software development

Works across host and target platforms and programming languages

Widely used across 160+ companies, with 1100+ plug-ins on offer

Eclipse increases the efficiency of development teams by

integrating a diversity of tools into a single framework

RTOS debuggers and profilers

Software tools for ARM, DSPs and other processor architectures

(13)

Speeding Up on the Native Side

Performance-critical code is written as C/C++

Investing resources in this area delivers highest benefit

ARM DS-5™ focuses on Linux and Android native development

Keep an eye on performance!

Native FIR in C: 884.18 ms

Native FIR in C with NEON™ intrinsics: 310.31 ms (almost 3x faster)

Dalvik JIT Compiler

Native code ~2x faster

Dalvik interpreter

Native code 10-20x faster

Compiler

Eclipse

Debugger

Device Configuration Database

Hardware Debug

Perf. Analyzer

IDE

Simulation

(14)

The ARM Compiler is the reference compiler for the ARM

architecture

Earliest support for new processors and instruction sets

Professionally supported and maintained

Highly compatible with GNU Compiler

Builds the ARM Debian distribution

and most open source Linux packages

Higher performance

NEON vectorization, Thumb®-2

Smaller code size

Efficient C/C++ Software Compilation

80% 90% 100% 110% 120% 130% RVDS 3.1 RVDS 4.0 RVDS 4.1

Compiler Improvement over 5 yrs

Performance

Codesize RVDS 2.2

(15)

Bring-up and Kernel Development

Stop-mode debug is critical for board/platform bring-up

Stop the processor after reset

Configure the target with a debugger script

Use debugger views to verify the system

Single-step through the code

ETM/PTM trace is available!

(16)

Android Library Development

Run-mode debug is best

System and other applications always running

Low cost Ethernet connection for debug

DS-5 offers all the advantages of a professional debugger

Automatically download and debug software

Multi-thread application debug on Windows and Linux hosts

(17)

Android Application Development

Normally done with Android SDK (also run-mode debug)

Android SDK is also integrated in Eclipse

Same “look and feel” as DS-5

Simultaneous debug of applications and libraries using SDK + DS-5

Just click on a button to switch between SDK and DS-5

When a breakpoint is hit the switch is automatic

Android SDK works!

Very widely used (most Android developers write in Java)  robust and powerful

There is no benefit in using JTAG for Java development

(18)

Android Library Performance Analysis

ARM Streamline covers

performance analysis of

the middleware layer

Timeline analysis with annotation

Profiling and call path reports

Stack analysis

Requires only a network (Eth, USB) connection to the target

Streamline enables

Analyse how your software runs on ARM targets

Spot bottlenecks and code inefficiencies

(19)

Application Performance Analysis

TraceView supports performance analysis at Java level

Requires the code to be instrumented to signal start/stop

Relies on instrumentation  slows down application

(20)

Summary

Android is very important to ARM success

Accordingly, ARM is investing a lot in Android

Android SDK is a widely used environment for Android Java

application development

ARM DS-5 provides a professional development environment

for critical native code

High-performance compiler

Stop-mode and run-mode debugger

Streamline performance analyzer

(21)

Thank You

Please visit

www.arm.com

for ARM related technical details

References

Related documents

Jill has been providing design services for Torrco since December 2010 and worked briefly as a direct employee (2-10/2013) when we were unveiling our new name, logo, and branding,

To develop an application using the FTDI Java D2XX for Android driver, the development machine needs the Eclipse IDE and an up-to-date Android SDK, including the ADB

Applicants must have documentation of a minimum of 1,600 clock hours prior to the date of application to the Department for approval, delivering such service to children under

Tanto el surgimiento de los movimientos juveniles independientes entre los estudiantes como el importante papel de éstos en la movilización juvenil más general se deben, en

make java documentation android app building game android development nexus 7 2013 android sdk ndk ubuntu android apps development tools how to make calculator app in android

We need to install eclipse extension ADT (Android Development Toolkit) for development of the Android Application:.. ADT on Eclipse

Now it’s time to configure the Android SDK for Development Tools and the Google APIs.. Configure the Android SDK for Development Tools and

Programming the application specifically for Android devices using the Android SDK (Software Development Kit) and a development environment such as Eclipse.. Using an app building