Общая архитектура Android
Android — это операционная система от Google, построенная на базе ядра Linux. Наведите на каждый слой, чтобы узнать его назначение.
Linux Kernel
Драйверы и управление основными ресурсами: память, процессы, сеть, безопасность.
Hardware Abstraction Layer (HAL)
Прослойка (библиотеки) для взаимодействия с 'железом' - камерой, Bluetooth, GPS.
Android Runtime (ART)
Среда выполнения, где исполняется код приложений. Каждое приложение работает в своем процессе.
Application Framework
Высокоуровневые сервисы, с которыми работают разработчики: Activity Manager, Content Providers и т.д.
Компоненты приложения Android
- Activity — Один экран приложения (например, экран входа или профиля).
- Fragment — Часть экрана. Activity может содержать несколько фрагментов.
- Service — Компонент для фоновой работы без UI (например, загрузка файла).
- Broadcast Receiver — "Слушатель" системных событий (например, "батарея разряжена").
- Content Provider — Механизм для обмена данными между приложениями.
Жизненный цикл Activity (Android)
Каждый экран (Activity) в Android проходит через определенные состояния. Неправильная обработка этих состояний — частая причина багов (например, краш при повороте экрана).
MyApp
Текущее состояние: Не запущено
Состояние: Создано
onCreate()
Состояние: Видимо
onStart()
onStop()
Состояние: Активно (в фокусе)
onResume()
onPause()
Состояние: Уничтожено
onDestroy()
Архитектура iOS
iOS — это закрытая мобильная ОС от Apple, построенная на базе UNIX. Наведите на каждый слой, чтобы узнать его назначение.
Core OS
Низкоуровневые компоненты, основанные на UNIX: ядро XNU, драйверы, работа с файловой системой.
Core Services
Фундаментальные системные сервисы: работа с сетью, базами данных (Core Data), геолокацией.
Media Layer
Все, что связано с графикой, аудио и видео: OpenGL, Metal, Core Animation.
Cocoa Touch
Высокоуровневый фреймворк для создания UI (UIKit) и обработки событий пользователя.
Компоненты приложения iOS
- UIViewController — Аналог Activity, управляет одним экраном или его частью.
- AppDelegate — Главный объект приложения, отвечает за его запуск и глобальные события.
- SceneDelegate — Управляет жизненным циклом одного экземпляра UI (сцены).
Жизненный цикл UIViewController (iOS)
Экраны в iOS также проходят через свой жизненный цикл. Баги часто возникают при переходе между состояниями, особенно при проблемах с сетью.
MyApp
Текущее состояние: Не запущено
Состояние: Загрузка View
viewDidLoad()
Состояние: Появление на экране
viewWillAppear()
viewDidAppear()
Состояние: Исчезновение с экрана
viewWillDisappear()
viewDidDisappear()
Сравнение Android vs iOS
Характеристика | Android | iOS |
---|---|---|
Основа ОС | Ядро Linux | UNIX-подобное ядро XNU |
Исходный код | Открытый (AOSP) | Закрытый |
Языки разработки | Kotlin, Java | Swift, Objective-C |
Основной компонент экрана | Activity / Fragment | UIViewController |
Точка входа в приложение | Любая Activity, помеченная как LAUNCHER | AppDelegate |
Многозадачность | Настоящая многозадачность, сервисы в фоне | Ограниченная фоновая работа |