Sobes.tech
Junior

Quelles sont les ressources dans Android et quelles données peut-on y stocker?

sobes.tech IA

Réponse de l'IA

Les ressources dans Android sont des données externes utilisées par l'application, mais qui ne sont pas directement incluses dans le code. Elles sont séparées de la logique de l'application et stockées dans des sous-dossiers du dossier res à la racine du projet. Android fournit un ensemble d'outils pour accéder et gérer ces ressources.

Les ressources sont utilisées pour :

  • La localisation de l'application (support pour différentes langues).
  • L'adaptation à différentes tailles et résolutions d'écran.
  • La séparation du design et de la logique.
  • La simplification de la mise à jour de l'interface.

Les types de données pouvant être stockés dans les ressources incluent :

  • Drawable : Divers éléments graphiques, tels que images (PNG, JPEG, GIF), définitions XML de formes, commutateurs, etc. Stockés dans des sous-dossiers drawable.
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#FF0000"/>
        <corners android:radius="10dp"/>
    </shape>
    
  • Layout : Fichiers XML décrivant la structure de l'interface utilisateur d'une Activity, Fragment ou View. Stockés dans des sous-dossiers layout.
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bonjour, le monde !"/>
    </LinearLayout>
    
  • Mipmap : Images optimisées pour les icônes d'application de différentes densités. Préféré pour les icônes plutôt que drawable. Stocké dans des sous-dossiers mipmap (par exemple, mipmap-hdpi, mipmap-xhdpi).
  • String : Valeurs de chaînes utilisées dans l'application. Facilitent la localisation du texte. Stockées dans des fichiers XML dans des sous-dossiers values (par exemple, values/strings.xml).
    <resources>
        <string name="app_name">Mon application</string>
        <string name="welcome_message">Bienvenue !</string>
    </resources>
    
  • Style : Définitions de styles pour les Views. Permettent de gérer centralement les attributs d'apparence. Stockés dans des fichiers XML dans des sous-dossiers values (par exemple, values/styles.xml).
    <resources>
        <style name="MyTextViewTextAppearance" parent="android:TextAppearance.Medium">
            <item name="android:textColor">#000000</item>
            <item name="android:textStyle">bold</item>
        </style>
    </resources>
    
  • Theme : Définitions de thèmes appliqués à toute l'Activity ou l'application. Héritent des styles. Stockés dans des fichiers XML dans des sous-dossiers values.
  • Array : Tableaux de valeurs de chaînes, d'entiers ou de références à des ressources. Stockés dans des fichiers XML dans des sous-dossiers values.
    <resources>
        <string-array name="planets_array">
            <item>Mercure</item>
            <item>Vénus</item>
            <item>Terre</item>
            <item>Mars</item>
        </string-array>
    </resources>
    
  • Color : Définitions de couleurs en format hexadécimal ou références à d'autres couleurs. Stockées dans des fichiers XML dans des sous-dossiers values (par exemple, values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension : Définitions de tailles, telles que marges, paddings, tailles de police, etc., avec unités (dp, sp, pt, px, mm, in). Stockées dans des fichiers XML dans des sous-dossiers values (par exemple, values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw : Fichiers arbitraires en format brut (audio, vidéo, fichiers texte, etc.). Accès via flux d'entrée. Stockés dans des sous-dossiers raw.
  • XML : Fichiers XML arbitraires pouvant être analysés dans l'application (par exemple, fichiers de configuration). Stockés dans des sous-dossiers xml.

L'accès aux ressources se fait via la classe générée automatiquement R. Par exemple, pour accéder à une ressource de chaîne app_name :

// Java
String appName = getResources().getString(R.string.app_name);
// Kotlin
val appName = resources.getString(R.string.app_name)

L'utilisation des ressources permet de créer des applications Android flexibles et faciles à maintenir.