Eliminar todos los recursos no utilizados de un proyecto de Android

Quiero eliminar todos los diseños no utilizados, cadenas, drawables, colores, etc. de mi directorio de res de Android. ¿Hay alguna herramienta que me dé una lista de archivos y puedo eliminar de mi repository y elementos dentro de archivos específicos (por ejemplo, entradas de cadenas no utilizadas) que ya no se utilizan?

Puede buscar fácilmente recursos no utilizados de Android Studio. Simplemente presione Ctrl Alt Shift i y escriba ” recursos no utilizados ” (sin comillas). Eso ejecutará la pelusa. Manera súper fácil de ejecutar comandos de pelusa (y otras cosas de IDE).

O

En el menú Android Studio > Refactor > Eliminar recursos no utilizados …

Seleccione los recursos que desea eliminar. Puede excluir los recursos que desea conservar haciendo clic con el botón derecho en el elemento de recurso.

Use Do Refactor para eliminar todos los recursos a la vez.

Actualización: use Alt Shift i para mac

Desde ADT 16 puedes usar Android Lint . Es una herramienta realmente increíble.

Android Lint es una nueva herramienta para ADT 16 (y Tools 16) que escanea los orígenes de proyectos de Android en busca de posibles errores.

Aquí hay algunos ejemplos de los tipos de errores que busca:

  • Traducciones perdidas (y traducciones no utilizadas)
  • Problemas de rendimiento de diseño (todos los problemas que solía encontrar la herramienta antigua de layout, y más)
  • Recursos no utilizados
  • Tamaños de matriz incoherentes (cuando las matrices están definidas en múltiples configuraciones)
  • Problemas de accesibilidad e internacionalización (cadenas codificadas, descripción de contenido faltante, etc.)
  • Problemas de icons (como densidades perdidas, icons duplicados, tamaños incorrectos, etc.)
  • Problemas de usabilidad (como no especificar un tipo de entrada en un campo de texto)
  • Errores manifiestos y muchos más.

Sin embargo, tiene algunos problemas (no sé si ya están solucionados) y si desea eliminar cientos de recursos supuestamente no utilizados, recomiendo comstackr el proyecto varias veces manualmente durante la eliminación de recursos para asegurarse de que Lint no lo hizo. eliminar algo necesario.

Como el soporte para ADT en Eclipse ha finalizado, debemos usar Android Studio.

En Android Studio 2.0+, use Refactor > Remove Unused Resources...

enter image description here

El sistema de comstackción de Gradle para Android admite “reducción de recursos”: la eliminación automática de los recursos que no se utilizan, en tiempo de comstackción, en la aplicación empaquetada. Además de eliminar recursos en su proyecto que en realidad no son necesarios durante el tiempo de ejecución, esto también elimina los recursos de las bibliotecas de las que depende si su aplicación no las necesita realmente.

Para habilitar esto, agregue la línea shrinkResources true en su archivo gradle.

  android { ... buildTypes { release { shrinkResources true } } } 

Consulte la documentación oficial aquí,

http://tools.android.com/tech-docs/new-build-system/resource-shrinking

Abrimos una herramienta de código fuente que elimina todos los recursos no utilizados en su proyecto de Android en función de la salida de pelusa. Se puede encontrar aquí: https://github.com/KeepSafe/android-resource-remover

Tenga cuidado si usa sabores múltiples cuando usa pelusa. La pelusa puede dar recursos falsos no utilizados dependiendo del sabor que haya seleccionado.

En Android Studio 2.0 y superior en el menú, seleccione Refactorizar -> haga clic en Eliminar recursos no utilizados …

(o)

acceso directo también disponible

Presione Ctlr + Alt + Mayús + i aparecerá un cuadro de diálogo, escriba sin usar , encontrará varias opciones, seleccione y elimine los recursos no utilizados

Para verificar string.xml.

Es fácil (al menos en mi versión de Eclipse)

