Comments 16
А стоит ли овчинка выделки? Сколько места удалось сэкономить на реальном приложении?
Все зависит от проекта и контента. Если у вас порядка 1мб картинок GUI, то и родной pngcrush, и optipng дадут порядка 1-2% оптимизации, т.е. 10-20кб. Но если речь об игре на 20+мб, где есть и текстуры, и музыка, и сплеш-скрины в JPG, то пару мегабайт можно выиграть. Тут уже каждому стоит самому решать что в скрипт писать и какой контент оптимизировать.

У меня был случай, когда для моб. проекта музыку выдавали в MP3, сжатом c CBR 320кбит, стерео (160кбит на канал). Простейшая команда
ffmpeg -i music.mp3 -ac 1 music_tmp.mp3
делает из нее 64кбит VBR моно, который в 5 раз меньше, а из динамика телефона звучит точно так же. Конечно, это крайний случай и я не призываю так ужимать музыку, но если политика студии позволяет, то вполне можно подбную конверсию писать в iphoneos-optimize, а в проекте хранить в исходном качестве.
А ничего, что музыку на телефоне многие слушают в наушниках?
Дело в том, что приложение по 3G на iOS можно загрузить только до 20Мб. И если у вас, скажем, игра 100Мб — то вам все равно. А вот если она 23-25Мб — то начинаются танцы с бубном в борьбе за каждые 100 байт. Просто многие, если не могут скачать сейчас — не скачают никогда.

Сам в скриптах не копался, просто подготавливал ресурсы и прогонял их через оптимизаторы для наших игр. Каково же было мое удивление, когда я отключил встроенный оптимизатор XCodе и игра стала весить не 22 а 18Мб!
Сейчас ограничение на размер приложения в 20Мб сместили до 50Мб.
Стало немного вольготнее. Но все равно не стоит злоупотреблять размерами приложения. ИМХО чем меньше приложение тем лучше, не в ущерб качеству конечно.
Это точно. PC стали вместительнее, и вместе с этим стал расти софт непропорционально сложности — все перестали экономить место, и винт в 120 Гб, казавшийся N лет назад жутко большим, уже можно выбрасывать на свалку. Я потому и пришёл в мобильные приложения, что здесь умеют экономить ресурсы.
это из-за ретина-ipad. Увеличение допустимого размера произошло одновременно с его выходом. И не зря. Размер приложения увеличивается как раз раза в 2 с его поддержкой
Отличная программа! Тоже рекомендую! Особенно в ней хорошо, что можно перетащить хоть весь проект и она там все «наоптимизирует» и положит все там, где взяла. Никаких копирований, замен файлов и т.д. Только, как писал выше, нужно встроенный оптимизатор отключать, а то толку будет меньше.
Спасибо! Эта программа отлично подошла для оптимизации 945-ти картинок в проекте на Corona SDK, не потребовалось никаких дополнительных настроек. Очень рекомендую.
Не пробовали зашивать это все дело в спрайтшиты? Мне такой подход позволил значительно сократить размер приложения и расход видеопамяти.
Спрайтшиты очень помогают.
Для создани рекомендую использовать www.codeandweb.com/texturepacker
Поддерживается многоми игровыми движками
Позволяет довольно неплохо уплотнять текстуры и сохранять их в разных форматах.
>>CBR 320кбит, стерео (160кбит на канал).
>>Простейшая команда делает из нее 64кбит VBR моно
Лёгким движением руки брюки превращаются…

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

2. минимальное изменение и команда
ffmpeg -i music.mp3 -ab 128 music_tmp.mp3
дает нам в 2.5 раза уменьшеный файл c VBR 128кбит при сравнимом качестве с оригиналом (CBR 320кбит).

да и вообще речь не о том. iphone-optimize вызывается самим XCode, потому сам Бог велел туда добавлять свои оптимизации чего-угодно и в каком-угодно виде.
Разительного эффекта оптимизации можно достигнуть, обнаружив, что настройки проекта на самом таковы, что strip не выполняется. =)

На больших проектах также помогает --gc-sections.
Тут вот спрашивали о выигрыше с этой оптимизацией. Пересобирал на днях игру (не анонсированный проект, не могу детальнее), размер .IPA файла вышел 38,2Mb — HD версия для iPad 3. Сегодня собрал с скриптом, который на paste2 и получилось 36,5Mb. Все текстуры в pvr.gz, потому оптимизировлись только JPG/PNG файлы интерфейса:
image
Only those users with full accounts are able to leave comments. Log in, please.