móviles - manual de programacion android pdf
¿Cómo eliminar un recurso de cadena no utilizado para todas las configuraciones en Android Studio? (8)
He encontrado un recurso de cadena no utilizado, como:
<string name="obsoletestring">my name is null!</string>
Sin embargo, está en decenas de archivos, de diferentes idiomas, en diferentes strings.xml
archivos.xml en carpetas de values
, values-af
strings.xml
, values-be
, etc.
Debo haber perdido algo para no saber otra forma de hacer esto en Android Studio que no sea modificarlo manualmente uno por uno.
tl; dr ¿Cómo eliminar un recurso de cadena no utilizado para todas las configuraciones?
- Menú -> Analizar -> Ejecutar inspección por nombre -> Recursos no utilizados
De los resultados, seleccione todos los recursos de cadena que no se utilizan.
- Haga clic derecho en las filas resaltadas y elija "Suprimir con @SuppressLint (Java) o herramientas: ignorar (XML)". Esto agregará las herramientas de atributos: ignorar todas las cadenas en todos los archivos de cadenas.
Menú -> Buscar -> Reemplazar en ruta
- Texto para buscar: ^. *? Herramientas: ignorar = "UnusedResources". *? / N
- Marque la casilla de expresión regular
- Ámbito de uso: personalizado
- Abra el editor de ámbito personalizado y agregue el patrón: archivo [aplicación]: src / main / res // strings.xml
- Encontrar
- Etc.
Ahora es posible dentro de Android Studio. Después de que Lint compruebe, verá una opción a la derecha Eliminar todos los recursos no utilizados
Para eliminar un recurso de cadena única en todos los archivos de configuración regional, puede utilizar el "Editor de traducción". 1. Haga clic derecho en el directorio res para abrir el editor de traducción. 2. Seleccione el selector "Mostrar todas las teclas" y elija "Filtrar por texto". Proporcione el nombre del recurso que desea eliminar. 3. Seleccione el recurso y haga clic en el botón "-"
De hecho, Android Lint debería informar sobre los recursos no utilizados, pero también puedes probar con this agradable complemento.
Desafortunadamente, tienes que hacerlo manualmente.
Marque esta answer para comprender qué debe hacer exactamente para deshacerse de ellos con Eclipse
Si está utilizando Android Studio
búsquelos en toda la aplicación y también elimínelos manualmente. Verifique esta answer
En Android Studio 2.3 es posible eliminar todos los recursos no utilizados.
- Abra cualquier * .xml en su directorio res / values /
- Haga clic derecho en el nombre de cualquier elemento
-
Refactor -> Remove Unused Resources...
Hasta que llegue el soporte de IDE, algo así funcionará:
find -name strings.xml|xargs -rd//n sed -ri ''/"string_to_delete"/d''
Para identificar todos los recursos no utilizados:
- Abra Menú> Analizar> Ejecutar inspección por nombre ...
- Seleccione "Recursos no utilizados"
- Asegúrese de que todo el proyecto esté marcado, luego presione OK.
- Mira a través de la lista. Siempre puede volver a ejecutar la Inspección con el botón Rerun.
No hay una forma realmente fácil en Android Studio (v 1.0) para eliminar una cadena de recursos para todas las configuraciones regionales. Sin embargo, puede buscar y reemplazar en archivos. Afortunadamente, los archivos de traducción usan solo una línea en la mayoría de los casos, así que esto funciona bastante bien.
En Android Studio:
- Comience sin cambios pendientes en su control de origen (hace que sea más fácil de verificar y anular si esto sale mal).
- Abra Menú> Editar> Buscar> Reemplazar en ruta ...
- En Texto para buscar:.
.*name="obsoletestring".*/n
- En Reemplazar con: (vacío)
- Comprobar expresión regular
- Pulse el botón Buscar.
- Inspecciona los resultados. Si está bien, presiona el botón "Todos los archivos".
- Probablemente tendrás que eliminar el comentario en res / values / strings.xml manualmente.
- Asegúrese de que su proyecto todavía se construye.
- Eche un vistazo a la diferencia de su proyecto en el control de origen para asegurarse de que el cambio sea realmente lo que pretendía ...
Tenga en cuenta que el comando REMOVE UNUSED RESOURCES no puede reconocer un recurso accedido mediante programación como un recurso usado (como getIdentifier (..) etc.). Por lo tanto, si accede a los recursos de esa manera, ¡es muy riesgoso usar ese comando!