IFT1155 Examen Final



Documents pareils
Android UIThread, Thread, Handler et AsyncTask

Android 4 Les fondamentaux du développement d'applications Java

TP2 : Client d une BDD SqlServer

1.3 Gestion d'une application

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

TP au menu «UI ANDROID»

Les fondamentaux du développement d applications Java

Manuel d'installation de GESLAB Client Lourd

Installation d un manuel numérique 2.0

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Table des matières. Partie I Concepts de base Préface... VII

TD/TP 1 Introduction au SDK d Android

TUTORIEL : Formulaire sur Google : Saisie des réponses questionnaires comptoir Mise en place de questionnaires à distance

Manuel d'utilisation

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

claroline classroom online

TP SIN Programmation sur androïde Support : eclipse

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Routeur client. PC accueil Postes IP

Agenda mutualisé en ligne - services A.S.V. Informatique.

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

GUIDE D INSTALLATION RAPIDE ACTIVEZ

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Application de lecture de carte SESAM-Vitale Jeebop

Chapitre 1 Retour en arrière

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

PRONOTE 2010 hébergement

Préparation à l installation d Active Directory

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Guide d utilisation. Version 1.1

Warren PAULUS. Android SDK et Android x86

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

CONTACT EXPRESS 2011 ASPIRATEUR D S

Manuel d utilisation du Guichet électronique V2

API HTTP DOCUMENTATION TECHNIQUE PLATEFORME SAAS D'ENVOI DE SMS. Version Mise à jour : 3 juillet 2015

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

Notice d installation et d utilisation du blog nomade avec un nouveau blog

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Dropbox : démarrage rapide

Edutab. gestion centralisée de tablettes Android

Ceci est un Chromebook, ton ordinateur!

SECURIDAY 2013 Cyber War

Tutorial pour une application simple

1. Installation du Module

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

BONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO.

Guide de l enseignant. pour le Passeport Sécurité. Mise à jour : 10 août 2015

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

CREG : versailles.fr/spip.php?article803

La base de données XML exist. A. Belaïd

Firefox pour Android. Guide de l utilisateur. press-fr@mozilla.com

DUBREUIL Raphaël VERNET Antoine RAPPORT PROJET DE FIN D'ETUDES BORNE INTELLIGENTE HETEROGENE

Traitement de données

Programmer en JAVA. par Tama

Tutoriel d installation de Hibernate avec Eclipse

Les messages d erreur d'applidis Client

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

M-Budget Mobile Internet. M-Budget Mobile Connection Manager pour Mac OS

Guide Utilisateur. Edition Mars Agenda. s. Evènements. Synchroniser avec les identités de gestion, de. Messagerie interne. Post-it.

Ecran principal à l ouverture du logiciel

Outil de démonstration : Application PassNFC

Présentation du logiciel Cobian Backup

Votre premier projet Android

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Projet Android (LI260) Cours 2

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

1. Base de données SQLite

Guide de l'utilisateur

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Création d un service web avec NetBeans 5.5 et SJAS 9

NovoSIP manuel de mise en service

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

MEDIA NAV Guide de téléchargement de contenus en ligne

Direction des Systèmes d'information

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

L accès à distance du serveur

Diigo : fonctions avancées

inviu routes Installation et création d'un ENAiKOON ID

Projet De Stijl Plate-forme pour robots mobiles

TigerPro CRM Application mobile

Mode d emploi CONNEXION AU TERMINAL SERVER

Développement Logiciel

Espace Client Aide au démarrage

De EnvOLE 1.5 à EnvOLE 2. Document pour l administrateur

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

INTRODUCTION AUX TESTS CODES DE L INTERFACE UTILISATEUR

GUIDE ADMINISTRATEUR BIEN DÉMARRER AVEC WISEMBLY

Table des matières Introduction Démarrage Les composants graphiques... 26

Transcription:

