TD / TP "2", 18.11
Vous commencez à travailler sur les applications Android.
Je vous ferai une introduction de base concernant l'usage de Android Studio. Pour la standardisation, et complétude, on travaillera sur le tutoriel
https://developer.android.com/training/index.html
Vous trouverez aussi plusieurs autres tutoriels et exemples, par ex.
La programmation sous Android avec Android Studio a quelques spécificités qu'il faut reconnaître assez tôt.
-
Vous aurez besoin d'un dispositif de sortie, la machine Android. Vous pourrez utiliser :
-
L'émulateur (AVD) de Google Nexus, installé avec L'AS et le SDK. Avantage : pas besoin d'un appareil extérieur. Cependant, ce logiciel est assez lourd, on a besoin d'une plate-forme d'au moins 4 ou 8Giga, et quelques spécificités des écrans tactiles ne pourront être actifs. Ceci reste quend même la solution privilégiée, mais seulement pendant le développement.
Attention. Vous pouvez en principe créer (paramétrer) votre virtual device différent de ce qui est offert par défaut, afin d'adapter la géométrie à vos besoin. Évitez de le faire dans nos salles de machines, car vous allez encombrer votre répertoire par plus d'un Giga de code+données. Les machines ici sont déjà suffisamment chargées...
-
Un téléphone ou tablette Android en mode développement, branché par USB (avec le "USB debugging" également activé. Normalement AS doit communiquer avec l'appareil sans problème, mais parfois il y a des problèmes avec les pilotes USB.
-
Un appareil Android connecté au réseau, de manière à pouvoir télécharger une .apk compilée et assemblée par AS. Tôt ou tard il faudra le faire de toute façon. (Si nécessaire, on pourra effectuer le transfert via HTTP ou FTP).
-
Les programmes sous Android ne font pas beaucoup de calculs, mais opèrent avec beaucoup de données visualiées, textes, icônes et d'autres images, etc. Typiquement, ces données ne sont pas codées en tant que constantes dans le programme Java, mais font partie des ressources, des méta-données typiquement en format XML. On y trouve les couleurs, les dimensions...
-
Une application Android contient vraiment beaucoup de métadonnées ; le codage d'une composition utile à la main serait très inefficace, Android Studio assemble et met à jour les méta_données automatiquement.
-
En particulier, la couche visuelle : les widgets et les layouts, sont placés sur la surface de la fenêtre de l'application par un constructeur interactif, même si on peut le faire à la main. Ici la vie sera plus facile pour ceux qui ont une certaine expérience avec la création des applications Swing avec NetBeans ou Eclipse.
-
L'entité principale sous Android, qui est compilée comme une sous-classe spéciale Java est l'Activité. Cette classe représente un processus relativement autonome au sein d'une application, avec sa propre gestion des événements, et typiquement une fenêtre indépendante. Les processus/threads qui n'ont pas d'interface visuelle, sont très nombreux aussi, on les appelle : Services. Les Activités et les Services étendent la classe Context, c'est un gestionnaire des processus, la connexion entre l'application et le système qui exécute cette application.
-
Il existe aussi la notion de Fragment, ce sont des composantes d'une Activité, qui peuvent être partagées.
L'application qui sera démontrée aujourd'hui c'est un "Hello World", suivi par un simple programme qui permet l'écriture d'un message, et son transport dans une autre fenêtre.
Exercice 1.
Répéter par vos soins l'exemple montré ; tenter de le modifier légèrement, changer la géométrie, les couleurs, etc. Votre travail autonome d'aujourd'hui, et partiellement de la semaine prochaine :
Faire une "mini-calculatrice", placer sur l'écran une quinzaine de boutons, les 10 chiffres, les opérateurs +, -, * /
, et =. L'objectif final est de faire une vraie calculatrice, mais commencez par rendre la tableau de boutons sensible aux clics, qui affichent les caractères sur une ligne textuelle. Une seule Activité.
Quelques informations sur la création des layouts se trouvent ici, cette page, et plusieurs autres à côté. Si besoin, posez des questions concrètes ! Une classique est : comment arranger une table rectangulaire de boutons? Vous devez insérer le TableLayout. Ensuite, par ex., un Button sur la position (0,0). Vous constatez alors que AS vous a automatiquement inséré une rangée : TableRow d'abord, et à l'intérieur le bouton.
Voir par ex. cette page, et celle-là.
Les boutons sont larges, comment mettre 5 ou 6 à côte? Il faut prévoir dans TableLayout le paramètre android:shrinkColumns="*", ainsi les colonnes et les boutons se rétréciront... Il y a également le paramètre stretchColumns
, si nécessaire. Si le "tableau" n'est pas homogène, il est préférable d'utiliser GridLayout.
Retour
Suivant