overview of android layers & concurrency€¦ · android concurrency frameworks. java threads...

Post on 10-Jul-2020

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Overview of Android Layers & Concurrency

Douglas C. Schmidtd.schmidt@vanderbilt.edu

www.dre.vanderbilt.edu/~schmidt

Institute for Software Integrated Systems

Vanderbilt University Nashville, Tennessee, USA

2

Learning Objectives in this Lesson• Recognize Android’s architectural layers

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

3

Learning Objectives in this Lesson• Recognize Android’s architectural layers • Understand Android’s architectural layers wrt concurrency

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

OS Process

Android Concurrency FrameworksJava Threads & Synchronizers

4

Android’s Architectural Layers

5

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

6

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

An intentional strategy for increasing productivity &

improving software quality

See en.wikipedia.org/wiki/Code_reuse#Systematic_software_reuse

7

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse• Enable “plug & play” replacement of certain layer implementations

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

8

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse• Enable “plug & play” replacement of certain layer implementations

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

Effects of updates can be confined to the layer whose implementation changes

9

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse• Enable “plug & play” replacement of certain layer implementations• Reduce the complexity of APIs

that app developers must know

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

See en.wikipedia.org/wiki/Facade_pattern

10

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse• Enable “plug & play” replacement of certain layer implementations• Reduce the complexity of APIs

that app developers must know• Enable the use of popular APIs,

protocols, & programminglanguages

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

11

Android’s Architectural Layers• Android’s architecture is structured into multiple layers for several reasons, e.g.

• Enhance systematic reuse• Enable “plug & play” replacement of certain layer implementations• Reduce the complexity of APIs

that app developers must know• Enable the use of popular APIs,

protocols, & programminglanguages• These popular protocols &

APIs are available in open-source form

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

See source.android.com & source.android.com/source/building-kernels.html

12

Android’s Architectural Layers wrt Concurrency

13

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

These layers are also representative of common Java platform implementations

14

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

CPerformance Productivity

Android strives to strike an effective balance between programmer productivity & computing performance

Android Concurrency FrameworksJava Threads & Synchronizers

15

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Process A Process B

The Android Linux kernel controls hardware & manages system resources

Android Concurrency FrameworksJava Threads & Synchronizers

16

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

The Bionic LibC library supports the Pthreads C programming APIs

Android Concurrency FrameworksJava Threads & Synchronizers

17Dalvik & ART provide a managed

execution environment for Java apps

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

18The Android runtime layer contains a copy of

classes in the the java.util.concurrent packages

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

19

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android Concurrency FrameworksJava Threads & Synchronizers

The Android runtime layer also provides concurrency frameworks

20

Android’s Architectural Layers wrt Concurrency• The architectural layers of the Android platform define various mechanisms

for running concurrent programs on a range of computing devices

Additional Application Frameworks

Operating System Kernel

Applications

System Libraries

Execution Environment (Dalvik & ART) Ja

va/J

NIC+

+/C

C

Android’s application frameworks & packaged applications use its concurrency mechanisms & frameworks extensively

Android Concurrency FrameworksJava Threads & Synchronizers

21

End of Overview of Android Layers & Concurrency

22

1. Which of the following are reasons why Android’s architecture is designed with multiple layers?a. Enable the use of popular APIs, protocols, & programming

languagesb. Enhance performance on multi-core processorsc. Enable “plug & play” replacement of certain layer

implementationsd. Enhance the complexity of APIs that app developers must

know

Discussion Questions

top related