Различия в размерах файлов приложений в Android и iOS - PullRequest
28 голосов
/ 02 декабря 2011

Работая с обоими службами распространения приложений (Android Market и Apple App Store), я обнаружил загадку.

Размер файла приложения в целом больше для приложения Apple, чем для приложения Android.Кажется, я не могу найти никакого объяснения различий, и это, кажется, нетронутая тема.

Я пробовал множество разных приложений, и разница, кажется, варьируется от пары МБ до 6-8MB.Итак, вопрос в том, почему размер файла больше для приложений Apple?Для чего используется дополнительный МБ?

Примеры:

BBC:

Android: 918K - https://market.android.com/details?id=bbc.mobile.news.ww

Apple: 6,7 МБ - http://itunes.apple.com/dk/app/bbc-news/id364147881?mt=8

Из-за предотвращения спама я не могу напрямую связаться с остальными.

British Airways

Android: 1,2 МБ

Apple: 7,9 МБ

Северный берег

Android: 2,1 МБ

Apple: 6,4 МБ

БанкАмерика

Android: 727K

Apple: 2,1 МБ

Я мог бы продолжить ... Если кто-нибудь может предоставить статистику по размеру файла для двух дистрибутивов приложений, подтверждая илиопровергнуть мою теорию.- Я был бы признателен за это.

Ответы [ 4 ]

19 голосов
/ 29 апреля 2012

Я только что провел последний день или около того, пытаясь отследить эту проблему. Я создал небольшую игру под названием BlockIT для Android, и теперь у меня есть работающая версия для iOS. Чрезвычайно странным является то, что версия Android составляет 8,2 МБ, а версия iOS - 14,1 МБ.

Теперь, поскольку я владелец источника, я хотел отследить это и выяснить, почему. Как многие предполагают здесь, что это графические элементы - это не так. Весь набор данных (не код) был практически идентичен в каждом пакете. Это имеет смысл, поскольку я использую одну и ту же графику в каждом приложении.

Итак, почему сборка кода так сильно отличается! Моя сборка кода для iOS была почти 7 МБ, а для Android - менее 3 МБ. Сам код был написан для одинаковой работы, и все части кода, кроме небольших, абсолютно одинаковы на каждой платформе. Я обнаружил, что настройки сборки (iOS gcc) оказали огромное влияние на размер выходного файла. Если вы установите только целевой ARM6 или ARM7, то размер моего двоичного кода уменьшится с 7 МБ до 5 МБ. Это указывает на то, что в одном двоичном файле есть почти полные дубликаты функций и библиотек для каждой цели! Кроме того, встроенные символы отладки, кажется, не полностью удалены. Наконец, шифрование кода также стоит больших сумм. Это, наверное, самое загадочное, поскольку Android подписывает свои apk аналогичным образом. Похоже, что подписание iOS сделано очень странно.

Итак, я надеюсь, что это поможет. Для повторения:
- Изображения / данные не являются проблемой
- Построение кода на iOS генерирует несколько выходных данных платформы в одном двоичном коде == много дополнительного кода (кстати, я не понимаю, почему Apple это делает - кажется странным).
- Шифрование кода не очень подходит для iOS.

Нет реального способа исправить реальную проблему (опять же, странно и неутешительно).

6 голосов
/ 02 декабря 2011

Бинарный исполняемый файл в приложении для iOS зашифрован и, следовательно, сжимается очень плохо или не сжимается вообще. Бинарный исполняемый файл в приложении iOS скомпилирован со статически связанным библиотечным кодом, который часто может сделать его больше, чем интерпретированный байт-код Dalvik для подобных вещей. Приложения для iPhone, как правило, содержат более качественный графический контент и графические объекты для нескольких разрешений экрана, включая относительно большой дисплей iPad.

1 голос
/ 02 декабря 2011

Для универсального приложения в iPhone нам нужно поместить изображения трех размеров -

один для 320x480 px
секунда для 640x940 пикселей (сетчатка)
третий для 768x1024 (iPad)

где при разработке приложения для Android нам нужно поместить три вида изображений -

HDI (высокий)
MDP (средний)
ldpi (низкий)

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

0 голосов
/ 02 декабря 2011

По моему мнению, разработчики Apple используют больше полноэкранных изображений (в низком разрешении и Retina) и гораздо больше изображений, чем Android, а файлы определений пользовательского интерфейса для iPhone (.XIB) намного больше, чем файлы XML, используемые в Android. Также должно быть различие Сжатия в упаковке (.APK) так сильно сжато! И, наконец, может быть, разница в том, что включает в себя фреймворки, но по этому вопросу я понятия не имею :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...