Cómo compilar solo los recursos usados

Desde hace un tiempo, estoy usando un proyecto de biblioteca que contiene una gran cantidad de código reutilizable. De esta manera, si hay un error, tengo que arreglarlo en un solo lugar. Este proyecto también contiene un montón de recursos. Realmente no es un problema que contenga todo este material, ya que en la mayoría de los proyectos los uso casi todos.

Ahora estoy trabajando en un proyecto muy pequeño y también uso mi proyecto de biblioteca. Pero solo necesito algunas partes pequeñas, y tuve la idea de que el compilador de Java era lo suficientemente inteligente como para saber qué clases y recursos necesitaba. Bueno, eso fue hasta que vi el tamaño del archivo del paquete completo... Después de descompilar un poco, descubrí que todos los recursos de mi proyecto de biblioteca, que no se usan, también se compilan en el apk.

Así que ahora mi pregunta es, ¿hay alguna manera de decirle al compilador de Android que debe ignorar los recursos que no se utilizan?

preguntado el 12 de junio de 12 a las 07:06

También estoy en un punto en el que deseo que la cadena de herramientas descarte automáticamente los recursos no utilizados de los proyectos de biblioteca de Android vinculados. No es realmente sencillo hacerlo manualmente en tal caso y Lint tampoco ayuda. No quiero paralizar o crear copias reducidas de mis bibliotecas. Aquí hay una solicitud de función en el sitio web de seguimiento de problemas de Android: code.google.com/p/android/issues/detail?id=25254 -

1 Respuestas

Trate de usar una herramienta como guardaespaldas. Entre otras cosas, tiene la capacidad de detectar clases, campos, etc. no utilizados, lo que da como resultado un tamaño de paquete más pequeño.

Un extracto de su conjunto de funciones:

ProGuard es un reductor, optimizador, ofuscador y preverificador de archivos de clase Java gratuito. Detecta y elimina clases, campos, métodos y atributos no utilizados. Optimiza el código de bytes y elimina las instrucciones no utilizadas. (...)

Editar: También hay un optimizador especializado para Android, llamado DeXGuard.

Respondido el 12 de junio de 12 a las 08:06

Gracias por el consejo sobre Proguard. Lo probé hace un tiempo, pero descubrí que no eliminó las imágenes no utilizadas, solo las referencias a él en la clase R. Lo que me gustaría lograr es que también se eliminen las imágenes entonces, si es posible... - Arne517

Para la eliminación de recursos no utilizados, intente utilizar el Android pelusa herramienta. - neo

Lint solo da una advertencia cuando hay un recurso sin usar. No los elimina de la apk. (¿O me perdí algo en alguna parte?) Y dado que estoy trabajando con un proyecto de biblioteca que uso en varias aplicaciones, no puedo simplemente eliminar recursos en él. - Arne517

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.