Android - Application Framework

22
Android – Application Framework Yong Heui Cho @ Mokwon University Some of slides are referred to: [1] Nitin Ramchandani, Android OS, slideshare. [2] Luca Bedogni & Marco Di Felice, Programming with Android: System Architecture, SlidePlayer.

Transcript of Android - Application Framework

Page 1: Android - Application Framework

Android –Application Framework

Yong Heui Cho @ Mokwon University

Some of slides are referred to:[1] Nitin Ramchandani, Android OS, slideshare.[2] Luca Bedogni & Marco Di Felice, Programming with Android: System Architecture, SlidePlayer.

Page 2: Android - Application Framework

2

Smart Device Structure

2. Android Studio Tutorial

3. Basic Android OS

4. Android – Application Framework5. Android – Message

Page 3: Android - Application Framework

3

Page 4: Android - Application Framework

4

Libraries (I)• Media Libraries - based on PacketVideo's OpenCORE;

the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

• LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 5: Android - Application Framework

5

• SGL (Skia GL) - the underlying 2D graphics engine

• 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer

• FreeType - bitmap and vector font rendering

• SQLite - a powerful and lightweight relational database engine available to all applications

Libraries (II)

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 6: Android - Application Framework

6

• Set of standardized APIs the developer will have to implement

• Available for all the components a manufacturer can integrate on its Android platform

Defines the interface that Android requires hardware “drivers” to implement.

HW Abstraction Layer

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 7: Android - Application Framework

7

• Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language

Core Libraries

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 8: Android - Application Framework

8

Dalvik Virtual Machine

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Before Android 5.0 Lollipop• Designed for embedded environment • Supports multiple VM processes per device.• Highly CPU-optimized byte code interpreter.• Uses run time memory very efficiently.• Run optimized file format (.dex) Dalvik bytecode.• Java .class/.jar are converted to .dex at build time.

Page 9: Android - Application Framework

99

Dalvik Java Virtual Machine

Java Source Code

Java Byte Code

Java Virtual Machine

(JVM)

Java Source Code

Java Byte Code

Dalvik Byte Code

Dalvik Virtual Machine

(DVM)

JavaCompiler

JavaCompiler

DexCompiler

Stack-basedbyte-code

Register-basedbyte-code

Java Standard Edition

□ Courtesy to L. Bedogni & M. Di Felice, Programming with Android, SlidePlayer.

Page 10: Android - Application Framework

10

Android Runtime (ART)

• After Android 5.0 Lollipop• ART introduces the use of ahead-

of-time (AOT) compilation by compiling entire applications into native machine code upon their installation.– Faster execution of applications– Improved battery time– Improved memory allocation and

garbage collection

Page 11: Android - Application Framework

11

Comparison of ART & DVM

Page 12: Android - Application Framework

12

Application Framework (I)

• A Notification Manager that enables all applications to display custom alerts in the status bar

• An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 13: Android - Application Framework

13

• A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser

• Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data

• A Resource Manager providing access to non-code resources such as localized strings, graphics, and layout files

Application Framework (II)

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 14: Android - Application Framework

14

1.Activities2.Intent 3.Services4.Content Providers

Important App Components

Page 15: Android - Application Framework

15

• Activity is an User Interface Screen.• An application may have two or more activities to handle

different phases of program.

For e.g. opening page, menu page, etc.• Activity is responsible for saving its own state so that

it can be restored later as part of the application life cycle.

Activities

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.single activity multiple activities

Page 16: Android - Application Framework

16

• Intent is a mechanism for describing a specific action such as pick a photo.

• Basically we register an Activity to handle an Intent.

Intents

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 17: Android - Application Framework

17

• A content provider is a set of data wrapped up in a custom API to read and write it. This is the best way to share global data between applications.

• Google provide content provider for contacts.

Content Provider

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 18: Android - Application Framework

18

• A service is a task that runs in the background without the user’s direct interaction, similar to a Unix daemon.

For e.g. we can have Music player program playing in background even if we are browsing other programs.

Services

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 19: Android - Application Framework

19

• Can combined 2D and 3D surfaces• Can use OpenGL ES and 2D hardware accelerator for its

compositions

Provides a system-wide surface “composer” to render all the surfaces in a frame buffer

Surface Manager

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 20: Android - Application Framework

20

• Handle several types of devices (headphone, ear piece…)

• Redirects audio stream to the specified output

Audio Manager

□ Courtesy to Nitin Ramchandani, Android OS, slideshare.

Page 21: Android - Application Framework

21

Fragment• A piece of an application's UI or

behavior that can be placed in an Activity

Page 22: Android - Application Framework

22

Android App Design

GUI Definition

Events Management

Application Data Management

Background Operations

User Notifications

APPLICATION DESIGN:

□ Courtesy to L. Bedogni & M. Di Felice, Programming with Android, SlidePlayer.