Trimestre Été, 2013 Mohamed Lokbani IFT1155 Examen Final Inscrivez tout de suite : votre nom et le code permanent. Nom : Prénom(s) : Signature : Code perm : Date : mardi 16 juillet 2013 Durée : 3 heures (de 17h30 à 20h30) Local : Z-220 ; Pavillon Claire McNicoll Directives : - Toute documentation est permise. - Calculatrice non permise. - Répondre directement sur le questionnaire. - Les réponses doivent être brèves, précises, claires et nettement présentées. 1. /20 (1.1 à 1.10) 2. /15 (2.1, 2.2, 2.3, 2.4, 2.5) 3. /15 (3.1, 3.2, 3.3, 3.4, 3.5) 4. /20 (4.1, 4.2, 4.3) 5. /30 (5.1, 5.2, 5.3, 5.4) Total : /100 Directives officielles * Interdiction de toute communication verbale pendant l'examen. * Interdiction de quitter la salle pendant la première heure. * L'étudiant qui doit s'absenter après la première heure remettra sa carte d'étudiant au surveillant, l'absence ne devant pas dépasser 5 minutes. Un seul étudiant à la fois peut quitter la salle. * Toute infraction relative à une fraude, un plagiat ou un copiage est signalée par le surveillant au directeur de département ou au professeur qui suspend l'évaluation. F.A.S IFT1155 Trimestre Été, 2013: Examen Final 1/13

Exercice 1 (20 points) Répondez par «vrai» ou «faux» en y incluant une très courte explication. 1.1 [VRAI FAUX] La plateforme Android utilise la base de données Oracle, pour le développement? 1.2 [VRAI FAUX] Les applications Android ne peuvent être distribuées que via la plateforme [Google Play]? 1.3 [VRAI FAUX]Il est possible d utiliser l émulateur pour tester des envois SMS? 1.4 [VRAI FAUX] Webkit est une librairie native de la plateforme Android? 1.5 [VRAI FAUX] La constante «CONNECTIVITY_ACTION» nous informe si un changement a eu lieu dans la connectivité du réseau? 1.6 [VRAI FAUX] Les fichiers ressources sont en mode lecture et écriture? 1.7 [VRAI FAUX] Pour accéder à un provider, votre application doit demander le plus souvent des permissions spécifiques du fichier manifeste? 1.8 [VRAI FAUX] Une application Android peut demander des permissions additionnelles dynamiquement au moment de son exécution? 1.9 [VRAI FAUX] «Google Map» fait partie des paquetages par défaut d Android? 1.10 [VRAI FAUX]Android supporte les applications «jar»? IFT1155 Trimestre Été, 2013: Examen Final 2/13

Exercice 2 (15 points) Choisissez la bonne réponse en y incluant une courte explication. Il peut y avoir plusieurs bonnes réponses. 2.1 Quelle est la composante qui n est pas activée par un intent? a) Activité b) Service c) ContentProvider d) BroadcastReceiver 2.2 Quand un ContentProvider est-il activé? a) En utilisant un intent b) En utilisant SQLite c) En utilisant ContentResolver d) Aucune des précédentes réponses 2.3 Quelles sont les déclarations qui permettent d obtenir la valeur «Integer» sauvegardée avec la clé «mdirection» de l instance «itest» d un objet «Bundle»? a) mdirection = itest.getinteger("mdirection"); b) mdirection = Bundle.getInteger("mDirection"); c) mdirection = itest.getlong("mdirection"); d) mdirection = itest.getinteger("unecle"); IFT1155 Trimestre Été, 2013: Examen Final 3/13

