Resources
Dentro da aplicação pode haver elementos que sejam constantes durante a sua utilização, tanto para dimensões, esquemas ou até textos que podem ser usados para serem internacionalizados posteriormente.
Para isto, o Android permite armazenamento de Resources dentro do mesmo, localizando-se como a superpasta dos layouts, res.

Aqui só se encontram ficheiros de formato .xml, visto na secção de frotend, mas com uma particularidade:
<resources>
<tipo name="nome_do_recurso">valor</tipo>
</resources>
res/value/strings
Aqui se pode colocar os textos estáticos da aplicação, onde até se mais tarde se podem internacionalizar a partir deste ficheiro.
<resources>
<string name="app_name">Titulo da App</string>
</resources>
E podem ser usados nas propriedades de text das tags no layout, como por exemplo
<TextView
android:id="@+id/txt_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:layout_centerInParent="true"
/>
Recomendado usar este formato/procedimento aquando se tem texto no layout que não altere enquanto o utilizador mexe na aplicação
res/value/colors
Este formato pode se aplicado para o res/values/colors, sendo que o que altera é o valor inserido e o tipo de resource que se esteja a lidar:
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>
A sua aplicação pode ser aplicada em vários locais ao longo da UI ou até como recurso no background.
Um dos exemplos no UI pode ser o seguinte acréscimo de background no TextView anterior:
<TextView
android:id="@+id/txt_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:layout_centerInParent="true"
android:background="@color/teal_200"
/>
res/value/dimen
Este ficheiro em principio não existe na criação do projeto, mas é essencial para manter a concordância entre tamanhos e espaçamentos do UI, tal como haver concordância das cores ou texto. A sua formatação é a seguinte:
<resources>
<dimen name="textFont">12sp</dimen>
</resources>
Sendo posteriormente aplicado da mesma maneira que nos outros tópicos, sendo neste caso usado como textSize no TextView:
<TextView
android:id="@+id/txt_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:layout_centerInParent="true"
android:background="@color/teal_200"
android:textSize="@dimen/textFont"
/>
Unidades
Ainda neste tópico é importante ter noção nas dimensões que se use, sendo neste caso importante notar que:
dp: Uma unidade usada para definir o espaçamento ou tamanho entre elementos no ecrã independentemente da densidade de pixeis que se tenha.
sp: Uma unidade usada para definir a fonte do texto, sendo que é de certo modo semelhante ao
dp, mas adapta-se ao tamanho de fonte do dispositivo
É importante saber que unidade usar para cada caso e evitar maus usos.
Uso no backend
Para se poder usar os resources no backend é através da variável resources que normalmente vem com a atividade, ou seja, pode-se fazer:
var nomeApp = resources.getString(R.string.app_name)
Sendo que é possível obter outros valores estáticos de recursos a partir desta variável.
Para o caso de, ao longo do desenvolvimento, não se conseguir aceder à variável resources, deve-se usar o context atual do código - ver mais informação aqui.