Как работает Android? Какая у него архитектура?

🧠 Что такое Android

Android — это операционная система на базе Linux, разработанная Google для мобильных устройств (смартфонов, планшетов, ТВ, авто и т.д.). Она управляет аппаратными ресурсами устройства и предоставляет платформу для запуска приложений.


🏗️ Архитектура Android

Архитектура Android многоуровневая. Её обычно изображают в виде пятислойной схемы:

+--------------------------------------+
|  Приложения (Apps)                   |
+--------------------------------------+
|  Framework приложений (Application Framework)  |
+--------------------------------------+
|  Библиотеки и Android Runtime (ART)  |
+--------------------------------------+
|  HAL (Hardware Abstraction Layer)    |
+--------------------------------------+
|  Ядро Linux (Linux Kernel)           |
+--------------------------------------+

🧩 1. Linux Kernel (Ядро Linux)

  • Основа системы.

  • Отвечает за управление памятью, процессами, безопасностью, драйверами, сетью, энергопитанием и другими низкоуровневыми функциями.

  • Android использует сильно модифицированное ядро Linux, адаптированное под мобильные устройства.

Примеры компонентов:

  • Power Management

  • Display & Camera Drivers

  • Binder (IPC – межпроцессное взаимодействие)

  • Bluetooth, USB, Wi-Fi, Audio drivers


⚙️ 2. Hardware Abstraction Layer (HAL)

  • Прослойка между ядром и более высокими уровнями.

  • Состоит из модулей (C/C++ библиотек), каждый из которых управляет конкретным типом оборудования: GPS, камера, сенсоры, аудио и т.д.

  • Позволяет Android быть кросс-устройственной системой: разные железки — один общий API.

📍Пример: Приложение вызывает API камеры → Framework обращается к HAL → HAL вызывает драйвер камеры в ядре.


🧮 3. Android Runtime (ART) и Библиотеки

📘 Android Runtime (ART)

  • Каждое приложение запускается в своём процессе и со своей виртуальной машиной ART (ранее — Dalvik).

  • ART выполняет байт-код .dex (Dalvik Executable), созданный из Java/Kotlin-кода.

  • Использует Ahead-of-Time (AOT) компиляцию — код компилируется в машинный язык при установке, что ускоряет запуск.

📚 Библиотеки (C/C++)

  • Предоставляют базовые возможности: графика, медиа, шифрование, БД и т.д.

  • Примеры:

    • libc — стандартная библиотека C

    • libm — математика

    • OpenGL ES — 2D/3D графика

    • SQLite — локальная база данных

    • WebKit — отрисовка веб-страниц


🧠 4. Application Framework

  • Набор высокоуровневых API, доступных разработчикам приложений.

  • Содержит основные системные сервисы Android.

Ключевые компоненты:

  • ActivityManager — управление жизненным циклом приложений

  • PackageManager — установка/удаление пакетов

  • WindowManager — управление окнами

  • ContentProvider — доступ к данным между приложениями

  • NotificationManager — уведомления

  • LocationManager — работа с GPS


📱 5. Applications (Приложения)

  • Самый верхний слой, который видит пользователь.

  • Это системные приложения (Настройки, Камера, Телефон) и сторонние (Telegram, Chrome и т.д.).

  • Все они используют API из Application Framework.


🔁 Как это всё работает вместе

Пример — приложение «Камера»:

  1. Пользователь запускает приложение (уровень Application).

  2. Приложение вызывает Camera API (уровень Framework).

  3. Framework вызывает HAL → обращается к драйверу камеры.

  4. Драйвер передаёт данные с сенсора через ядро Linux.

  5. Изображение возвращается обратно через HAL → Framework → Приложение.

  6. Приложение показывает фото на экране.


💡 Важная особенность

  • Каждое приложение в Android изолировано (sandbox) и работает под своим UID → безопасность.

  • Межпроцессное взаимодействие происходит через Binder (специальный IPC-механизм ядра Android).

Last updated

Was this helpful?