2009-07-21 3 views
4

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

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

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

Спасибо!

ответ

3

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

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

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

Кроме того, interesting facts:

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


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


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

2

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

+0

RIM уже использует собственный обфустификатор. –

1

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

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

1

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

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

Смежные вопросы