He descargado proguard encapsulado en un archivo zip y lo he desempaquetado en mi disco duro. No lo hice instalar de ninguna manera (porque no sabía cómo). Luego agregué proguard.config=proguard.cfg
a mi archivo project.properties. Luego hice una "aplicación de exportación de Android" esperando que eclipse se quejara de que no sabía dónde estaba mi instalación Proguard, pero no hubo ninguna queja. De hecho, un nuevo archivo apk apareció en mi almacén de claves, y un conjunto de archivos (dump.txt, etc.) apareció en el subdirectorio proguard de mi aplicación. El mapping.txt se ve como una buena lista de asignaciones desde mis nombres largos de variables a variables de una y dos letras. Esto debería ser una fuerte evidencia de que proguard de alguna manera ha funcionado; mi única preocupación es que el apk apenas sea más pequeño de lo que era antes. ¿Hay alguna forma de comprobar que la aplicación incluye ofuscaciones de Proguard?Cómo saber si Proguard ha hecho su trabajo
Respuesta
Una alternativa al método @Kuffs sería comparar su nueva APK con una nueva. Ábrelos (con 7zip o su herramienta preferida) y compare el tamaño de los archivos de classes.dex en cada uno de ellos.
Algunas razones simples que no podríamos estar viendo mucho de un ahorro de tamaño:
- El classes.dex unobfuscated fue capaz de comprimirse mucho más que el ofuscado. Esto siempre es cierto hasta cierto punto.
- No hizo una versión de lanzamiento. Proguard solo se ejecuta en compilaciones de lanzamiento ya que la depuración del código ofuscado es una pesadilla.
- La configuración de Proguard que está utilizando no le está yendo muy bien (al menos en términos de tamaño del código) para su proyecto. ¡De hecho, he visto que el código de Proguard en la configuración inicial aumenta el tamaño de los archivos jar antes!
La class.dex no difuminada se pudo comprimir mucho más que la ofuscada -> ¿significa esto que las clases no difuminadas tienen menos tamaño que las ofuscadas? – Rendy
@Rendy Siempre esperaría que el tamaño del .dex ofuscado fuera más pequeño que el no difusionado. Sin embargo, también esperaría que la diferencia de tamaño después de la compresión fuera mucho menor que la diferencia de tamaño antes de la compresión. Esto se debe a que la ofuscación hace parte del mismo trabajo que la compresión, es decir, reemplaza cadenas largas (nombres de clase/método/campo) por otras mucho más cortas. – vaughandroid
lo tengo! ¡Gracias! – Rendy
- 1. AS3 - ¿Cómo saber si un video ha finalizado?
- 2. ¿Cómo puedo saber si la computadora se ha reiniciado?
- 3. ¿Cómo puedo saber si un Arrastramiento ha finalizado en Winforms?
- 4. php comprobar si se ha hecho clic en el enlace
- 5. cómo detectar si se ha hecho clic en el sprite en pygame
- 6. Cómo saber si el registro ha cambiado en Postgres
- 7. ¿Cómo puedo saber si se ha eliminado un `NSManagedObject`?
- 8. Cómo saber si sys.stdout se ha eliminado en Python
- 9. Cómo saber si el cliente ha cerrado la conexión
- 10. ¿Cómo saber si el cliente ha terminado en los zócalos
- 11. ¿Cómo saber qué objeto ha sido eliminado?
- 12. javascript - saber si ya se ha abierto un enlace
- 13. ¿Hay alguna manera de saber si alguien ha marcado su sitio web?
- 14. ¿Cómo saber si todo el hilo del conjunto de hilos ya está hecho con sus tareas?
- 15. ¿Qué se ha hecho cuando URL.openconnection()?
- 16. cómo saber si XMLHttpRequest.send() funcionó
- 17. ¿Cómo saber si el usuario ha actualizado la aplicación o ha instalado una copia nueva?
- 18. ¿Cómo saber si el sitio web que se está raspando ha cambiado?
- 19. Manera correcta de saber si una actividad ha sido destruida
- 20. ¿Cómo puedo detectar si el usuario ha hecho doble clic en pygame?
- 21. ¿Cómo puedo saber con seguridad si un subproceso de impulso ha salido de su método de ejecución?
- 22. Cómo saber si un actor está inactivo
- 23. ¿Cómo puedo saber si el SP1 se ha instalado en VS2008?
- 24. ¿Cómo puedo saber si otra aplicación ha registrado un canal de IPC Remoting?
- 25. ¿Cómo saber si un enumerador ha llegado al final de la colección en C#?
- 26. ¿Cómo puedo saber si Javascript se ha desactivado dentro del navegador?
- 27. ¿Cómo saber si una imagen se ha subido o no? - Paperclip
- 28. iPhone SDK: ¿cómo puedo saber cuándo ha finalizado una animación?
- 29. Cómo detectar que una ventana ha agotado su llamada "ShowDialog"
- 30. ¿Cómo puedo saber si una matriz de bytes ya se ha comprimido?
Esto funciona de manera brillante, ¡muchas gracias! – Pete
Cómo usar dex2jar? – Roel
http://stackoverflow.com/questions/5257830/how-to-use-dextojar – Kuffs