¿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 posible incluir el diseño y otros recursos en un tarro de Android?
- Generación de archivos Jar en Android Studio
- Biblioteca de archivos de Android (aar) vs jar estándar
- ¿Cómo integrar la biblioteca de código de Matlab con Android?
- Cómo agregar el archivo jar a la ruta de construcción
¿Es este comportamiento dependiente del compilador de Java, o dex hace todo el recorte, si lo hay?
- Cómo crear 2 jarras para pro y lite con el mismo nombre en andorid / eclipse
- Librerías Android Jar
- Generar un JAR ofuscado para la distribución de código
- Cómo incluir archivos jar en mi proyecto eclipse
- Error de tiempo de ejecución de Proguard con un tarro externo de Admob
- Creación de un SDK de producto: ¿Cómo puedo añadir un lib nativo (.so) y un jar con el SDK que estoy creando?
- Crear jar para el proyecto androide en eclipse
- Ejecutar un jar ejecutable en android
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.
- ¿Cómo referenciar o "encontrar" una PreferenceActivity?
- Img src atributo de json valor que muestra pequeña caja de color azul en Android TextView