First many thanks to all for the tips.
@Groboclown:
I tried the tip with the binary gfx data. For that, I had to modify my rotation algorithm a little bit. It turns out, that the char data with the old routine can be compressed better than the binary data with the new routine. In total the original char data is 88 Bytes smaller.
@Moogie:
I made some tests with joined arrays but I can’t get smaller results. Because of my limited spare time I don’t want to invest in this way. Nevertheless thank you very much.
At the end I combined the suggestions from Gef and Harm (Gef optimized the cockpit away ::)) and won 11 Bytes ;D.
Here is the source:
http://pastebin.java-gaming.org/1cfb9983584
I think the secret are the compression tools.
Here are my results (with intermediate results):
Original JAR: 11.228 Bytes
(JARG exists with an exception, so I dropped this step.)
After Proguard: 5.512 Bytes
After Pack200 (without compression): 8.966 Bytes
Now I tried 4 different compression tools on the pack200 result:
KZIP: 4.306 Bytes
7Zip: 4.294 Bytes
BJwflate: 4.260 Bytes
Zopfli: 4.240 Bytes
At the end I used deflopt on every result:
KZIP: 4.287 Bytes
7Zip: 4.290 Bytes
BJwflate: 4.258 Bytes
Zopfli: 4.240 Bytes (winner)
@Gef:
You said you can reach 4080 Bytes. Which parameters do you use with the tools? How does your proguard file look like? Do you have magic tools?
@Groboclown:
I tried to use your 4k utilities on Sourceforge, but I’m not clever enough to handle all this ant stuff. I was not able to setup a runnable build structure in eclipse. In the read me file you described how to create a build structure. But I can’t integrate your tools and I can’t make a build.xml. Maybe I have not enough background information.