¿Que directorio de recursos usa mi app de Android?

Como ya es sabido, la estructura de directorios de un proyecto de Android contiene una carpeta llamada “res”, que a su vez contiene diversas subcarpetas con los recursos del proyecto, bien sean imágenes (directorio /res/drawable), cadenas de texto (fichero strings.xml en el directorio /res/values)  etc.

Y también sabemos que para luchar contra la fragmentación del ecosistema Android, estas carpetas pueden asociarse con un segmento de dispositivos determinado. Por ejemplo, la carpeta /res/drawable-hdpi contendría recursos gráficos para dispositivos hdp, y análogamente para la carpeta /res/xxhdpi.

Cuando nuestro proyecto crece y su complejidad aumenta, y queremos abarcar varios segmentos de dispositivos diferentes con varias carpetas de recursos personalizados diferentes, podemos llegar a un estado de confusión sobre que carpeta está usando en cada momento nuestra app. Pero hay un truco muy sencillo para saber de que carpeta esta cogiendo nuestra app los iconos o los valores de dimensiones.

Por ejemplo, en el caso de que trabajemos con diferentes valores de dimensiones para diferentes segmentos de dispositivos. Las dimensiones se definen en el fichero /res/values/dimens.xml

Si definimos una cadena en cada fichero strings.xml, como la siguiente y la colocamos en el fichero /res/values/strings.xml

[crayon-5bf4c751d3401133050061/]

Y definimos otra como la siguiente colocándola en la carpeta /res/values-xhdpi:

[crayon-5bf4c751d3415894318884/]

Podemos definir tantas cadenas llamadas “carpeta_de_recursos” como carpetas “values” tengamos. A continuación, en nuestro código fuente solo tendremos que añadir:

[crayon-5bf4c751d341a803924242/]

De esta manera obtendremos una traza sobre que carpeta esta usando nuestra app en la consola. Según el dispositivo/emulador en el que estemos probando la app, esta carpeta diferirá.

Esta técnica de manera puede utilizarse para saber que carpeta de recursos gráficos esta usando nuestra app (/res/drawable). Simplemente tendremos que generar un icono con diferentes variantes (por ejemplo un icono que contenga en texto el nombre de la carpeta), y referenciarlo en nuestro layout).