One thing I've noticed - (and this may already be known to some/most here) - is that using local variables seems to decrease the size vs. using global variables. For instance, I have a program that contains two methods which use two global variables for temporary purposes. When I remove them and use two local pairs for the same purpose, my *.jar file shrunk by 20 bytes. In both instances, I use ProGuard to shrink the file, also, so I'm not sure of the savings beforehand (if any).

Do agressive color reduction on your images (but leave your images in 8bpp)Match the images palette to the color model used by the phone you are targeting.pngout/pngcrush all your image assets to remove any ancillery png chunks

Mind you, I remember running into a couple of phones that didn't like the 7zip-compressed jars and agressive obfuscation. A pair of Samsungs and an LG, but I can't recall the specific models. If you use these methods and your game misteriously doesn't work on a few phones, try without the added compression.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org