2009-07-21 6 views
4

Le compilateur RIM effectue une optimisation et une compression supplémentaires sur le fichier ".jar" résultant lors de la création du fichier .cod final, mais le développeur peut effectuer des tâches significatives réduire la taille finale du fichier .cod.Optimisation pour un fichier .cod plus petit (.jar)

Une telle chose serait d'exécuter PNGCrush, OptiPNG, ou un outil similaire pour réduire la taille des fichiers .png inclus. Dans une application avec un grand nombre de fichiers image (comme une application avec une interface utilisateur personnalisée), cela peut entraîner une réduction significative de la taille finale du fichier .cod.

Avez-vous des conseils pour optimiser le fichier .cod final pour la taille? Quelque chose à faire dans le code .java lui-même? Quelque chose à faire dans la structure du projet? Quelque chose à faire pour les fichiers ou les ressources?

Merci!

Répondre

3

Bonne question!

  • Compression (GZip, ZLib) peut être utile lors de l'installation de grands bin/txt/fichiers xml

Et c'est ce qu'ils disent dans RIM:

Aussi, interesting facts:

Toutes les images ont été format PNG. Je veux savoir pourquoi: compiler avec JDE 4.5 -> 900k, compiler JDE 4.2, 2.6.1, 4.7 -> 1800k. Quelle est la difference ? Merci !


Il semble que JDE 4.5 utilise plus des techniques d'optimisation que les anciennes versions JDE .


Vérifiez l'image ci-dessous, il produit par PngOut de l'image 55 K .png. Sa taille est 3427 octets

2

Je pense que vous voulez certainement envisager un shrinker (et optimiseur/obfusticator) comme ProGuard (http://sourceforge.net/projects/proguard/). Cela peut réduire votre code Java en réduisant les noms des classes entières en versions raccourcies, en supprimant le code inutilisé, etc. En cours de route, cela peut améliorer l'efficacité du code. C'est bien. La seule partie difficile est de modifier votre build pour optimiser les fichiers de classes générés avant que les trucs de build de RIM ne l'atteignent pour faire un .cod.

+0

RIM utilise déjà son propre obfusticator. –

1

Une bonne approche consiste à GZIP toutes les ressources, puis à utiliser la classe net.rim.device.api.compress.GZIPInputStream pour charger les fichiers compressés. De cette façon, vous n'avez pas besoin d'implémenter le code de décompression par vous-même.

Vous pouvez également utiliser pngout pour optimiser les ressources d'image.

1

Assurez-vous d'utiliser le format PNG-8 au lieu du format PNG-24 lorsque cela est possible. Essayez de minimiser le nombre de couleurs dans la palette. Après cela, utilisez PngOut. En ce qui concerne ProGuard, j'ai des problèmes avec les anciens périphériques BB lorsque j'utilise l'optimisation de la portée de Progruard ("-dontoptimize") - alors utilisez-le avec soin, même si c'est un outil génial.

Questions connexes