Cómo utilizar el paquete Jar ofuscado empaquetado por Android Studio
Baidu ha publicado pieza tras pieza de paquetes Jar ofuscados empaquetados usando AS, pero muchos de ellos están escritos poco a poco y son muy detallados o copiados directamente. Es posible que las pruebas de acuerdo con sus tutoriales no se realicen sin problemas, así que aquí. Resumiré los resultados de mi estudio personal sobre el empaquetado de AS y el tarro de confusión. Espero que sea útil para todos. Personalmente creo que es más detallado
Usa gradle para ofuscar Jar
Es muy conveniente usar AS para desarrollar proyectos e introducir bibliotecas de terceros. Solo necesitamos configurar una línea. de código en build.gradle Introduzca fácilmente las bibliotecas de desarrollo que necesitamos. Entonces, ¿gradle puede ayudarnos a ofuscar el Jar empaquetado? ¡La respuesta es por supuesto que sí!
Entonces, ¿cómo empaquetamos Jar? De hecho, cuando compilamos el proyecto, AS nos ayudó a encapsular Jar en el directorio build/intermediates/bundles/release/classes.jar. Entonces todo lo que tenemos que hacer es ofuscar a Jar.
Tomando el proyecto personal bannerDemo? como ejemplo, los pasos de ofuscación son los siguientes:
Agregue el siguiente código en el archivo build.gradle de la biblioteca:
task makeJar(type: proguard. gradle.ProGuardTask, depende de: "build") {
//Ruta del jar no ofuscado
injars 'build/intermediates/bundles/release/classes.jar'
/ /Ruta de la salida del jar ofuscado
outjars 'build /outputs/cocolove2-banner-1.1.0.jar'
// Protocolo ofuscado
configuración 'proguard -rules.pro'}
Configuración del protocolo ofuscado
1. Primero configuramos el protocolo que viene con AS en chino. Tenga en cuenta que el autor agregó
.# Este es un archivo de configuración para ProGuard.# .google.vending.licensing.ILicensingService-keep public class com.android..licensing.ILicensingService# Para conocer los métodos locales, consulte el paquete pat que debe introducirse
-libraryjars / xxx/xxx/xx/xxx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.1.1/jars/classes.jar
-libraryjars /xxx/xxx/xxx/MyApplication/library-banner/build/intermediates/exploded-aar/com.android.support/support-v4/24.1.1/jars/classes.jar
#ignorewarnings
-Ignorar advertencias
# Asegúrese de que sea un jar independiente sin ninguna referencia al proyecto. Si no lo escribimos, pensará que. todo nuestro código es inútil y lo comprimimos todo el código y exportamos un frasco vacío
-dontshrink
#Protect generics
- keepattributes Signature
3. Según la configuración Si es necesario, agregue su propia configuración que no desea ofuscar
-mantenga la clase com.cocolove2.library_banner.view.**{*;}
Ejecute el comando Jar ofuscado en la línea de comando.
Consejo ¡CONSTRUIR CON ÉXITO significa éxito!
//mac./gradlew makeJar//windowsgradlew makeJar
Ejemplo
Aquí tomaré como ejemplo la ofuscación del banner de biblioteca
1. Primero, debemos verificar la configuración de buildTool, como se muestra a continuación:
buildTools#Gradle
Si la configuración de buildTool#Gradle de su proyecto es como se muestra arriba, entonces el paquete de software está confuso. El primer paso se ha completado. Si elige gradle local, cuando ejecute ./gradlew
makeJar, el sistema descargará gradle primero. bueno o está bloqueado cada vez. Los intentos de descargar tomaron mucho tiempo y finalmente no tuvieron éxito.
2./gradlew el paquete makeJar genera el Jar ofuscado, como se muestra a continuación
QQ20160827-0@2x.png
QQ20160827-1@2x.png
3. Ver los resultados ofuscados.
QQ20160827-2@2x.png
Solución de confusión personal #log indica que falta el jar dependiente o que la ruta es incorrecta
Solución: presente obedientemente el falta el jar dependiente y cambia la ruta
# Solicitado por la siguiente excepción [INFO] java.ioException: No se puede leer [D:\Program
Files\Java\jdk1. .8.0_91\jre\lib\rt.jar] (No se puede procesar la clase [com/oracle/net/Sdp$1.class] (Número de versión de clase no compatible
[52.0] (máximo 51.0, Java 1.7)))
Solución:
Descargue la última versión de proguard (versión compatible con Java 8) y descomprima el archivo descargado.
Reemplace el paquete jar en android sdk/tools/proguard/lib con el paquete lib en el archivo que acaba de descargar y descomprimir.
Dirección de descarga proguard5.2.1
Lectura