Android Architecture
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:
Layers of Modern Android Application Architecture
UI Layer
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).
Domain Layer
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 Layer
Data sources and repositories are the two elements that make up the data layer, which controls the majority of the applicationβs business logic.
Android Framework
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.
Android System Architecture
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.
Application Journey
Code -> Compile -> DEX Format
DEX -> Build -> APK
APK -> Signature -> Signed APK
Signed APK -> Google Play -> User Install
Last updated