Android Architecture
Last updated
Last updated
Android OS implements many security components and has many considerations for its various layers; the following diagram summarizes the Android security architecture on ARM with TrustZone support:
Puts data from the application on the screen. The UI Layer is typically made up of two more compact parts (UI = UI Elements + UI State).
This layer is optional; not all applications, particularly basic ones, require a domain layer to manage reusable business logic or are too complex to be contained entirely within the data layer. The business logic of an application specifies the creation, storage, and modification of data.
Data sources and repositories are the two elements that make up the data layer, which controls the majority of the application’s business logic.
Definition: The Android Framework provides essential classes for building Android applications. It manages the user interface, application resources, and acts as an abstraction layer for hardware access.
Services Offered:
Telephony service
Location services
Notification management
NFC service
View system, etc.
APIs Access:
Entire Android OS features are accessible to developers through Java-written APIs.
Crucial Components:
View System: Facilitates the creation of graphic elements for app interaction.
Activity Manager: Manages app entry points and UI components called activities.
Location Manager: Utilizes GPS for precise user location.
Telephony Manager: Integrates hardware and software elements for telephony services.
Resource Manager: Provides access to non-code resources like layout files and graphics.
Content Provider: Facilitates standardized data sharing between apps.
Notification Manager: Handles informing users about application events.
Linux Kernel:
Foundation of Android architecture.
Manages drivers, resources, security, memory, and multitasking.
Android Runtime:
Includes Dalvik Virtual Machine (DVM) for executing Android applications.
Converts Java byte code to .dex
files for optimization.
Libraries:
Native libraries offering instructions for handling various data types.
Includes Java-based and C/C++ core libraries for graphics, SSL, SQLite, media, etc.
Application Framework:
Provides high-level services, APIs, and an Android Hardware Abstraction Layer (HAL).
Interfaces between the application layer and native libraries.
Services like Resource Manager, Notification Manager, Package Manager.....
Applications:
Top layer containing installed third-party and native Android apps.
Includes all user-installed programs, games, settings, etc.
Code -> Compile -> DEX Format
DEX -> Build -> APK
APK -> Signature -> Signed APK
Signed APK -> Google Play -> User Install