Android
™
Development:
a System Perspective
ARM - Linux and Communities
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 supportARM 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 toolsSmartphones 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
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
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
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 solutionsAndroid Platform
Android is a complex layered system
Different programming languages and tools for different layersJav 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
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 librariesNat Apps Debug
JTAG Debug DS -5 Jav a N ati v e SD K +A D T
Android Development
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 architecturesSpeeding 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
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 distributionand 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