echa un vistazo a esta página para obtener algunos consejos sobre cómo puede hacer que sus archivos jar sean más pequeños - http://wiki.java.net/bin/view/Games/4KGamesDesign. Aunque es posible que algunos no se apliquen, ya que no está intentando la minimalización absoluta, existen algunos consejos generales que puede aplicar sin comprometer la calidad del código.
pero un resumen aquí:
Mantenga su código de abajo a una clase. Cada clase agrega la sobrecarga de una entrada en el archivo JAR, así como una nueva lista constante de grupos y clases.
Mantenga sus métodos al mínimo. Cada método agrega sobrecarga en el archivo de clase. Todo lo que debe necesitar es un método main()
y métodos para implementar las rutinas del teclado y/o el mouse.
No utilice variables globales. Las variables globales requieren metadatos especiales en la clase para identificar. Las variables locales del método, sin embargo, son solo entradas de la pila y no cuestan nada adicional.
Utilice un buen compresor como 7Zip o KZip para crear sus archivos JAR. La utilidad JAR está diseñada principalmente para corrección, no para relaciones de compresión.
Use un ofuscador como ProGuard, JoGa o JShrink para optimizar el tamaño de su clase.
Use un solo carácter para el nombre del archivo de clase. Esto reduce su tamaño internamente, reduce la cantidad de información que almacena el programa Zip y reduce el tamaño del manifiesto.
Haga referencia al menor número de clases posible. Cada clase de referencia agrega el paquete completo y el nombre de clase, más la firma de método a la que llama.
La redundancia (como usar el mismo nombre para todos sus métodos y clases y campos) mejora las relaciones de compresión.
Los métodos creados como privados y finales pueden incluir un optimizador de clase.
Utilice el método String.valueOf()
para convertir primitivas en cadenas. Por ejemplo, ""+number
se expande a: new StringBuffer?().append("").append(number).toString()
desperdiciando una gran cantidad de espacio en nuevas referencias de clases y métodos.
Las cadenas estáticas, los flotantes y los enteros utilizados en el código fuente se almacenan en el conjunto constante. Como resultado, cuanto más pueda reutilizar un valor estático, el menor será su clase.
Puede hacer un uso liberal de variables finales estáticas para constantes. Esto hará que su código sea más legible y ProGuard optimizará esto para que no haya gastos adicionales.
El applet es de 500k sin incluir las bibliotecas. No es lo único que afecta el tiempo de inicio, pero creo que es lo suficientemente significativo como para seguir investigando. – amarillion