Различия iOS и Android на техническом уровне

Различия iOS и Android на техническом уровнеВсегда удивляло, что за врожденные проблемы есть у Android с его лагами и прожорливостью в сравнении с iOS. Так что же мешает именно на техническом уровне добиться той же стабильности?

На самом деле различия существуют на многих уровнях, но с точки зрения производительности и общей архитектуры есть несколько наблюдений.


Потребляемая мощность

iOS больше участвует в управлении установленными приложениями, устанавливая лимиты на такие вещи, как время работы в фоновом режиме после его остановки пользователем и в ограничении доступа к ресурсоемким услугам (к примеру, информирование о местоположении). Данная ОС строже следит (в теории) за соблюдение общих принципов, уменьшающих возможность утечек энергии на отключенные приложения.

Управление памятью

На мобильных устройствах ресурсы зачастую ограничены, и один из наиболее заметных – оперативная память. Android использует метод, называемый «сбор мусора», в то время как iOS использует более продуктивный подход, называемый «подсчет ссылок». В этом случае память распределяется на объекты по мере необходимости - когда объект больше не нужен, память сразу отключается от него и, таким образом, тут же становится доступной для использования другим объектом.

Различия iOS и Android на техническом уровне

В случае с Android ненужные объекты просто откладываются в сторону. «Сборщик мусора» использует вычислительные циклы и необходимые ресурсы для просмотра неиспользуемых объектов и «очистки» памяти от них через какой-то неопределенный момент после того, как объект больше не нужен. Подход Android менее эффективен, но проще для реализации программистом.

Производительность анимации

iOS во многом выгоднее сочетает начинку оборудования и программное обеспечение, но традиционно одной из самых заметных является способность обрабатывать анимацию и рисунки с аппаратным ускорением, причем неявно. Хотя более свежие версии Android и поддерживают аппаратное ускорение, но это только некоторые версии и на определенном оборудовании… Так что в данном случае это не показатель.

Разработка ОС

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

Настройки ограничены для обеспечения определенных принципов и сохранения статус-кво. Разработки для не Apple оборудования крайне сложные, если вообще возможны. Проектирование периферии для iOS осложнено потому, что всё должно соответствовать очень строгим стандартам.

Android же изначально разрабатывался для простого использования производителями оборудования. Очень гибкий подход с огромным разнообразием аппаратных компонентов, позволяющих ему работать на тысячах самых разных устройств. Android предоставляет основную структуру и позволяет производителям оборудования и разработчикам лепить его под свои нужды.

Это обеспечивает большую гибкость, но при этом не хватает многих инструментов, таких как возможность использования GPU для кодирования видео, коммуникации iOS и Android через Bluetooth и т.д., потому что нет строгих требований к производителям для аппаратной поддержки данных функций и, следовательно, не проектируются интерфейсы API для их поддержки. Это делает жизнь разработчиков для ОС Android сложнее.

[sotmarket_info_3columns_both_default_910121, 696331, 819931__]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика