Глава про Android полезна тем, что быстро переносит разговор из серверных предположений в мир батареи, памяти, нестабильной сети и жёсткого жизненного цикла приложения.
В реальной работе она помогает проектировать мобильные клиенты и API с учётом фоновых ограничений, локального состояния, синхронизации и дорогих ошибок при работе через слабую связь.
В интервью и архитектурных обсуждениях материал особенно полезен там, где нужно показать: мобильная архитектура не является уменьшенной копией серверной части, у неё свой набор ограничений и компромиссов.
Практическая польза главы
Ограничения устройства
Учит проектировать архитектуру с учётом батареи, сети, памяти и фоновых ограничений платформы.
Контракты клиента и сервера
Помогает строить API и синхронизацию данных для нестабильной связи и локальной работы приложения.
Поведение приложения во время работы
Показывает, как жизненный цикл приложения влияет на надёжность и пользовательский опыт мобильной системы.
Практичность на интервью
Даёт аргументы для мобильных архитектурных вопросов, где важны реальные ограничения устройства.
Источник
Android
Архитектура Android, особенности и сценарии применения.
Что такое Android
Android полезно понимать не как просто «Linux на телефоне», а как мобильную платформу, где ядро, системные сервисы, модель безопасности и жизненный цикл приложений подстроены под ограничения устройства.
Android строится так, что приложений отделено от , а доступ к экрану, сети, файлам и устройствам проходит через системные сервисы и .
На прикладном уровне запуск начинается с , продолжается через , и . Для архитектора это важно, потому что мобильный клиент живёт под ограничениями , памяти, сети и хвостовой .
Даже если команда не работает напрямую с Linux-механизмами вроде и , именно они помогают изолировать процессы и ограничивать расход ресурсов. Отсюда растут требования к локальной устойчивости, и осторожному мобильных изменений.
Базовая архитектура Android
Эту платформу удобнее читать как набор слоёв: сверху находятся приложения и системный фреймворк, ниже среда выполнения и нативные библиотеки, а ещё ниже слои, которые связывают Android с железом.
Слой приложений
Приложения и фреймворк
Приложения
Пользовательские приложения, системный интерфейс и точка входа в сценарии устройства.
- Системный интерфейс
- Launcher
- Приложения
Фреймворк приложений
Системные сервисы, диспетчеры экранов и базовые API для приложений.
- ActivityManager
- WindowManager
- Content Providers
Слой исполнения
Среда выполнения и нативные библиотеки
Среда выполнения Android (ART)
Исполнение кода приложений, управление памятью и загрузка классов.
- ART
- Сборка мусора
- Загрузчик классов
Нативные библиотеки
Библиотеки платформы для графики, мультимедиа и локального хранения.
- Графика
- Мультимедиа
- SQLite
Базовый системный слой
HAL и ядро Linux
Аппаратный абстракционный слой (HAL)
Слой, который унифицирует доступ к камере, аудио, сенсорам, GPS и модему.
- Камера
- Аудио
- Сенсоры
Ядро Linux
Планирование, память, сеть и драйверы устройств.
- Планировщик
- Память
- Драйверы
Устройства
Аппаратная основа
Как запускается мобильное приложение
Даже один экран на телефоне проходит через несколько слоёв: системный запрос на запуск, системные сервисы, среду выполнения, обращения к ядру и затем графический вывод на экран.
Запуск мобильного приложения
От запуска до кадра на экране: как запрос проходит через слои Android
Приложение
Слой 1Фреймворк Android
Слой 2Среда выполнения Android
Слой 3Нативные библиотеки
Слой 4Ядро Linux
Слой 5Устройство
Слой 6Текущий шаг
Нажмите «Старт», чтобы увидеть цепочку запуска.
Ключевые особенности Android
- Жёсткая изоляция приложений и встроенная в платформу модель разрешений.
- Управляемый жизненный цикл экранов, сервисов и фоновых задач.
- Жёсткий контроль фоновой активности ради батареи, памяти и сетевых ресурсов.
- Глубокая интеграция с сенсорами, камерой, геолокацией и телефонией.
- Стандартизованный путь распространения, обновления и отката приложений.
Связанная глава
Linux: серверная платформа
Базовая архитектура Linux и причины, почему он стал стандартом серверной инфраструктуры.
Чем Android отличается от классического Linux
Android использует ядро Linux, но строит вокруг него собственное пользовательское пространство, системные сервисы и библиотеку bionic вместо glibc.
Приложения исполняются в ART и подчиняются жизненному циклу Activity и Service, а не модели долгоживущих обычных процессов.
Безопасность сильнее завязана на песочницы приложений, разрешения и посреднический доступ к возможностям устройства.
Вся платформа проектируется под батарею, мобильную сеть, ограниченный фон и работу с сенсорами.
Почему это важно для системного дизайна
- Мобильный клиент живёт в условиях ограниченных батареи, памяти и процессорного времени, поэтому архитектура должна экономно расходовать ресурсы.
- Связь нестабильна, поэтому важны локальное состояние, кэширование, очередь синхронизации и аккуратная работа с повторами.
- Фоновые ограничения ОС влияют на уведомления, расписание задач и момент, когда данные действительно доходят до сервера.
- Разрешения, приватность и доступ к сенсорам меняют контракт между продуктом, API и пользовательским опытом.
- Поэтапный выпуск обновлений и диагностика проблем на устройстве так же важны, как серверная эксплуатация.
Связанные главы
- Почему фундаментальные знания важны - даёт контекст о том, как ограничения железа и операционной системы формируют мобильную архитектуру.
- Операционная система: обзор - помогает закрепить границу между приложением, системными сервисами и ядром.
- Linux: серверная платформа - объясняет, на каких механизмах Linux держится базовое поведение Android.
- UNIX и Linux: эволюция платформ - добавляет исторический контекст того, как идеи Unix и Linux дошли до мобильных платформ.
- Контейнеризация - связывает изоляцию процессов в Android с общими механизмами Linux.
- RAM и хранилище - показывает, почему память, хранилище и их задержки особенно заметны на мобильных устройствах.
- Модель OSI - помогает разбирать сетевой путь мобильного приложения и источники задержек.
- Engineering Reliable Mobile Applications (short summary) - расширяет практики надёжности, наблюдаемости и безопасного выпуска изменений для мобильных клиентов.
