android architecture

21
Android Architecture Pietro Alberto Rossi

Upload: pietro-alberto-rossi

Post on 16-Jul-2015

93 views

Category:

Technology


0 download

TRANSCRIPT

Android ArchitecturePietro Alberto Rossi

Architecture

Kernel Level —>

Library Level —>

Application Framework Level —>

Application Level —>

Android Runtime Level —>

Kernel LevelAndroid uses a specialized version of Linux kernel with a few special additions such as wakelocks, a memory management system, the Binder IPC driver and other features that are important for a mobile embedded platform like Android.

Library Level

Libraries wrote in C/C++ already compiled and preinstalled by vendorfor particular hardware abstraction.

Android Runtime Level

Dalvik VM

Application Framework Level

High level building blocks

Application Level

The program that you develop!

Low-Level System ArchitectureApplication Framework Level —>

Binder IPC Level —>

Android System Services Level —>

HAL Level —>

Kernel Level —>

Kernel LevelAndroid uses a specialized version of Linux kernel with a few special additions such as wakelocks, a memory management system, the Binder IPC driver and other features that are important for a mobile embedded platform like Android.

HAL Level

HAL (Hardware Abstraction Layer) is a standard interface that allows the Android system to call into the device driver layer while being agnosticabout the lower-level implementations of your drivers and hardware.

Services that allows API to access the underlying hardware.(Window Manager, Search Service, Notification Manager, etc)

System Services Level

The Binder Inter-Process Communication mechanism allows the applicationframework to cross process boundaries and call into the Android system services code. That is it allows high level framework APIs to interact with Android’s system services.

Binder IPC Level

APIs available to developers.

Application Framework Level

System StartupBootloaderKernelInitZygoteSystem ServerActivity ManagerLauncher

Bootloader

Starts the correct OS

KernelInitializes environment Initializes high-level kernel subsystems Mount root filesystemStarts the init process

InitRun /init.rc fileSet up filesystem permission Set OOM adjustments properties Start daemons: adbd, servicemanager, vold, netd. rild, zygote, etc

ZygoteZygote is a daemon which only mission is to launch applications.It creates the first Dalvik VM and calls Zygote’s main method. Once Zygote starts, it preload all necessary Java classes and resources, startSystem Server and opens a socket /dev/socket/zygote to listen for requestsfor staring applications.

System Server

The System Services is a set of services that provide the user applicationswith the information and capabilities necessary to work.

Activity Manager

Manage activities and broadcast intent.

Launcher

The classic home screen that we can look when the device is active.