En Eclipse para Android (tengo la versión v22.6.2-1085508)

  • Haga clic izquierdo sobre el nombre del proyecto en “Package explorer”
  • Seleccione “Herramientas de Android”.
  • Seleccione “Ejecutar pelusa: comprobar si hay errores comunes”.

Ahora cuando abras strings.xml, verás que la cadena no utilizada está resaltada.

Puede solucionar otros problemas potenciales.

Atención a los desarrolladores de Android Wear : “Eliminar recursos no utilizados” eliminará el archivo xml donde declaras el nombre de la capacidad (res / values ​​/ wear.xml) y el teléfono no podrá conectarse al reloj. Pasé horas intentando descubrir este error en mi aplicación.

Tal vez útil Andround Unused Resources es una aplicación Java que escaneará su proyecto en busca de recursos no utilizados. Los recursos no utilizados ocupan innecesariamente espacio, aumentan el tiempo de construcción y saturan la lista de autocompletado del IDE.

Para usarlo, asegúrese de que su directorio de trabajo sea la raíz de su proyecto de Android y ejecute:

java -jar AndroidUnusedResources.jar

https://code.google.com/p/android-unused-resources/

Cuando definimos recursos de contracción verdaderos en ese momento también podemos definir qué recursos queremos conservar y cuáles no he agregado el archivo xml en la carpeta res / raw llamada keep.xml

antes de seguir generando una comstackción firmada y comprobación en la herramienta apk analyzer que mostrará drawable-xhdpi-v4 tiene messenger_button_send_round_shadow.png que quiero eliminar para esta prueba

 < ?xml version="1.0" encoding="utf-8"?>  

al hacer messenger_ * se eliminarán todos los archivos que comiencen por el nombre del messenger en la carpeta dibujable o por otro lado tengo un archivo específico para ser eliminado

para que pueda eliminar los archivos de la biblioteca por sí mismo, también puede eliminar los diseños por @ layout / layout name si esa disposición ha sido utilizada por el diseño y así ….

Aquí hay excelentes respuestas que sugieren buenas herramientas

Pero si tiene la intención de eliminar png-drawables (u otros archivos de imagen ), también debería considerar mover todas las carpetas drawable-xxxx de su proyecto a una carpeta temporal, luego reconstruir todo y echar un vistazo a la comstackción. lista de mensajes que le dirá cuáles faltan.

Esto puede ser especialmente útil si desea obtener una visión general de los recursos que está utilizando efectivamente y tal vez reemplazarlos con una fuente de icono o recursos de svg, posiblemente con la ayuda de la biblioteca de Android Iconics .

En Android Studio,

Analizar -> Ejecutar inspección por nombre

(Acceso directo para Mac shift + comando + opción + i, Ctrl + Shift + A en Windows / Linux).

Y escriba ‘recursos no utilizados’.

De esta forma, puede eliminar recursos, variables, símbolos, localización, bibliotecas … etc. no utilizados.

Seleccione la inspección deseada de la lista, luego seleccione scope de inspección -> OK enter image description here

Android Assets Viewer está diseñado para ayudar a inspeccionar visualmente los gráficos empaquetados (como obsoletos) dentro de su .apk (también puede cargar un archivo zip de su carpeta de res si lo prefiere):

http://www.cellebellum.net/AndroidAssetsViewer/

Por lo tanto, para eliminar los recursos no utilizados, esto podría funcionar bien en conjunto con los controles de Lint para ayudar a asegurarse de que todo lo que debería estar allí sea. También lo ayuda a identificar algunos otros posibles problemas con sus productos descartables: cubo incorrecto, gráfico incorrecto, etc.

Después de ejecutar Lint en Android Studio y encontrar todos los recursos no utilizados, puede hacer clic en uno de ellos desde la pestaña Inspección. Proporciona algunos detalles sobre el problema y algunas opciones para solucionarlo. Uno de ellos es Eliminar todos los recursos no utilizados. Al seleccionar esa opción, se eliminan todos los recursos no utilizados.