Source
Android
Android architecture, features and application scenarios.
Android is a mobile operating system built on top of the Linux kernel and adapted for smartphones and tablets. It defines the architecture, security and lifecycle of applications.
Basic Android architecture
At the top are the applications and the framework, at the bottom are the layers that are closest to the hardware.
App layer
Applications and framework
Applications
User applications and System UI.
- System UI
- Launcher
- Apps
Application Framework
System services, activity management, and notifications.
- ActivityManager
- WindowManager
- Content Providers
Runtime layer
Runtime and native libraries
Android Runtime (ART)
App runtime, garbage collection, and code optimization.
- ART
- GC
- Class Loader
Native libraries
Platform C/C++ libraries: graphics, media, SQLite.
- Graphics
- Media
- SQLite
Platform layer
HAL and Linux kernel
Hardware Abstraction Layer (HAL)
Access abstraction for camera, audio, sensors, GPS, and modem.
- Camera
- Audio
- Sensors
Linux kernel
Scheduling, memory, networking, and device drivers.
- Scheduler
- Memory
- Drivers
Hardware
Hardware
How to launch a mobile application
An example chain: the user launches the application, Android picks up the process and gives control to system services, after which the UI is rendered through the graphics stack.
Mobile application launch
From Intent to rendering: how the request moves through Android layers
Apps
Layer 1App Framework
Layer 2Android Runtime
Layer 3Native libs
Layer 4Linux kernel
Layer 5Hardware
Layer 6Active step
Click "Start" to walk through the launch chain.
How it works and key features
- Strict application isolation and permissions model.
- Lifecycle management of applications and activities.
- Optimization for battery and background restrictions.
- Deep integration with mobile sensors and radio modem.
- Unified application store and distribution model.
Differences between Android and classic Linux
Uses the Linux kernel, but with its own user space and the bionic library instead of glibc.
Applications run on ART with a managed runtime and their own lifecycle.
The model of sandboxes and permissions at the OS level is more pronounced.
Deep focus on mobile devices, energy efficiency and sensors.
Why is this important for systems design?
- Mobile devices are limited by battery, CPU and memory - this affects application architecture.
- Network conditions are unstable: offline modes, caching and retrays are needed.
- Background tasks and notifications are managed by the OS, which affects data synchronization.
- Sensors, geolocation and cameras provide new product opportunities.
- Security and privacy require careful handling of permissions.
