© MIPS Technologies 2010 All rights reserved.
Presented by MIPS TechnologiesPowering a Connected World
October 2010
Comprehensive Development and
Debug Coverage for Linux and Android
on the MIPS Architecture
© MIPS Technologies 2010 All rights reserved.
MIPS TechnologiesPowering a Connected World
Today’s presenters:
• Rick Leatherman
VP Development Tools MIPS Technologies
• Hieu Tran
President & Founder of Viosoft Corporation
• Art Lee
VP of Business Development, Viosoft Corp.
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
3© MIPS Technologies 2010 All rights reserved.
Agenda
Android and its Migration to Non-mobile
Applications
Android and How It Compares to Traditional
Linux Systems
The Challenges of Debugging Android
The Limitations of Traditional Debug Tools
Viosoft Arriba Debugger Overview
Brief Debug Demonstrations
Android System Event Analyzer
Summary
Q & A
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
4© MIPS Technologies 2010 All rights reserved.
Overview of Google Android™ Software Platform
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
5© MIPS Technologies 2010 All rights reserved.
Taking Android beyond Mobile Handsets
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
6© MIPS Technologies 2010 All rights reserved.
Android on Non-Mobile Platforms
HANDSET (99% COMPLETE)
MID (70%)
STB (50%)
Embedded Device (???)
Assuming HW and Linux
SW is EXACTLY the same
Otherwise…only 80% or
less
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
7© MIPS Technologies 2010 All rights reserved.
Android Enables Embedded Devices to
Access the “Cloud”
Connected Content
Devices to experience connected content NOW
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
8© MIPS Technologies 2010 All rights reserved.
Repurposing Android Requires Tools that
can Debug the Full Stack
MIPS’ licensees, partners, and the community will
contribute much of the longer-term effort
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
9© MIPS Technologies 2010 All rights reserved.
Android versus Traditional Linux Systems
Traditional Linux Platforms Android
Single language (some assembly,
mostly C)
Multiple languages (assembly, C/C++,
Java, JavaScript, ActionScript)
Single/few processes Multiple processes, with program logic
straddling process barriers
Applications mostly execute in User
Space
Applications partitioned between User
and Kernel Space
One process per application Multiple processes per application
Android Software Development
Android is a Juggling Act!
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
10© MIPS Technologies 2010 All rights reserved.
Why is Android Development so Difficult?
(1) Android applications
cross language barrier Java
C/C++
Javascript & Actionscript
(2) Android applications
cross process barrier Client/Server
JNI
CORBA/IDL
(3) Android applications
cross protection barrier To and From User / Kernel Space
1
2
3
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
11© MIPS Technologies 2010 All rights reserved.
MIPS Strategic Alliance With Viosoft
Corporation
MIPS has partnered with Viosoft to offer the
Arriba embedded Linux/Android debugger as
part of the MIPS tools portfolio
The Arriba debugger offer a very unique and
powerful set of debug features
Recently awarded a “Best in Show” Award by
VDC for Android Development Tools
We will showcase the Arriba debugger during
today’s Webinar
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
12© MIPS Technologies 2010 All rights reserved.
Traditional Linux Debug Tools Like KGDB and
GDBSERVER are Severely Limited
PROCESS
1
PROCESS
2
T
2
T
3T
4
T
5
T
6
Module
A
Module
C
Module
B
Module
D
Static Kernel (KGDB Version)
Host PC
Kernel
Space
User
Space
Shared
Libs
GDBSERVER GDBSERVERGDB
1
GDB
2
GDB
3
ETH:Port 1
ETH:Port 2
RS-232
T
1
T
2
T
3T
4
T
5
T
6
Host PC
Kernel
Space
User
Space
Shared
Libs
GDBSERVER GDBSERVERGDB
1
GDB
2
GDB
3
Target Platform
Problem
Areas
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
13© MIPS Technologies 2010 All rights reserved.
Android Application Development with
the Arriba Debugger
JAVA
JNI
C/C++
MIDDLEWARE
(DLL)
KERNEL
DRIVERS
JAVA
SOCKET
C/C++
MIDDLEWARE
(DLL)
KERNEL
DRIVERS
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
14© MIPS Technologies 2010 All rights reserved.
Arriba Enhanced Android Debug Platform
VMON
Arriba
Ethernet /USB / E)TAG
Native Interface Code
Host
PlatformTarget Platform
Android
SDK
Eclipse based
Arriba SDK
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
15© MIPS Technologies 2010 All rights reserved.
Debug Examples
Kernel and Driver
Dalvik Application
Dalvik VM
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
16© MIPS Technologies 2010 All rights reserved.
Android Platform Run-mode Coverage
Linux Kernel 2.6.33
Native C/C++
Applications
Co
rba/B
ind
er In
terfa
ce
Android Applications
Android Libraries
Serial
Driver
Binder (IPC)
Driver
Ethernet
Driver
Display
Driver
WiFi
Driver
Flash
Driver
GlibC
Libraries
Audio
Driver
Keyboard
Driver
Core Libraries
Dalvik VM
Application FrameworkJNI
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
17© MIPS Technologies 2010 All rights reserved.
Linux Kernel Debug
Linux Kernel 2.6.33
Native C/C++
Applications
Co
rba/B
ind
er In
terfa
ce
Android Applications
Android Libraries
Serial
Driver
Binder (IPC)
Driver
Ethernet
Driver
Display
Driver
WiFi
Driver
Flash
Driver
GlibC
Libraries
Audio
Driver
Keyboard
Driver
Core Libraries
Dalvik VM
Application FrameworkJNI
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
18© MIPS Technologies 2010 All rights reserved.
Insert Kernel Debug Video
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
20© MIPS Technologies 2010 All rights reserved.
Android Application Debug
Linux Kernel 2.6.33
Native C/C++
Applications
Co
rba/B
ind
er In
terfa
ce
Android Applications
Android Libraries
Serial
Driver
Binder (IPC)
Driver
Ethernet
Driver
Display
Driver
WiFi
Driver
Flash
Driver
GlibC
Libraries
Audio
Driver
Keyboard
Driver
Core Libraries
Dalvik VM
Application FrameworkJNI
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
21© MIPS Technologies 2010 All rights reserved.
Insert Java Debug Video
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
23© MIPS Technologies 2010 All rights reserved.
Android VM Debug
Linux Kernel 2.6.33
Native C/C++
Applications
Co
rba/B
ind
er In
terfa
ce
Android Applications
Android Libraries
Serial
Driver
Binder (IPC)
Driver
Ethernet
Driver
Display
Driver
WiFi
Driver
Flash
Driver
GlibC
Libraries
Audio
Driver
Keyboard
Driver
Core Libraries
Dalvik VM
Application FrameworkJNI
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
24© MIPS Technologies 2010 All rights reserved.
Insert JVM Debug Video
© MIPS Technologies 2010 All rights reserved.
Arriba Linux/Android
Event Analyzer
Innovative Tools for Analyzing Linux and
Android Systems
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
27© MIPS Technologies 2010 All rights reserved.
Arriba Linux/Android Analysis Tool
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
28© MIPS Technologies 2010 All rights reserved.
Linux/Android Event Analyzer
Application level profiling
Works with all MIPS-Based™ devices running Linux or
Linux & Android
Captures all Linux/Android events occurring on the
target
Record activity for up to 20+ seconds (or you run out of
memory)
Display events over time with details just a mouse click
away
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
29© MIPS Technologies 2010 All rights reserved.
The Power of Android
Enabling new business models for
service & content providers; OEMs
Bringing innovative technologies to
customers in established markets
Contact [email protected] to schedule
a live Android debug demonstration
MIPS is leading the Android Revolution in the digital home
Android on MIPS source code publicly available: Visit www.mips.com/android
At th
e c
ore
of th
e u
se
r e
xp
erie
nce
.®
30© MIPS Technologies 2010 All rights reserved.
MIPS, MIPS32, MIPS64, MIPS-Based, MIPS-Verified, MIPS Technologies logo are trademarks of MIPS Technologies, Inc. and registered in the U.S. Patent and Trademark Office. MIPS, MIPS32, MIPS64, MIPS-Based, MIPS Logo, MIPS Technologies Logo, CorExtend, Pro Series, M4K, 4KE, 4KEc, 24K, 24KE, 34K, 74K, 1004K, MIPS Navigator, and FS2 are trademarks or registered trademarks of MIPS Technologies, Inc. in the United States and other countries.
Thank You!
www.mips.com/android