Inicio rápido • Funciones • Contribución • Licencia
ProGuard es un reductor, optimizador, ofuscador y preverificador gratuito para el código de bytes de Java:
Detecta y elimina clases, campos, métodos y atributos no utilizados.
Optimiza el código de bytes y elimina las instrucciones no utilizadas.
Cambia el nombre de las clases, campos y métodos restantes utilizando nombres cortos y sin sentido.
Las aplicaciones y bibliotecas resultantes son más pequeñas y más rápidas.
Utilice el rastreador de problemas para informar errores reales, fallas , etc.
Primero, descargue la última versión de las versiones de GitHub.
Para ejecutar ProGuard, en Linux/MacOS, simplemente escriba:
bin/proguard.sh < options... >
o en Windows:
binproguard.bat <options...>
Normalmente, colocará la mayoría de las opciones en un archivo de configuración (por ejemplo, myconfig.pro
) y simplemente llamará
bin/proguard.sh @myconfig.pro
o en Windows:
binproguard.bat @myconfig.pro
Todas las opciones disponibles se describen en la sección de configuración del manual.
ProGuard se puede ejecutar como una tarea en Gradle. Antes de poder utilizar la tarea proguard, debe asegurarse de que Gradle pueda encontrarla en su ruta de clase en el momento de la compilación. Una forma es agregar la siguiente línea a su archivo build.gradle
que descargará ProGuard desde Maven Central:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ' com.guardsquare:proguard-gradle:7.6.1 '
}
}
Luego puede definir una tarea con la configuración:
tasks . register( ' proguard ' , ProGuardTask ) {
configuration file( ' proguard.pro ' )
injars(tasks . named( ' jar ' , Jar ) . flatMap { it . archiveFile })
// Automatically handle the Java version of this build.
if ( System . getProperty( ' java.version ' ) . startsWith( ' 1. ' )) {
// Before Java 9, the runtime classes were packaged in a single jar file.
libraryjars " ${ System.getProperty('java.home') } /lib/rt.jar "
} else {
// As of Java 9, the runtime classes are packaged in modular jmod files.
libraryjars " ${ System.getProperty('java.home') } /jmods/java.base.jmod " , jarfilter : ' !**.jar ' , filter : ' !module-info.class '
// libraryjars "${System.getProperty('java.home')}/jmods/....."
}
verbose
outjars(layout . buildDirectory . file( " libs/ ${ baseCoordinates } -minified.jar " ))
}
La configuración integrada es muy parecida a una configuración ProGuard estándar. Puede encontrar más detalles en la página de configuración de Gradle.
ProGuard funciona como un compilador de optimización avanzado, eliminando clases, campos, métodos y atributos no utilizados, acortando identificadores, fusionando clases, incorporando métodos, propagando constantes, eliminando parámetros no utilizados, etc.
Las optimizaciones normalmente reducen el tamaño de una aplicación entre un 20% y un 90%. La reducción depende principalmente del tamaño de las bibliotecas externas que ProGuard puede eliminar total o parcialmente.
Las optimizaciones también pueden mejorar el rendimiento de la aplicación, hasta en un 20%. Para las máquinas virtuales Java en servidores y escritorios, la diferencia generalmente no es notable.
ProGuard también puede eliminar el código de registro de las aplicaciones y sus bibliotecas, sin necesidad de cambiar el código fuente; de hecho, ¡sin necesidad del código fuente en absoluto!
Las páginas del manual (markdown, html) cubren en detalle las características y el uso de ProGuard.
Crear ProGuard es fácil: solo necesitará tener instalado Java 8 JDK. Para compilar desde el código fuente, clone una copia del repositorio de ProGuard y ejecute el siguiente comando:
./gradlew assemble
Los artefactos se generarán en el directorio lib
. Luego puede ejecutar ProGuard usando los scripts en bin
, por ejemplo:
bin/proguard.sh
Puede publicar los artefactos en su repositorio Maven local usando:
./gradlew publishToMavenLocal
Las contribuciones, los problemas y las solicitudes de funciones son bienvenidos en ambos proyectos. No dude en consultar la página de problemas y la guía de contribución si desea contribuir.
Copyright (c) 2002-2023 Guardsquare NV. ProGuard se publica bajo la Licencia Pública General GNU, versión 2, con excepciones otorgadas a varios proyectos.