Exercice 01 : Généralités sur la programmation Mobile /5,5pts
- Qu’est-ce qu’une application Android ? Qu’est-ce que la programmation mobile ? (0,5+0,5=1pt)
- Dans le développement d’une application Android avec le langage Java que représente les sigles suivants : ADT, DEX, AVD, XML, EDI, HAL, UI/UX, SCV, ART, ADB. (2,5 pts)
- Qu’est-ce que SharedPreferences sous Android ? (0,5pts)
- Quelles sont les conditions dans lesquelles Android peut décider de détruire une application, et quelles sont les conséquences de cette destruction ? (0,5pts)
- Quelle est la séquence des phases pour une application Android lorsque Tom-Tom passe d'une application à une autre, par exemple, de Facebook à une application de courrier électronique (Gmail) ? (0,5pts)
- Quels sont les deux Frameworks proposer par Windows Phone 7. (0,5pt)
Exercice 02 : Android - Dalvik /4,25pts
L'image ci-dessous représente le processus d'exécution d'une application Android, de sa création jusqu'à son exécution sur un appareil mobile. En vous basant sur ce schéma, répondez aux questions suivantes :

- Décrire le schéma en expliquant les différentes étapes de l’exécution d’une application Android. (1,25pt)
- Quel est le rôle du fichier APK dans le fonctionnement d'une application Android ? (0,5pt)
- Pourquoi Android utilise-t-il une machine virtuelle (DVM) au lieu d’exécuter directement du code Java ? (0,5pt)
- Quelles sont les principales composantes matérielles avec lesquelles une application Android peut interagir ? (0,5pt)
- L’un des principaux inconvénients de Dalvik est la longueur du temps d’exécution pour résoudre ce problème quel outil a été introduit ? (0,5pt)
- Quel est le rôle du système Linux dans l'architecture Android ? Si Android n’utilisait pas une machine virtuelle (DVM), quels pourraient être les inconvénients (02) d’exécuter directement le code Java sur un smartphone ? (0,5+(0,5(0,25+0,25)) =1pt)
Exercice 03 : Android - Cycle de vie d’une activité /4,5pts
On se Rappels des différentes méthodes de callback qu’Android génère automatiquement pour une activité le long de sa vie et vous l’avez vue lors de la réalisation personnelle de vos Tps.
1) Donner un schéma qui représente toutes les méthodes de callback. (1pt)
2) Quelles sont les fonctionnalités qu’on réalise généralement dans OnCreate() ? (0,75pt)
3) Quand il est recommandé de libérer les ressources (OnPause, OnStop, OnDestroy) ? (0,75pt)
4) Tracez les appels de callback pour une application constituée de deux activités goOne et goTen pour les cas où :
(a) goOne lance goTen et goTen se termine par l’appui sur retour. (0,75pt)
(b) goOne contient une boite de dialogue à 2 options dont la première lance goTen. (0,75pt)
5) Que se passe-t-il s’il y a un appel de finish() dans la méthode OnCreate() ? (0,5pt)
Problème : Android - E-Commerce - Projet / (0,75*8)+0,25 = 6,25pts
Dans cet exercice, nous allons développer une application Android ensemble permettant aux utilisateurs de se connecter, parcourir une liste de produits, visualiser les détails d’un produit et modifier sa quantité. L’application utilisera RecyclerView, Fragments, DrawerLayout et Intent pour assurer une navigation fluide. Une base de données simple (HashMap) servira pour l’authentification. L’objectif est de comprendre les bases de la gestion des interfaces, de la navigation et de la manipulation dynamique des données en Android, mettant ainsi à l’épreuve vos travaux de recherche sur vos différents Tps.

- Comment stocker et vérifier les informations d’un utilisateur en local sous Android ? (Proposez un code pour cela avec les données suivantes : "username"-> "caramelo"| "password" -> "ccPm2025@in3"). Quel est le rôle du mots clé final sur un attribut java ?
- Quel composant Android permet d’afficher un message d’erreur en cas d’identifiants incorrects ? (Proposez un code pour cela ou nous afficherons tout simplement : ‘’ Identifiants incorrects ‘’).
- Quelles sont les différences fondamentales entre un Intent et Bundle pour le passage de données entre activités ou fragments ? (Proposez un code pour associer les 02 vous disposez des données suivantes : "productName"-> "Banane"| "price" -> "2000").
- Comment transmettre des données d’une activité à une autre avec un Intent ? (Proposez un code pour cela avec les données suivantes : "username"-> "berlin"). Pourquoi utilise-t-on Toast.makeText() ?
- À quoi sert RecyclerView et pourquoi est-il préféré à ListView dans les nouvelles applications Android ?
- Quel est le rôle d’un Fragment dans une application Android ? Différence entre LinearLayout et RelativeLayout ?
- Quel est le rôle de setContentView() dans une Activity ? Quel est l’apport de android:hint dans un code XML ?
- Comment mettre à jour dynamiquement un TextView pour afficher une quantité et un prix total donner le code en question ? (Proposez un code pour cela…).