Page 1
Overview of Android (Part 2):Middleware Infrastructure Layers
Douglas C. [email protected]
www.dre.vanderbilt.edu/~schmidtProfessor of Computer Science
Institute for Software Integrated Systems
Vanderbilt University Nashville, Tennessee, USA
Page 2
2
Learning Objectives in this Part of the Lesson1. Understand key elements
in Android’s middleware infrastructure
• e.g., hardware abstractionlayer, Android runtime, &native libraries
ART|Dalvik Virtual Machine
C++
/CC
Java
/JNI
Hardware components
Middleware infrastructure resides atop the OS & below the apps et al
Page 3
3
Learning Objectives in this Part of the Lesson1. Understand key elements
in Android’s middleware infrastructure
2. Name all the key app components in Android
Page 4
4
Learning Objectives in this Part of the Lesson1. Understand key elements
in Android’s middleware infrastructure
2. Name all the key app components in Android
3. Know what Java threads are in the context of Android
Page 5
5
Overview of Android’s Middleware
Infrastructure
Page 6
6
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms
ART|Dalvik Virtual Machine
C++
/CC
Java
/JNI
Page 7
7
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer
ART|Dalvik Virtual Machine
C++
/CC
Java
/JNI
See source.android.com/devices/#Hardware Abstraction Layer
Page 8
8
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer
• Shields Android stack from low-level hardware details
ART|Dalvik Virtual Machine
C++
/CC
Java
/JNI
Hardware components
Page 9
9
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer
• Shields Android stack from low-level hardware details
• Shields OEMs from GNUPublic License “virality”
ART|Dalvik Virtual Machine
C++
/CC
Hardware components
Java
/JNI
See en.wikipedia.org/wiki/Linux_kernel#Licensing_terms
Page 10
10
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
ART|Dalvik Virtual Machine
C++
/CC
Hardware components
Java
/JNI
This layer is composed of several middleware elements
Page 11
11
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
This element is composed of two parts
Page 12
12
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
A managed execution environment that
efficiently runs Java-based apps & some
Android system services
See source.android.com/devices/tech/dalvik
Page 13
13
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtime
See sites.google.com/site/io/dalvik-vm-internals
ART|Dalvik Virtual Machine
Java
/JNI
C++
/CCThis managed
execution environment is optimized for mobile
device constraints
Page 14
14
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CCA copy of core Java
class libraries & core Android class libraries
See en.wikipedia.org/wiki/Comparison_of_Java_and_Android_API
Page 15
15
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
We’ll discuss Java threading shortly
Page 16
16
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
Android’s core libraries provide key components that we’ll also cover shortly
Content Provider
ServiceActivity
Broadcast Receiver
Page 17
17
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
Android’s core libraries provide many other UI & persistence components
Page 18
18
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
Page 19
19
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtime
We cover Android’s core libraries in the Android App Development Specialization
ART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
Page 20
20
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
Android—like Java—balances run-time performance & developer productivity
Productivity Performance
Page 21
21
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtimeART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
See www.dre.vanderbilt.edu/~schmidt/PDF/wrapper-facade.pdf
Android’s core libraries are often implemented
as wrapper facades
Page 22
22
Overview of Android’s Middleware Infrastructure• Android’s middleware infrastructure provides reusable capabilities that
extend hardware-centric OS kernel & protocol mechanisms• Hardware abstraction layer• Runtime & libraries layer
• Android runtime• Native C/C++ libraries ART|Dalvik Virtual Machine
Java
/JNI
C++
/CC
See developer.android.com/tools/sdk/ndk
These Java wrapper façade are implemented via native C/C++ code