Каковы хорошие рекомендации по поддержанию размера файла приложения iPhone менее 10,0 МБ? - PullRequest
5 голосов
/ 28 мая 2009

Я хочу, чтобы мое приложение не превышало 10,0 МБ для быстрой загрузки как в сотовых сетях, так и в сетях Wifi. По вашему опыту, вы сталкивались с какими-нибудь хорошими способами сохранить свои приложения тонкими? Если так, пожалуйста, поделитесь. Каковы хорошие рекомендации по поддержанию размера файла приложения iPhone менее 10,0 МБ?

Ответы [ 6 ]

6 голосов
/ 28 мая 2009

Большинство приложений, с которыми я сталкивался, которые превышают 10 миллионов, связаны с ресурсами, часто изображениями и аудио. Правильно подобрать их размер очень важно. Обратите внимание, что iPhone автоматически выполняет некоторую компрессию для вас при комплектации для устройства, поэтому размер вещей в Simulator может радикально отличаться от размера на устройстве.

Как и во всех упражнениях по оптимизации, вы хотите сначала создать надежную и разумную систему, а затем сосредоточить свои усилия по оптимизации на тех деталях, которые вызывают самые большие проблемы. Я использую du для этого:

  • Сборка устройства в версии
  • Перейти к сборке / Release-iphoneos / .app
  • du -ak | sort -rn | head

Это даст вам список того, где находятся лучшие вещи. Эта информация находится в килобайтах, но округляется до следующего блока (4 килобайта на Mac). Но вы просто ищете что-то большое, а не определяете точный размер всего.

Ищите особенно те вещи, которые копируются в ваши Ресурсы, которых не должно быть. Иногда появляются забавные вещи, особенно документация, которую вы добавили в проект. Проверяя это, я замечаю, что мой собственный шаблон проекта копирует файлы xcconfig в пакет (нужно исправить это ...)

Если у вас много локализованных NIB, то вы можете рассмотреть возможность не локализовать NIB, а использовать IBOutlet UILabels. Не локализуйте NIB, если нет фактически локализованного текста. Тот факт, что вы локализуете один NIB, не означает, что вам нужно локализовать все из них.

Как правило, настройки сборки для iPhone уже агрессивны в уменьшении размера, так что я бы не стал возиться с этим, не исследуя то, что вы меняете.

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

3 голосов
/ 28 мая 2009

Еще один совет: Будьте осторожны с вашим 9,9 МБ приложением !

После многих оптимизаций вы не хотите обнаруживать, что ваше приложение имеет размер 10,1 МБ.

2 голосов
/ 28 мая 2009

Один совет будет использовать сжатые медиа форматы. Например. если вы используете аудиофайлы, вы можете рассмотреть возможность использования mp3 вместо AIFF или WAV, при возможной цене чуть более высоких затрат на обработку. Исполняемый файл размером 10 Мбайт звучит необычно высоко, поэтому, возможно, такое большое приложение будет содержать много медиа-контента (изображений, аудио).

1 голос
/ 25 сентября 2009

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

0 голосов
/ 25 сентября 2009

Этот типос будет в основном применяться к играм для iPhone:

  • Используйте JPG вместо PNG для изображений, которые не имеют прозрачности.
  • Сохраняйте звуки в формате mp3, визуализируйте их в WAV при первой загрузке приложения и сохраняйте их в приложении Documents dir.
0 голосов
/ 28 мая 2009

Процесс сборки автоматически сжимает файлы PNG для вас (используя pngcrush, не делайте этого самостоятельно), так что на самом деле вам потребуется достаточно много ресурсов, чтобы получить более 10 МБ размера. Я думаю, что беспокоиться об этом - преждевременная оптимизация, и вам, вероятно, не стоит беспокоиться, пока вы не окажетесь ближе.

...