2009-07-21 10 views
4

Der RIM-Compiler führt zusätzliche Optimierung und Komprimierung der resultierenden ".jar" beim Erstellen der endgültigen COD-Datei durch, aber es gibt Dinge, die vom Entwickler zu erheblich gemacht werden können Reduzieren Sie die endgültige COD-Dateigröße.Optimieren für eine kleinere .cod (.jar) Datei

Eine solche Sache wäre PNGCrush, OptiPNG, oder ein ähnliches Tool, um die Größe der enthaltenen .png-Dateien zu reduzieren. In einer Anwendung mit einer großen Anzahl von Bilddateien (z. B. einer App mit einer benutzerdefinierten Benutzeroberfläche) kann dies zu einer erheblichen Reduzierung der endgültigen COD-Dateigröße führen.

Haben Sie Tipps zur Optimierung der endgültigen COD-Datei für die Größe? Was ist im .java Code selbst zu tun? Was ist in der Projektstruktur zu tun? Was ist mit den Dateien oder Ressourcen zu tun?

Danke!

Antwort

3

Gute Frage!

  • Compression (GZip, ZLib) kann nützlich sein, wenn große bin/txt/XML-Dateien zu installieren

Und das ist, was sie in RIM sagen:

Auch interesting facts:

Alle Bilder waren PNG-Format. Ich möchte wissen, warum: mit JDE 4.5 kompilieren -> 900k, kompilieren JDE 4.2, 2.6.1, 4.7 -> 1800k. Was ist die Differenz ? Vielen Dank !


Es scheint, dass JDE 4.5 mehr Optimierungstechniken als ältere JDE Versionen verwendet.


Überprüfen Sie das Bild unten, wird es durch PngOut von 55 K PNG-Bild erzeugt. Es ist Größe ist 3427 Bytes

2

Ich glaube, Sie sicherlich eine shrinker (und Optimierer/obfusticator) wie ProGuard (http://sourceforge.net/projects/proguard/) zu betrachten. Dadurch können Sie Ihren Java-Code verkleinern, indem Sie vollständige Klassennamen in verkürzte Versionen zusammenfassen, nicht verwendeten Code entfernen usw. Dadurch kann die Effizienz des Codes verbessert werden. Es ist großartig. Der einzige schwierige Teil besteht darin, den Build zu modifizieren, um die generierten Klassendateien zu optimieren, bevor der RIM-Build-Code in die Hände kommt, um ein .cod zu erstellen.

+0

RIM verwendet bereits einen eigenen Obfusticator. –

1

Ein guter Ansatz ist, alle Ressourcen GZIP und dann net.rim.device.api.compress.GZIPInputStream Klasse zu laden, um komprimierte Dateien zu laden. Auf diese Weise müssen Sie den Dekomprimierungscode nicht selbst implementieren.

Sie können auch pngout zum Optimieren von Bildressourcen verwenden.

1

Stellen Sie sicher, dass Sie möglichst PNG-8 anstelle von PNG-24 verwenden. Versuchen Sie, die Anzahl der Farben in der Palette zu minimieren. Verwenden Sie danach PngOut.

Wie für ProGuard, habe ich Probleme mit alten BB-Geräten bei der Verwendung Optimierung von Progruard ("-dontoptimize" -Schalter) - also verwenden Sie es vorsichtig, obwohl es ein großartiges Werkzeug ist.