oreo - android pie
Eliminar todos los recursos no utilizados de un proyecto de Android (15)
Android Assets Viewer está diseñado para ayudar a inspeccionar visualmente los gráficos empaquetados (como dibujables) dentro de su .apk (también puede cargar un archivo zip de su carpeta de resolución si lo prefiere):
http://www.cellebellum.net/AndroidAssetsViewer/
Por lo tanto, para eliminar los recursos no utilizados, esto podría funcionar bien junto con las comprobaciones de Lint para ayudar a garantizar que haya todo lo que debería estar allí. También le ayuda a identificar otros problemas potenciales con sus elementos extraíbles: cubeta incorrecta, gráfico incorrecto, etc.
Quiero eliminar todos los diseños, cadenas, dibujables, colores, etc. no utilizados de mi directorio de resolución de Android. ¿Hay alguna herramienta que me dé una lista de archivos y puedo eliminar de mi repositorio y elementos dentro de archivos específicos (por ejemplo, entradas de cadenas no utilizadas) que ya no se usan?
Creamos una herramienta de código abierto que elimina todos los recursos no utilizados en su proyecto de Android según la salida de pelusa. Se puede encontrar aquí: https://github.com/KeepSafe/android-resource-remover
Cuando definimos los recursos de reducción 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 continuar, genere una compilación firmada única y verifique la herramienta de análisis de apk 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"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:shrinkMode="strict"
tools:discard="@drawable/com_facebook_button_icon_blue.png,
@drawable/com_facebook_button_icon_white.png,
@drawable/com_facebook_button_like_icon_selected.png,
@drawable/messenger_button_send_round_shadow.png,
@drawable/messenger_*" />
al hacer messenger_ * todos los archivos que comiencen desde el nombre messenger en una carpeta extraíble serán eliminados o al revés es que he definido un archivo específico para ser eliminado
para que de esa manera pueda eliminar archivos de la biblioteca, también puede eliminar diseños por @ diseño / nombre de diseño si ese dibujo ha sido utilizado por diseño y así ...
Desde ADT 16 puedes usar Android Lint . Es una herramienta realmente increíble.
Android Lint es una nueva herramienta para ADT 16 (y Herramientas 16) que escanea las fuentes de proyectos de Android en busca de posibles errores.
Aquí hay algunos ejemplos de los tipos de errores que busca:
- Traducciones faltantes (y traducciones no utilizadas)
- Problemas de rendimiento del diseño (todos los problemas que la herramienta layoutopt anterior solía encontrar, y más)
- Recursos no utilizados
- Tamaños de matriz inconsistentes (cuando las matrices se definen en configuraciones múltiples)
- Problemas de accesibilidad e internacionalización (cadenas codificadas, descripción de contenido faltante, etc.)
- Problemas con los iconos (como densidades faltantes, iconos 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 arreglados) y si desea eliminar cientos de recursos supuestamente no utilizados, recomiendo compilar manualmente el proyecto varias veces durante la eliminación de recursos para asegurarse de que Lint no lo hizo. quitar algo necesario
Después de ejecutar Lint en Android Studio y encontrar todos los recursos no utilizados, puede hacer clic en uno de ellos en 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.
El sistema de compilación Gradle para Android es compatible con la "reducción de recursos": la eliminación automática de recursos que no se utilizan, en el momento de la compilación, en la aplicación empaquetada. Además de eliminar los recursos de su proyecto que no son realmente necesarios en 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 de gradle.
android {
...
buildTypes {
release {
shrinkResources true
}
}
}
Consulte la documentación oficial aquí,
http://tools.android.com/tech-docs/new-build-system/resource-shrinking
En Android Studio 2.0 y superior en el menú, seleccione Refactor -> haga clic en Eliminar recursos no utilizados ...
(o)
acceso directo también disponible
Presione Ctlr + Alt + Shift + i aparecerá un cuadro de diálogo, luego escriba sin usar , encontrará varias opciones para seleccionar y eliminar los recursos no utilizados
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 manera puede eliminar recursos, variables, símbolos, localización, bibliotecas no utilizados, etc.etc.
Seleccione la inspección deseada de la lista, luego seleccione el alcance de la inspección -> OK
Hay respuestas realmente excelentes aquí 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 haga una reconstrucción de todas y observe la compilación Lista de mensajes que le dirá cuáles faltan.
Esto puede ser especialmente útil si desea obtener una visión general de qué recursos está utilizando efectivamente y quizás reemplazarlos con una fuente de icono o recursos svg, posiblemente con la ayuda de la biblioteca de Android Iconics .
Para comprobar string.xml.
Es fácil (al menos en mi versión de Eclipse)
En Eclipse para Android (tengo versión v22.6.2-1085508)
- Haga clic izquierdo en el nombre del proyecto en "Explorador de paquetes"
- Seleccione "Herramientas de Android".
- Seleccione "Ejecutar pelusa: verifique errores comunes".
Ahora, cuando abra strings.xml, verá que las cadenas no utilizadas están resaltadas.
Puede solucionar otros problemas potenciales.
Puede buscar fácilmente recursos no utilizados desde Android Studio. Simplemente presione Ctrl Alt Shift i y escriba " recursos no utilizados " (sin comillas). Eso ejecutará la pelusa. Una forma súper fácil de ejecutar comandos de pelusa (y otras cosas de IDE).
O
En el menú de Android Studio > Refactor > Eliminar recursos no utilizados ...
Seleccione los recursos que desea eliminar. Puede excluir los recursos que desea mantener haciendo clic derecho en el elemento de recurso.
Utilice Do Refactor para eliminar todos los recursos a la vez.
Actualización: use Sh Alt Shift i para mac
Tal vez sea útil Andround Unused Resources es una aplicación Java que escaneará su proyecto en busca de recursos no utilizados. Los recursos no utilizados ocupan espacio, aumentan el tiempo de compilación y desordenan la lista de autocompletar 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
Tenga cuidado si está utilizando múltiples sabores al ejecutar la pelusa. La pelusa puede proporcionar recursos falsos no utilizados según el sabor que haya seleccionado.
Atención a los desarrolladores de Android Wear : "Eliminar recursos no utilizados" eliminará el archivo xml donde declare el nombre de la capacidad (res / values / wear.xml) y el teléfono no podrá conectarse al reloj. Pasé horas tratando de resolver este error en mi aplicación.