Отличия Android и iOS для тестировщика

Интерактивная шпаргалка для тестировщиков по основам мобильных ОС и их жизненным циклам.

Общая архитектура 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
Многозадачность Настоящая многозадачность, сервисы в фоне Ограниченная фоновая работа
Хотите получить видео и расширенный разбор этого вопроса?
Приобретите курс «Тестирование ПО с нуля. Уровень PRO» по ссылке.