¿Se incluyen métodos no referenciados en el ejecutable final?

Al crear y desplegar un ejecutable en Android sin ejecutar ProGuard, ¿hay métodos no referenciados incluidos en el ejecutable final?

¿Se incluyen también métodos no referenciados de jarras de biblioteca externa?

¿Es este comportamiento dependiente del compilador de Java, o dex hace todo el recorte, si lo hay?

He probado con una clase simple (todos estos métodos están sin referenciar):

public class Test { private void privateMethod() { System.out.println("private"); } protected void protectedMethod() { System.out.println("protected"); } public void publicMethod() { System.out.println("public"); } void method() { System.out.println("method"); } } 

Test.class el APK, Test.class y lo descompilé (con javap -c ). Tengo los siguientes resultados. También probé con un frasco en lugar de un APK, y el resultado es exactamente el mismo. He utilizado Java 1.6.0_29.

  protected void protectedMethod(); Code: 0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #47 // String protected 5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return public void publicMethod(); Code: 0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #48 // String public 5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return void method(); Code: 0: getstatic #44 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #49 // String method 5: invokevirtual #46 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return 

Lo que significa que sólo las funciones privadas se excluyen en tiempo de compilación.

También traté de declarar la clase final , pero el resultado fue el mismo.

  • Proyectos de la Biblioteca de Android: Refactorización y navegación
  • Error al importar jar en un proyecto android
  • Ejecutar un tarro multidex independiente en Android Kitkat
  • Android - Agregar biblioteca externa al proyecto
  • Intellij: android-support-v4.jar in incluido en actionBarSherlock y Project => IllegalArgumentException
  • Importar archivo .jar externo al proyecto Android
  • Android Studio preDexDebug después de agregar jar archivo
  • Modificar clase en jar: android build failed
  • Cómo generar un archivo jar para un proyecto java y usar el jar en un proyecto android
  • Proyecto de biblioteca de Android como archivo jar para distribución, como google analytics
  • Cómo distribuir el código de Android reutilizable en un paquete?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.