×

Android 13 против ios 17: инженерный разрез

Android 13 и iOS 17 ушли в противоположные направления эволюции: первая платформа ставит на гибкость, вторая — на предсказуемую целостность. Я рассматриваю различия сквозь призму драйверов, стеков безопасности и пользовательского опыта.

Android_iOS

Архитектура ядра

Linux-ядро Android 13 получило версию 5.15 LTS, где присутствует Rust-код, снижающий риск порчи данных через use-after-free. В iOS 17 микроядро XNU сохраняет гибрид Mach+BSD. Mach обеспечивает асинхронные сообщения, BSD-подсистема отвечает за файловую и сетевую части. При 10 000 контекстных переключений в секунду Android фиксирует латентность 280 мкс, iOS — 190 мкс: влияет меньший объём системных вызовов и агрессивная коалесценция таймеров.

Для энергосбережения Android применяет Uclamp, корректирующий минимальную частоту ядра per-task. iOS использует Commpage — набор часто вызываемых функций в разделяемой памяти, сокращающих прыжки в ядро.

В драйверном пространстве Android опирается на Generic Kernel Image, избавляя вендоров отправки coreplayer. iOS использует kext-монолит, однако вводит Code Signing Enforcement Level 3, блокирующий недекларированные сегменты.

Приватность данных

Android 13 внедряет Photo Picker — системный медиабраузер, фильтрующий доступ приложений к изображениям без прямого чтения /DCIM. iOS 17 вводит API SmallDomain: каждое приложение получает стек sandbox-extensions, лимитированных по времени.

Сообщения внутри iMessage обрабатывает изолят BlastDoor с eBPF-фильтрацией. Android отвечает модулем Mainline Conscrypt с TLS 1.3 и Post-Quantum-GREASE.

SELinux в режиме enforcing обрабатывает 2,4 млн policey-запросов за сутки при среднестатистическом использовании. В лагере iOS мандатный контроль реализует Sandbox Profile Language, количество syscalls, прошедших фильтр, держится в районе 1,1 млн за такой же интервал.

Geo-приватность: Android активирует псевдонимный MAC-адрес при каждом новом SSID, iOS применяет Private Relay с двойным шифрованием: первым слоем владеет Apple, вторым — CDN-партнёр, что исключает сбор полного маршрута.

Экосистема и обновления

Google перевёл системные модули в APEX-формат, благодаря чему патчи приходят через Play System Update независимо от загрузчика. Apple остаётся на монолитном релизе, однако уменьшает вес пакетов, используя дифф-подписи через HTTP/2 Push. Патч критической уязвимости CVE-2023-41064 разошёлся за 22 дня на Android и за 5 дней на iOS.

Сторонние магазины в Android опираются на Split-APK, облегчающий доставку модулей. iOS пока ограничен TestFlight, на iOS 17 открыл CallKit для VoIP-клиентов из Enterprise-канала.

Разработчику: работа с NDK в Android предполагает написание proguard-конфигов, иначе method-count пересекает границу 65 535, приводя к multi-dex. SwiftPM в iOS генерирует X C Framework, избавляя от ручного lipo-мерджа.

Для сетевого стека Android задействует QUIC v1 внутри сервисов Google и DoH/3, поднимая средний RTT на 12 % при падении повторных пакетов. iOS переводит iCloud на HTTP/3, получая схожий прирост задержки, но снижая объём перехранимых пакетов благодаря Hybrid Loss Recovery.

Управление памятью: Android 13 с ZRAM+LMK удерживает восемь фоновых приложений на Pixel 7. iOS 17 через Jetsam выгружает апплет при своембодных 140 МиБ, однако Snapshot сохраняет стек страниц, ускоряя возврат.

Выбор упирается в приоритеты: кастомизация против интеграции, гибкость драйверов против строгого рестрикционизма. Компромисс напоминает межтканевую плёнку, скрепляющую разнородные металлы: именно такой слой способствует прочности будущего мобильного ландшафта.