Почему приложения Android меньше по размеру, чем приложения iOS?

Несколько вещей способствуют увеличению размера приложений iOS:

  1. Приложения для iOS распространяются в виде собственного кода, который выполняется непосредственно на ЦП, но Apple поставила несколько разных архитектур ЦП, поэтому они включают разные копии кода приложения для каждого ЦП. Они даже включают «полукомпилированную» версию, которую App Store может оптимизировать для новых устройств. К счастью, каждое устройство загружает только копию кода своего ЦП, но размер, указанный в App Store, включает все версии.

    Приложения Android распространяются как независимый от процессора «байт-код», который преобразуется в собственный код устройства во время выполнения. Это более переносимо, но добавляет накладных расходов.

  2. Приложения для iOS обычно включают в себя несколько разных версий своих рисунков — разрешение 2x и 3x, цветовые пространства sRGB и P3, иногда отдельные версии для iPhone и iPad. Опять же, каждое устройство загружает обложку только для своего экрана, но размер, указанный в App Store, включает все версии.

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

  3. Приложения iOS могут включать в себя приложение Apple Watch, которое на iOS представляет собой совершенно отдельное приложение со своим собственным кодом, графическими объектами и ресурсами. Опять же, только устройства, подключенные к Apple Watch, будут загружать приложение Watch, но его размер указан в App Store.

    Приложения Android Wear интегрированы в приложение основного устройства. Это заставляет его выглядеть меньше, но означает, что все приложение, а не только части, связанные с часами, должно быть загружено в крошечную флэш-память часов.

  4. Приложения для iOS в наши дни часто пишутся на новом языке программирования Apple — Swift, но Swift все еще в движении. Вместо того чтобы включать свои быстро меняющиеся библиотеки поддержки в iOS, приложения, использующие Swift, включают свои собственные частные копии этих библиотек. Для каждого фреймворка, который использует приложение, есть один фреймворк, и каждый фреймворк добавляет пару мегабайт. (Иногда разработчик что-то неправильно настраивает, и в конечном итоге он включает несколько копий одной из этих библиотек!) Ожидается, что библиотеки поддержки Swift стабилизируются в следующей версии, поэтому эта ситуация начнет разрешаться в 2018 году.

    Новый язык Android, Kotlin, более тесно интегрируется в существующую инфраструктуру Android и не нуждается в таких библиотеках поддержки. Но это обходится дорого: библиотеки поддержки Swift позволяют предлагать новые функции, которые делают приложения более надежными; Kotlin не может соответствовать этим функциям, потому что он не может радикально изменить базовую инфраструктуру.

1–3 больше о размере, указанном в App Store, чем о реальном размере на устройстве; 4 временная ситуация. Так что ситуация не так плоха, как кажется.

0

Ура! Вы первые нашли эту информацию, сделайте доброе дело, поделитесь ей в: