La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo confundir a Android al agregar una biblioteca

Cómo confundir a Android al agregar una biblioteca

El proyecto de Android verá que el proyecto tiene

project.properties. ¿Este archivo se usa para abrir el proyecto?

proguard-project. .txt? Este archivo tiene propiedades de ofuscación de código grabado

Para habilitar la ofuscación, solo necesita cambiar el archivo project.properties

# proguard.config=${sdk.dir}/ tools/proguard/proguard -android.txt: Simplemente elimine el "#" en proguard-project.txt".

¿Acerca de proguard-project.tx? Atributos confusos:

Normalmente, Solo necesita realizar los pasos anteriores para satisfacer las necesidades. Si existen algunos requisitos especiales y no es necesario confundir ciertas clases o paquetes jar, debe modificar el archivo proguard-project.txt. compartido por internautas que buscaron en línea:

1. ¿Agregar clases que no necesitan confundirse y paquetes jar de terceros en el archivo proguard-project.txt?

Esto es. para mantener las clases que no necesitan confundirse en su propio paquete. Si algunas clases llaman a jni, no es necesario ofuscarlas; de lo contrario, se producirá un error si hay otros proyectos en el proyecto que se introducen como bibliotecas. , algunas clases en estos proyectos no se pueden ofuscar.

Esto se mantiene en el proyecto. ¿No se confunde el jar de terceros?

Además, agregue las oraciones anteriores, de lo contrario. advertencia La advertencia se informará en la consola

2 También hay algunas otras experiencias:

-la optimización supera el nivel de compresión 5

-dontusemixedcaseclassnames no producirá una variedad de nombres de clases cuando la ofuscación

-dontskipnonpubliclibraryclasses especifica no ignorar las clases de bibliotecas no públicas.

-dontpreverify no realiza una verificación previa

-verbose

-optimizaciones !code/simplification/arithmetic, !field/*, !class/merging/* optimizaciones

-mantener la clase pública * extiende android.app.Activity Déjalo como está sin ofuscación

-mantener la clase pública * extiende android.app.Application

-mantener clase pública * extiende android.app.Service

-mantener clase pública * extiende android.content.BroadcastReceiver

-mantener clase pública * extiende android.content.ContentProvider

-mantener clase pública * extiende android.app.backup.BackupAgentHelper

-mantener clase pública * extiende android.preference.Preference

-mantener clase pública com.android. vending.licensing.ILicensingService

-mantener la interfaz abstracta pública com.asqw.android.Listener{

público protegido lt; métodosgt;; ¿Todos los métodos no están ofuscados

}

-mantener la clase pública com.asqw.android{

public void Start(java.lang.String); No ofuscar este método

}

-keepclasseswithmembernames class * { Proteger los nombres de las clases especificadas y los miembros de la clase si todos los miembros de la clase especificada están presentes (después del paso de compactación)

native lt;methodsgt; ;

}

-keepclasseswithmembers class * { Protege la clase y los miembros de la clase especificados, pero la condición es que existan todas las clases y miembros de la clase especificados.

public lt;initgt;(android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembers clase * {

public lt;initgt;(android.content.Context, android.util.AttributeSet, int);

}

-keepclassmembers class * extiende android.app.Activity { Proteger a los miembros de la clase especificada Estarán mejor protegidos si esta clase está protegida

public void *(android.view.View);

}

. -keepclassmembers enumeración * {

público estático **[] valores();

público estático ** valorDe(java.lang.String);

}

-keep class * implements android.os.Parcelable {Proteger los archivos de clase especificados y los miembros de la clase

public static final android.os.Parcelable$Creator *;

}