2.4 Lesquelles de ces assertions décrivent le processus de signature d une application? a) Toutes les applications doivent être signées avant d être déployées? b) Pour un développement local et qui ne nécessite pas l utilisation de «Google Play», un certificat auto-signé fait l affaire. c) Il y a 3 modes de signature : «debug», «test» et «release». d) Pour distribuer une application de test à plus de 100 clients, il est nécessaire d avoir un certificat test émis par Google pour notre application. e) Un certificat «release» est émis par Google moyennant un paiement unique de 25$ lors de l inscription en tant que développeur. 2.5 Lesquelles de ces assertions décrivent l émulateur Android SDK? a) Un émulateur n exécute pas en réalité le système Android. Il s agit plutôt d un composant logiciel qui interprète les fonctionnalités et les actions de toute l API d Android. b) Les applications déployées avec un certificat «debug» sur l émulateur doivent-être résignées pour être déployées sur «Google Play». c) Un seul émulateur peut-être exécuté à la fois. d) L adresse IP de l émulateur est la même que celle de l ordinateur qui l héberge. e) L émulateur n a pas besoin d être redémarré après chaque déploiement d une application. IFT1155 Trimestre Été, 2013: Examen Final 4/13

Exercice 3 (15 points) Expliquez ce qui suit. 3.1 Une application qui peut lire et mettre à jour des données fournies à travers un ContentProvider, peut-être mise à jour sans trop de difficultés pour lire et mettre à jour ces mêmes données si elles étaient fournies via une base de données Android SQLite. 3.2 L'API Android fournit un ensemble de classes pour renforcer la notion qu'un seul thread a la possibilité de mettre à jour l'interface graphique (GUI) de l'application. 3.3 Un «AlertDialog» est plus approprié qu'un «Toast» pour informer l'utilisateur que le téléphone va s éteindre dans 5 minutes, car la batterie est presque vide. IFT1155 Trimestre Été, 2013: Examen Final 5/13

3.4 Pour informer l'utilisateur qui vient de télécharger une grosse image localement sur son appareil Android à partir d'un fichier, il est préférable d'utiliser un «ProgressDialog» du type une barre de progression qu'un «ProgressDialog» du type «spinner». Barre de progression Spinner 3.5 Expliquez la relation entre un ContentProvider et un ContentResolver. IFT1155 Trimestre Été, 2013: Examen Final 6/13

Exercice 4 (20 points) Le but de l exercice est de sauvegarder l état de la connexion d un utilisateur à un service donné, et la date de cette connexion. Pour cela, nous allons utiliser deux activités. Voici une capture d écran après avoir exécuté successivement les deux activités : Activité «Login», principale Activité «Test», secondaire Test après un clic sur «Menu» Figure -1- Figure -2- Figure -3- Les opérations se déroulent comme suit : 1- Démarrage de l activité principale, «Login». 2- L utilisateur «dift1155» est-il déjà connecté à sa session? a) Non, l utilisateur ne s est pas encore connecté. Dans ce cas, nous lui affichons la figure -1-. 1) L utilisateur fournit son [Login], «dift1155», et son [Password], «test»; puis il clique sur le bouton [Login] qui correspond au [Sign in] sur la figure -1-. 2) Nous préservons l information comme quoi l utilisateur s est connecté à sa session. 3) Nous sauvegardons aussi la date et l heure de sa connexion. 4) Nous affichons la figure -2- : le texte «Bonjour dift1155!» et un «Toast» contenant la date de sa connexion pour cet exemple «13:06:57 07/14/2013». b) Oui, l utilisateur s est connecté déjà. Nous lui affichons la figure -2-, comme dans «2.a.4». 3- L utilisateur clique sur l icône «Maison» (Home), puis décide de relancer son application. Comme il est déjà connecté, il tombe sur le cas «2.a.b». Si pour une quelconque raison, Android a décidé de tuer l application, retour à la case départ, et nous sommes dans le cas «2.a». 4- L utilisateur clique sur «Menu» et choisit de se déconnecter en cliquant sur «Sign out». On s assure dans ce cas que la session a bien pris fin et que la date et l heure ont été remises à zéro. 4.1 Complétez la méthode «oncreate» de la classe «Test», associée à la seconde activité : public void oncreate(bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.test); IFT1155 Trimestre Été, 2013: Examen Final 7/13

