Chapter 3 :
. Introduction :
Une application Android est composée de composants faiblement couplés comme :
Activités, Services, Content Providers, Broadcast Receivers.
Ces composants sont déclarés dans le fichier AndroidManifest.xml, qui contient
également :
o Les permissions (ex. : accès à Internet).
o La version minimale de l’API.
o Les matériels/logiciels utilisés (ex. : caméra, Google Maps…).
Notion d’Activité (Activity) :
Une Activity représente une interface utilisateur avec laquelle l’utilisateur interagit.
Elle est lancée sur demande de l’utilisateur ou du système.
Chaque activité correspond généralement à un écran (View) et est gérée par Android.
Une activité hérite de la classe android.app.Activity.
✅ Exemple de code d’une activité :
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
📌 3. Cycle de vie d’une Activité :
Une activité passe par plusieurs étapes :
onCreate() : Création de l’activité.
onStart() : Devient visible.
onResume() : En premier plan et active.
onPause() : Perte de focus.
onStop() : N’est plus visible.
onRestart() : Relancée après l’arrêt.
onDestroy() : Destruction définitive.
🛠 Chaque méthode est utilisée pour gérer les tâches appropriées, comme lancer/arrêter
une animation, sauvegarder des données, gérer les connexions, etc.
📌 4. Les Ressources (Resources) :
Les ressources sont des fichiers statiques externes au code (ex. : images, textes, couleurs...).
Types de ressources :
Chaînes de caractères (Strings) : strings.xml
Couleurs (Colors) : colors.xml
Dimensions : dimens.xml
Layouts : fichiers d’agencement dans layout/
Dessins (Drawables) : images dans drawable/
Animations : animations dans anim/
Organisation des Ressources :
Les ressources sont regroupées dans le dossier res/.
Chaque type est stocké dans un fichier XML spécifique.
6. Utilisation des Ressources :
Dans le code Java :
String text = getResources().getString(R.string.example_string);
int color = getResources().getColor(R.color.example_color);
float size = getResources().getDimension(R.dimen.example_dimension);
🧾 Résumé du Cours : Interfaces Graphiques et
Widgets
🔹 1. Introduction :
L'interface utilisateur (UI) est un composant essentiel des applications Android.
L'utilisateur interagit avec l’application à travers des éléments tels que : boutons,
champs de texte, images, menus déroulants...
Les Views et Widgets sont utilisés pour concevoir des interfaces visuelles attrayantes
et interactives.
🔹 2. Views et Widgets :
Une View est un élément fondamental de l’UI représentant une zone d’affichage.
Un Widget est un type particulier de View avec une fonction spécifique (ex. : bouton,
champ de saisie...).
Les vues sont organisées en hiérarchie arborescente et peuvent être définies en
XML ou en code Java/Kotlin.
.
🔹 3. Les Layouts (Agencements) :
📌 LinearLayout :
Dispose les éléments horizontalement ou verticalement selon l’attribut orientation.
Facile à utiliser et peut être combiné pour créer des layouts complexes.
📌 RelativeLayout :
Positionne les éléments relativement aux autres (au-dessus, en dessous, à gauche...).
Réduit la complexité en évitant l’imbrication excessive.
📌 ConstraintLayout :
Layout moderne et flexible basé sur les contraintes.
S’adapte aux différentes tailles et orientations d’écran.
Prend en charge : guidelines, chaînes, barrières.
4. Les Fragments :
Représentent une partie réutilisable de l’interface.
Introduits pour faciliter l’adaptation aux grands écrans et résolutions variées.
Possèdent leur propre cycle de vie (onCreateView, onStart, onResume...).
📌 Avantages :
Réutilisables dans plusieurs activités.
Simplifient le code.
Améliorent les performances.
Adaptés aux différents formats d’appareils.
5. Gestion des événements sur les widgets :
📎 Widgets de base :
TextView : affiche un texte (non modifiable).
EditText : permet à l'utilisateur de saisir un texte.
Button : exécute une action lorsqu’on clique.
CheckBox : coche multiple possible.
RadioButton : sélection unique dans un RadioGroup.
ImageView : affiche une image.
ProgressBar : affiche une progression de tâche.
📎 Widgets avancés :
ListView, RecyclerView : listes d’éléments.
DatePicker, TimePicker : sélection de date/heure.
WebView : affichage de pages Web dans l’application.
✅ Points clés à retenir :
Les interfaces peuvent être définies par fichiers XML ou par code Java/Kotlin.
Le choix du bon layout influence la performance et la facilité d’utilisation.
Il est possible de combiner plusieurs vues et widgets pour créer des interfaces complexes et
dynamiques.
🧾 "Menus et boîtes de dialogue" – Développement
d'applications Android (2024–2025)
🔹 1. Gestion des Menus :
📌 Qu’est-ce qu’un menu ?
Une liste d’options permettant d’accéder à des fonctionnalités supplémentaires sans
occuper l’espace visible de l’écran.
Chaque menu est lié à une seule activité (Activity).
Lorsque l’utilisateur sélectionne un élément, une méthode callback est déclenchée.
📌 Types de menus dans Android :
1. Menu d’options :
o S’affiche dans la barre d’application (App Bar).
o Contient des actions globales comme : Paramètres, Rechercher, etc.
2. Menu contextuel :
o Apparaît après un appui long sur un élément.
o Propose des actions en lien avec l’élément sélectionné.
3. Menu pop-up :
o Affiche une liste verticale d’actions près d’un élément donné.
o Utilisé pour des actions complémentaires sans affecter directement le contenu.
📌 Création d’un menu :
Créez un fichier XML dans res/menu/
Contient les balises :
o <menu> : racine du fichier.
o <item> : représente un élément du menu.
o <group> : groupe d’éléments avec propriétés communes (optionnel).
Exemple :
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:title="@string/new_game"
android:icon="@drawable/ic_new_game"/>
</menu>
🔹 2. Les Boîtes de Dialogue :
📌 Qu’est-ce qu’une boîte de dialogue ?
Une petite fenêtre qui invite l’utilisateur à prendre une décision ou à saisir une information.
Ne couvre pas tout l’écran.
Utilisée pour des événements bloquants (modaux) qui nécessitent une action utilisateur.
📌 Types de dialogues :
1. AlertDialog :
o Contient un titre, un message ou une mise en page, et jusqu’à 3 boutons (positif,
négatif, neutre).
2. DatePickerDialog / TimePickerDialog :
o Interfaces intégrées pour choisir une date ou une heure.
📌 Utilisation de DialogFragment :
DialogFragment permet de créer et gérer des dialogues tout en respectant leur cycle de
vie.
Évite d’instancier directement la classe Dialog.
📌 Exemple d’AlertDialog :
java
CopyEdit
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Voulez-vous continuer ?")
.setPositiveButton("Oui", ...)
.setNegativeButton("Non", ...);
✅ Résumé Final :
Les menus et boîtes de dialogue sont essentiels pour améliorer l’interaction utilisateur.
Android fournit des outils puissants pour les créer via XML ou Java.
Une bonne gestion passe par l’utilisation de MenuInflater, AlertDialog,
DialogFragment, etc.
🧾 AndroidManifest.xml et communication entre composants
🔹 1. Le fichier AndroidManifest.xml :
Fichier essentiel dans tout projet Android, situé à la racine.
Il fournit des informations importantes sur l’application, telles que :
o Nom du package
o Version de l'application
o Icône, thème, configuration
o Permissions nécessaires
o Déclaration des composants (Activities, Services, BroadcastReceivers,
ContentProviders)
📌 Principaux éléments :
<manifest> : élément racine, contient le nom du package et les versions.
<application> : englobe les composants de l’application.
<activity>, <service>, <receiver>, <provider> : pour déclarer les composants.
<intent-filter> : définit les types d’intents que le composant peut gérer.
<uses-permission> : pour demander des autorisations (ex. : caméra, Internet).
<uses-sdk>, <uses-feature> : pour indiquer la version minimale requise et les
fonctionnalités matérielles/logiciels nécessaires.
🔹 2. Communication entre les composants :
📌 Qu’est-ce qu’un Intent ?
Un Intent est un objet qui permet de communiquer entre les composants d'une application
ou avec d'autres applications.
Il contient :
o L'action à réaliser (optionnelle)
o Les données à transmettre
o Le composant cible (optionnel)
🔸 Types d’Intents :
✅ 1. Intent explicite :
Utilisé pour démarrer un composant spécifique (comme une activité ou un service).
Utilisé principalement au sein de la même application.
java
CopyEdit
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
✅ 2. Intent implicite :
Ne spécifie pas directement un composant, mais décrit une action à effectuer.
Android choisit une application capable de répondre à l’action.
java
CopyEdit
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://example.com"));
startActivity(intent);
🔸 Résolution des Intents implicites :
Android recherche les composants compatibles via les intent-filters déclarés dans le
manifeste.
Étapes :
1. Android compare action, catégorie et données de l’intent avec les filtres disponibles.
2. Si plusieurs correspondances : boîte de dialogue pour choix utilisateur.
3. Aucune correspondance : erreur.
🔹 Exemples courants d’Intents :
Intent Utilisation
Intent.ACTION_VIEW Afficher du contenu (ex. : lien web)
Intent.ACTION_SEND Partager du contenu
Intent.ACTION_PICK Sélectionner un élément (image, contact...)
java
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivity(intent);
✅ Résumé final :
Le fichier AndroidManifest.xml organise les composants, permissions et configurations de
l'application.
Les Intents sont essentiels pour faire communiquer les différentes parties d’une application
ou pour interagir avec d'autres applications.
Les intents explicites sont utilisés en interne, tandis que les implicites permettent d’accéder
aux services du système ou à d’autres apps.