android architecture
TRANSCRIPT
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.
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
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.