4.2 La méthode «onoptionsitemselected» de la classe «Test», est appelée si l utilisateur clique sur le bouton «Logout» correspondant au «Sign out» sur la figure -3-. public boolean onoptionsitemselected(menuitem item){ 4.3 Complétez la méthode «oncreate» de la classe «Login», associée à la première activité : public void oncreate(bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.test); IFT1155 Trimestre Été, 2013: Examen Final 8/13

Exercice 5 (30 points) Soit «Exo05», une application Android, composée de 2 boutons et d un «TextView». Les boutons sont : «IP» et «TimeStamp». Le «TextView» affiche, après un traitement donné, le résultat du clic sur l un des 2 boutons. Le traitement consiste à faire une requête «http» à un site web donné en faisant appel à la méthode «getjsonfromurl» fournie en annexe de ce document. Le résultat obtenu est sous la forme «JSON». Il sera traité par la suite par l application afin de l afficher à l utilisateur via le «TextView». Chaque bouton est associé une adresse «url» propre à lui et qui renvoie un résultat «JSON» personnalisé. Ainsi donc, pour les 2 boutons décrits précédemment, nous avons ce qui suit : Nom du bouton : IP Adresse URL : http://ip.jsontest.com/ Résultat «JSON» : {"ip": "132.204.26.153" Nom du bouton : TimeStamp Adresse URL : http://date.jsontest.com/ Résultat «JSON»: { "time": "03:53:25 AM", "milliseconds_since_epoch": 1362196405309, "date": "03-02-2013" 5.1 Quelles sont les permissions qu il faudra ajouter au fichier «Android Manifest» pour que l application «Exo05» puisse fonctionner correctement? 5.2 Est-ce que les réponses ont le même format «JSON». Précisez lequel (ou lesquels, si le format n est pas unique). IFT1155 Trimestre Été, 2013: Examen Final 9/13

5.3 Est-ce que le traitement associé à la requête «http» et le traitement de la réponse doivent avoir lieu en dehors du thread UI? 5.4 Nous faisons les hypothèses suivantes : Tous les paquetages nécessaires au bon fonctionnement de l application ont été importés dans votre application; Nous sommes intéressés que par la méthode «oncreate» et les méthodes ou classes à ajouter dans l application pour son bon fonctionnement. Le traitement relatif aux différentes étapes du cycle de vie de l application, ne nous intéresse pas à ce stade. Il n est donc pas nécessaire de définir «ondestroy», «onpause» etc. Pour les réponses «JSON» obtenues, nous ne sommes intéressés qu aux champs suivants : «IP», «time», «date». Il ne faudra pas donc tenir compte du champ «milliseconds_since_epoch». La méthode AsyncTask n est pas permise. Il sera tenu compte lors de la correction de la clarté et de la compacité de votre programme. IFT1155 Trimestre Été, 2013: Examen Final 10/13

IFT1155 Trimestre Été, 2013: Examen Final 11/13

IFT1155 Trimestre Été, 2013: Examen Final 12/13

Annexe public class JSONParser { static InputStream is = null; static JSONArray jarray = null; static String json = ""; // constructeur public JSONParser() { public StringBuilder getjsonfromurl(string url) { StringBuilder builder = new StringBuilder(); HttpClient client = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); try { HttpResponse response = client.execute(httpget); StatusLine statusline = response.getstatusline(); int statuscode = statusline.getstatuscode(); if (statuscode == 200) { HttpEntity entity = response.getentity(); InputStream content = entity.getcontent(); BufferedReader reader = new BufferedReader(new InputStreamReader(content)); String line; while ((line = reader.readline())!= null) { builder.append(line); else { Log.e("==>", "Echec lors du telechargement du fichier"); catch (ClientProtocolException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); // retourne un JSON String (un StringBuilder) return builder; IFT1155 Trimestre Été, 2013: Examen Final 13/13