Me gustaría que proguard ofusque los nombres de las clases. Tengo esta línea en Proguard.cfgCómo decirle a Proguard que ofusque los nombres de las clases
-keepclasseswithmembers class * {
public static <fields>;
}
-keepnames class * implements java.io.Serializable
-keep public class com.google.**
Y noto que lo que no está ofuscado son los nombres de las clases. Entonces ejecutando jdgui veo com/test/abcd/ActualClass.java public class ActualClassName extends Activity etc
además veo métodos que devuelven nombres de clases reales. como
ActualClassname aa();
e importa declaraciones como
import com.abcd.ActualClassName
¿Cómo consigo Proguard a ofuscar el nombre de clase en sí. No es solo para Actividades que veo que mis Adaptadores no se ofuscan. Bueno, hay ofuscación pero no nombres de clase.
¿Están las reglas anteriores lo que impide que los nombres de las clases se ofusquen?
Actualización: desde entonces he eliminado las reglas anteriores y una clase de utilidad que no se extiende desde Android no se ofusca. Ahora me pregunto si existe alguna regla implícita sobre mantener los nombres de clase de las clases a las que se hace referencia desde clases que se mantienen como clases derivadas de actividades. Las clases cuyos nombres no se ofuscan tienen algunas cosas en común:
1) Métodos estáticos 2) Importación de otros tipos que se mantienen como aquellos derivados de la actividad o serializables. 3) Tienen métodos con parámetros de otras clases (algunos de los cuales pueden necesitar mantenerse).
Sin embargo, no hay ningún lugar donde específicamente solicite que se mantengan estas clases de servicios.
Estoy funcionando con el mismo problema. Encontraste una solución a este problema ? – lnreddy