Android Operating System: Architecture,
Functionalities, Management Techniques & It
Coordination.
Name: Matric. No:
Akinola Atomide Victor PG/24/0568
Noze-otote Aisosa PG/24/0351
Oyewumi, Abiodun John PG/24/0270
Yisau Toyyibat Motunrayo PG/23/0506
History of Android
Android versions (A to N) such as Aestro, Blender,
Cupcake, Donut, Eclair, Froyo, Gingerbread,
Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat,
Lollipop, and Marshmallow.`
• Open-source, Linux-based OS
Key milestones:
• SDK released in 2007
• Android 1.0 launched in 2008
• Jelly Bean in 2012
Introduction to Android OS
• Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet
computers. Android was developed by the Open Handset Alliance, led by Google, and other companies.
• Android offers a unified approach to application development for mobile devices which means developers need
only develop for Android, and their applications should be able to run on different devices powered by Android.
• The source code for Android is available under free and open-source software licenses. Google publishes most of
the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public
License version 2.
Android Architecture Overview
Android architecture contains a different number of components to
support any Android device’s needs. Android software contains an
open-source Linux Kernel having a collection of a number of C/C++
libraries which are exposed through application framework services.
Among all the components Linux Kernel provides the main
functionality of operating system functions to smartphones and
Dalvik Virtual Machine (DVM) provide a platform for running an
Android application.
Components:
• Applications
• Application Framework
• Android Runtime
• Platform Libraries
• Linux Kernel
Applications Layer
• Applications is the top layer of android architecture.
• The pre-installed applications like home, contacts, camera,
gallery, and so on.
• Third party applications downloaded from the play store like
chat applications, games, and the likes, will be installed on
this layer only.
• It runs within the Android run time with the help of the
classes and services provided by the application framework.
Application Framework
Application Framework provides several important classes
which are used to create an Android application. It
provides a generic abstraction for hardware access and
helps manage the user interface with application resources.
Provides essential services:
• Activity Manager
• Notification Manager
• View System
• Package Manager
Android Runtime (ART)
Android Runtime environment is one of the most important
part of Android.
• It contains components like core libraries and the Dalvik
virtual machine DVM
• Mainly, it provides the base for the application framework
and powers our application with the help of the core
libraries.
Platform Libraries
The Platform Libraries includes various C/C++ core
libraries and Java based libraries such as Media,
Graphics, Surface Manager, OpenGL etc. to provide a
support for android development.
• Key for multimedia and database support
Linux Kernel
• Core of Android's hardware management
• Handles security, memory, process management
• Manages drivers (camera, Bluetooth, etc.)
Functionalities and Features
• UI: Custom home screen with widgets, multitasking, navigation, notification center.
• Customizability: custom ROMs, launchers, widgets.
• Google Services: Play Store, google Assistant, Gmail integration, maps, youtube,
• App Ecosystem: Open Source, APK Files, Multiplatform Support
• Security Features: Google Play Protect, Fingerprint/Face Unlock, App Permissions and Encryption
• Battery and Power Management: Battery Saver Mode, Doze Mode (Idle state), Adaptive Battery and App Standby
• Multimedia Support: Camera Integration, Media Players, Streaming, Cast Support
• Connectivity: Wi-Fi, Bluetooth, NFC, Hotspot and Tethering, USB OTG (On-The-Go ).
Functionalities and Features cont.
• Multitasking and Productivity: Split Screen Mode, Picture-in-Picture (PIP), File Manager, Cloud Storage
Integration
• Updates and Patching: Over-the-Air (OTA) Updates, Project Treble
• Artificial Intelligence and Machine Learning: Smart Replies and Predictive Actions, Google Lens
• Accessibility: Voice Control, Screen Readers, Magnification Gestures, Hearing Aid Compatibility
• Cross-Platform Support: Android TV, Wear OS, Android Auto
• Developer Features: Android Studio, Support for Kotlin and Java, Open-Source SDK
Management Techniques
Memory Management:
Android devices encompass different memory components, such as RAM, zRam, and storage, each serving distinct purposes.
• RAM: This volatile memory component is limited in size but renowned for its exceptional speed and responsiveness.
• zRam: Operating as a designated section of RAM, zRam handles short-term data storage.
• Storage: Storage, in contrast, stores persistent data, including applications, libraries, and platform files, ensuring their
accessibility across various contexts.
Key component:
• ART
• Garbage Collection
• Low Memory Killer (LMK)
Process Management:
Android’s process management ensures isolation, security, and efficient multitasking across applications
• Linux Process Model: Android applications each run in their own process, separate from one another. Android
leverages the Linux kernel’s process management, making it secure and efficient.
• Zygote process: Zygote is a unique process responsible for creating new application processes through process
forking, which avoids the need to initialize each process from scratch.
• Activity Manager: The Activity Manager coordinates the lifecycle of applications. When switching between apps,
it handles state transitions—saving data and releasing resources as needed.
Power Management:
Power management is critical on mobile devices, as excessive battery drain impacts usability. Android uses several
techniques to conserve power
• Battery Saver Mode: Battery Saver limits background activity, reduces CPU usage, and disables certain services
when the battery level is low.
• Doze Mode: Introduced in Android 6.0 (Marshmallow), Doze Mode activates when the device is stationary and
unused for a period, putting it into a deeper sleep state.
• App Standby: App Standby puts unused apps into a “standby” state, where they have limited access to resources
like network and CPU.
Security Management:
Android’s security management includes a comprehensive set of protections to maintain data integrity, secure user
information, and prevent malicious access.
• Sandboxing: Each application operates within its own isolated environment or sandbox. This prevents apps from
accessing one another’s data and resources without explicit permissions.
• Permissions: Android requires apps to declare permissions for accessing sensitive resources like the camera,
contacts, and location.
• Verified Boot: Verified Boot ensures that Android devices boot up with authentic, unaltered software by verifying
the system’s integrity during startup.
File and Storage Management
Android provides secure, flexible storage management for user data, files, and application data
• Internal and external storage: Internal storage is private to each application, accessible only by the app itself.
External storage, however, is more accessible but requires user permissions.
• Scoped Storage for privacy: Scoped Storage, introduced in Android 10, enhances privacy by restricting how apps
access shared storage.
• File-based encryption: FBE protects user data by encrypting individual files rather than the whole storage
Network and Data Management
Android incorporates robust data and network management techniques to optimize data usage and ensure efficient
connectivity.
• Network APIs: Android provides APIs that allow apps to detect network availability, bandwidth, and signal
strength.
• Data Saver Mode: When activated, Data Saver Mode restricts background data for apps. Apps only use data when
actively in the foreground, reducing data consumption.
• Network Quality Estimation (NQE): The NQE feature allows Android to evaluate network quality and adjust
app performance based on available bandwidth.
How it Coordinates (Hardware & Software).
Here is the illustration showing the Android
architecture layers. It helps visualize how
Android coordinates between hardware and
software, from the Linux kernel up to the system
applications. Each layer interacts with the others,
ensuring smooth communication between apps
and the hardware components.
Linux Kernel Layer
The foundation of Android is the Linux Kernel, which manages core hardware components such as memory,
networking, and power management. The kernel acts as a bridge between hardware and the rest of the software
layers. It handles input/output requests from software and translates them into instructions for the hardware.
• Key Roles:
• Hardware drivers for various devices (e.g., camera, display, touch, GPS)
• Power management
• Process management
Hardware Abstraction Layer (HAL)
A Hardware abstraction layer (HAL) is the type of abstraction layer with a standard interface for hardware
vendors to implement. A HAL allows hardware vendors to implement lower-level, device-specific features without
affecting or modifying code in higher-level layers.
• Key Roles:
• Provides standardized APIs for hardware access (e.g., sensors, audio, camera)
• Ensures compatibility across different hardware platforms
Android Runtime (ART)
ART is the execution engine that runs the applications on Android. It interacts with the lower layers to manage
memory, process threads, and other system-level tasks. ART compiles and runs code efficiently by translating the
app’s bytecode into instructions that the hardware can understand.
• Key Roles:
• Manages app execution and resource allocation
• Runs apps in a way that’s optimized for specific hardware configurations
Native C/C++ Libraries
Android uses native libraries to handle graphics rendering, media playback, and database management tasks. These
libraries communicate directly with the hardware components (e.g., OpenGL ES for graphics, OpenSL ES for
audio).
• Key Roles:
• Provides optimized performance for hardware-intensive tasks
• Handles high-level functionalities such as image rendering or media playback
Android Framework
• This layer provides APIs to developers for building apps. It includes features like the Activity Manager, Resource
Manager, and Content Providers. ART ensures the efficient execution of Android applications, optimizing
performance and resource utilization for a smoother user experience. These services manage interactions
between apps and the underlying hardware through the HAL and kernel.
• Key Roles:
• Offers developers high-level APIs to interact with hardware (e.g., camera, network)
• Manages application lifecycle, UI rendering, and system resources
Android Framework
This layer provides APIs to developers for building apps. It includes features like the Activity Manager, Resource
Manager, and Content Providers. ART ensures the efficient execution of Android applications, optimizing
performance and resource utilization for a smoother user experience. These services manage interactions between
apps and the underlying hardware through the HAL and kernel.
• Key Roles:
• Offers developers high-level APIs to interact with hardware (e.g., camera, network)
• Manages application lifecycle, UI rendering, and system resources
System Applications
The Application Framework is the layer in the Android architecture that provides the high-level services that Android apps use.
These services include the Activity Manager, which manages the lifecycle of apps, the Content Providers, which manages
access to data and files, and the Notification Manager, which manages notifications.
At the top layer, Android includes system apps like the Phone app, Messaging, and Camera. These apps utilize the Android
Framework to interact with the hardware, providing end-users with a seamless experience.
• Key Roles:
• Directly interacts with the Android Framework to access hardware services
• Provides the user interface and core functionality
References
1. “Android (operating system),” https://en.wikipedia.org/wiki/Android_(operating_system) (Retrieved; 16th October,2024.)
2. “Android Architecture,” https://www.javatpoint.com/android-software-stack (Retrieved; 16th October,2024.)
3. “Hardware abstraction layer (HAL) Overview,” https://source.android.com/docs/core/architecture/hal (Retrieved; 16th October,2024.)
4. “Android Runtime – How Dalvik and ART work,” https://proandroiddev.com/android-runtime-how-dalvik-and-art-work-6e57cf1c50e5 (Retrieved; 16th
October,2024.)
5. “Android Architecture: Application Layers, Framework, Component,” https://www.guru99.com/android-architecture.html (Retrieved; 16th October,2024.)
6. R. Gupta, “Understanding the Android Framework – AOSP: A Journey from Kernel to Application Layer,”
https://medium.com/@rishigupta94/understanding-the-android-framework-a-journey-from-kernel-to-application-layer-fa5624cee170 (Retrieved; 16th
October,2024.)
7. “Android Operating System: Mobile Development Explained,” https://www.netguru.com/glossary/android-operating-system (Retrieved; 16th October,2024.)
8. “Android Architecture”, https://www.geeksforgeeks.org/android-architecture/. (Retrieved; 18th October,2024.)
9. “Android Architecture Pattern Part”, https://medium.com/upday-devs/android-architecture-patterns-part-1-model-view-controller-3baecef5f2b6. (Retrieved
18th October, 2024.)
10. W. Thompson, "What is Android File Management?" Hexnode Blogs, 2023. [Online]. Available:
https://www.hexnode.com/blogs/what-is-android-file-management/.
11. P. Yadati, "Exploring Android Memory Management in Depth," Medium, 2023. [Online]. Available:
https://medium.com/@praveen.dheep/exploring-android-memory-management-in-depth-3c8a39c67189.
12. M. Alian, S. Guang, and B. Teng, Android Memory Management, University of Illinois Urbana-Champaign, 2016. [Online]. Available:
https://courses.grainger.illinois.edu/cs423/sp2016/lectures/Android.pdf.
13. H. A. Le, "Analyzing Energy Leaks of Android Applications Using Event-B," 2021.
14. T. Reidt, "Android Security," Emteria Blog, 2024. [Online]. Available: https://emteria.com/blog/android-security.