Red de conocimiento informático - Material del sitio web - Cómo utilizar el paquete Jar ofuscado empaquetado por Android Studio

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