¿Cuál es el propósito del archivo "drawables.xml" en el directorio "values"?

Para un proyecto de estudio de Android, encontré un archivo llamado "drawables.xml" en la carpeta "values"

<resources xmlns:android="http://schemas.android.com/apk/res/android"> <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> </resources> 

¿Cuál es el propósito de este archivo? ¿Por qué crea otra referencia a un dibujable ya existente y por qué no sólo utilizar "@android: drawable / ic_menu_camera"?

Puede ser que el desarrollador tenía un poco de futuro-proofing en mente.

El desarrollador podría haber tenido código de referencia de Java android.R.drawable.ic_menu_camera y tienen disposiciones o referencia de otras cosas @android:drawable/ic_menu_camera . Sin embargo, si en algún momento posterior, el desarrollador necesitaba cambiar de usar una plataforma dibujable a uno personalizado, entonces todas esas referencias tendrían que ser cambiadas.

Los alias dibujables establecidos en este archivo permiten que el código Java R.drawable.ic_menu_camera referencia a R.drawable.ic_menu_camera y los diseños y otras cosas referencian @drawable/ic_menu_camera . En este momento, los alias indican que los drawables "redireccionar" a la plataforma estirables. Sin embargo, en algún momento en el futuro, el desarrollador podría añadir un personalizado ic_menu_camera , eliminar el alias … y nada más tiene que cambiar en el código Java, diseños, etc

Pocas aplicaciones se refieren a la plataforma de trazos, por lo que no verá este tipo de truco utilizado la mayor parte del tiempo. Sin embargo, para los casos en que las aplicaciones hacen referencia a los recursos de la plataforma, este enfoque de aliasing puede reducir el mantenimiento a largo plazo.

FWIW, cubro esto más en esta entrada del blog .

Bueno, en mi opinión este archivo es inútil porque ya tiene los nombres de archivo dibujables.

  • Cómo dibujar un fondo personalizado
  • ¿Por qué la configuración de settings.xml se superpone a la barra de herramientas / barra de herramientas?
  • Relacionar URI con <data> como http://example.com/algo en AndroidManifest
  • El contenido vertical se alinea en Android EditText
  • ¿Cómo funciona $ {packageName}. $ {ActivityClass} en archivos XML de diseño?
  • Cada vez que hago clic en un archivo XML de Android en Eclipse, carga datos para todas las versiones de API
  • ¿Cómo puedo anclar una imagen al centro dentro de una vista de imagen en una vista de desplazamiento, en Android?
  • Android define el valor de cadena en String.xml
  • ¿Por qué "androide: shadowColor" property not support "selector"?
  • Barra de herramientas alinear el título en el centro con el botón Atrás
  • Resize drawable en el elemento de lista de capas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.