Оптимизация для меньшего файла .cod (.jar) - PullRequest
4 голосов
/ 22 июля 2009

Компилятор RIM выполняет дополнительную оптимизацию и сжатие результирующего «.jar» при создании окончательного файла .cod, но есть вещи, которые может сделать разработчик, чтобы значительно уменьшить окончательный размер файла .cod.

Одной из таких вещей будет запуск PNGCrush , OptiPNG или аналогичного инструмента для уменьшения размера включаемых файлов .png. В приложении с большим количеством файлов изображений (например, в приложении с пользовательским интерфейсом) это может привести к значительному уменьшению конечного размера файла .cod.

Есть ли у вас какие-либо советы по оптимизации конечного файла .cod для размера? Что-то сделать в самом коде .java? Что нужно сделать в структуре проекта? Что делать с файлами или ресурсами?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 22 июля 2009

Хороший вопрос!

  • Сжатие ( GZip , ZLib ) может быть полезно при установке больших файлов bin / txt / xml

И вот что они говорят в RIM:

Также интересные факты :

Все изображения были в формате PNG. я бы хотел знаю почему: скомпилировать с JDE 4.5 -> 900k, скомпилируйте JDE 4.2, 2.6.1, 4.7 -> 1800K. Какая разница? Спасибо !


Кажется, что JDE 4.5 использует больше методов оптимизации, чем старый JDE версии.


Проверьте изображение ниже, оно получено с помощью PngOut из 55 K PNG изображения. Это размер 3427 байт

2 голосов
/ 22 июля 2009

Я думаю, вы наверняка захотите рассмотреть сжатие (и оптимизатор / обфустикатор), такое как ProGuard (http://sourceforge.net/projects/proguard/).). Это может сжать ваш код Java, свернув полные имена классов в сокращенные версии, удалив неиспользуемый код и т. Д. способ улучшить эффективность кода. Это здорово. Единственная сложная часть - это модификация вашей сборки, чтобы оптимизировать сгенерированные файлы классов до того, как материал сборки RIM попадет в руки, чтобы сделать .cod.

1 голос
/ 08 августа 2009

Убедитесь, что вы используете PNG-8 вместо PNG-24, когда это возможно. Попробуйте свести к минимуму количество цветов в палитре. После этого используйте PngOut.

Что касается ProGuard, у меня возникают проблемы на старых устройствах BB при использовании функции оптимизации Progruard (переключатель -dontoptimize) - поэтому используйте его осторожно, хотя это отличный инструмент.

1 голос
/ 23 июля 2009

Хорошим подходом является GZIP для всех ресурсов, а затем для загрузки сжатых файлов используется класс net.rim.device.api.compress.GZIPInputStream Таким образом, вам не нужно реализовывать код распаковки самостоятельно.

Также вы можете использовать pngout для оптимизации ресурсов изображения.

...