Développement d'applications mobiles sous Android
Joseph Azar
joseph.azar@univ-fcomte.fr
1-Qu'est-ce qu'une Activité?
Un écran qui effectue une action très particulière dans une application Android
Les activités interagissent avec l'utilisateur, elles présentent une fenêtre et présentent une interface utilisateur interactive à l'intérieur (via la
fonction setContentView())
2- Cycle de vie de l'activité?
3-Qu'est-ce qu'un fragment?
Ils fournissent un mécanisme modulaire pour créer une interface utilisateur qui peut être facilement réutilisée dans une application
Plusieurs fragments peuvent être intégrés à une activité, rendant une application beaucoup plus interactive
4-Cycle de vie des fragments?
Le cycle de vie des fragments dépend du cycle de vie de l'activité
5-Comment est la structure d'une application Android?
Assets (Databases, text files)
Build
Libs (.jar)
Src (main/java et main/res)
Build.gradle (Informations sur la construction de l'application)
AndroidManifest.xml (Composants d'application et autorisations)
6-Que sont les composants Android?
Activities
Intent et Broadcast reveivers
Services
Content Providers
Widgets et Notifications
7- Quelles sont les autorisations dans une application Android?
Ils sont spécifiés dans AndroidManifest.xml et déclarent à quelle fonctionnalité du système une application peut accéder
Accès à la caméra
Effectuer des connexions Internet
Accéder au matériel de localisation
Accéder aux capteurs
Composer un numéro de téléphone
8- Qu'est-ce qu'un Intent? Quels sont les types d'intention?
Un message envoyé entre les composants Android pour demander des fonctionnalités et interagir entre eux. Il peut être utilisé pour interagir avec différentes applications.
Explicit Intents : Il définit exactement quel composant nous voulons appeler dans le système Android
Implicit Intents: Une intention implicite ne spécifie pas quel
composant prendra en charge la prochaine action, mais indiquera plutôt l'action à effectuer
9- Comment puis-je conserver des
informations sur un appareil Android?
SharedPreferences
SQL Database
Files (WRITE_EXTERNAL_STORAGE)
10- Qu'est-ce qu'un service dans Android et
combien de types de services connaissez-vous?
Un service est un composant qui exécute des opérations de longue durée en arrière-plan et ne possède pas d'interface. Les services sont démarrés par un autre composant d'application et restent en arrière- plan, que l'autre composant reste actif ou non.
Les services ont leur propre cycle de vie
Un service peut être Bounded ou Unbounded
Bounded: Connecté à un autre composant, il vit généralement pendant que l'autre composant est encore en vie.
Unbounded: Continuer à fonctionner indéfiniment
10- Qu'est-ce qu'un service dans Android et
combien de types de services connaissez-vous?
11- Qu'est-ce qu'un Content Provider et à quoi l'utilisez-vous?
C'est un mécanisme sous Android permettant
d'échanger du contenu et de le fournir à différentes applications
Ils lisent des informations à partir de sources telles que des bases de données SQLite ou de gros fichiers, et elles doivent être déclarées dans le fichier
AndroidManifest.xml pour être pleinement fonctionnelles
Chaque application peut définir son propre
ContentProvider. Android fournit également une liste
complète de ContentProviders par défaut: SMS, numéros de téléphone, etc.
12- Qu'est-ce qu'un BroadcastReceiver?
Il s'agit d'un composant qui envoie/reçoit un message au système afin que tout autre composant puisse le capturer et interagir avec lui
Diffusion pour indiquer un faible niveau de batterie
Diffusion pour indiquer une déconnexion du WiFi
13-Qu'est-ce que l’ADB?
Android Device Bridge
Outil de ligne de commande développé pour communiquer avec les appareils Android
Installer ou désinstaller une application du périphérique
Envoyer ou extraire un fichier depuis un périphérique
Accéder au logcat de l'appareil
14-Qu'est-ce que le DDMS?
Dalvik Debug Monitor Server
Outil de débogage:
Capturer des screenshots de l'appareil
Analyseur de threads actifs
Traiter les problèmes de mémoire
Simuler des lieux, des SMS ou des appels entrants
15- Qu'est-ce que AsyncTask?
Android définit AsyncTask comme «une classe qui étend la classe Object pour permettre aux opérations courtes de s'exécuter de manière
asynchrone en arrière-plan». Avec «doInBackground» et
«onPostExecute», Async peut exécuter des tâches de manière asynchrone sur de nouveaux threads.
16-Quand utiliser AsyncTask et quand utiliser les services?
Les services sont utiles lorsque vous souhaitez exécuter du code même lorsque l'activité de votre application n'est pas ouverte
AsyncTask est une classe d'assistance utilisée pour exécuter du code dans un thread séparé et publier les résultats dans le thread principal.
AsyncTask est généralement utilisé pour de petites opérations et les services sont utilisés pour des opérations de longue durée
17-Qu'est-ce qu'un handler et un looper?
Un Looper est une classe utilisée pour parcourir en boucle la file de messages attachée au thread.
Un Handler vous permet d’envoyer et de traiter les objets Message et Runnable associés au MessageQueue d’un thread. Chaque instance de Handler est associée à un seul thread et à la file de messages de ce thread. Lorsque vous créez un
nouveau Handler, il est lié au thread / à la file d'attente de messages du thread qui le crée.
18-Comment puis-je accéder à la position de mon appareil?
LocationManager: fournit un accès aux services de localisation à partir du système Android
LocationListener: Permet à l'application d'être avertie si un fournisseur, l'état ou l'emplacement du périphérique ont changé
19-Quelle est la différence entre ViewGroups et Views?
Un ViewGroup s'étend de la classe View. Un ViewGroup est la classe de base utilisée pour créer des présentations (Layouts), qui sont des conteneurs pour différents ensembles de vues (ou également des ViewGroups).
20-Que sont APK et le SDK?
Package Android (APK) est le format de fichier de package utilisé par le système d'exploitation Android pour la distribution et l'installation
d'applications mobiles et de middleware
Le SDK est un ensemble d’outils permettant de développer des applications logicielles visant une plate-forme spécifique
21-Qu'est-ce que la fragmentation dans Android?
La fragmentation dans Android se produit en raison du grand nombre de versions de système d'exploitation et de différents périphériques
utilisant le système d'exploitation Android
La fragmentation menace l’aptitude à exécuter un seul APK Android créé avec le SDK Android standard dans l’ensemble de l’écosystème Android, car de nombreuses versions ne prendront pas en charge toutes les
fonctionnalités
22-Qu'est-ce que la bibliothèque de support et pourquoi a-t-elle été introduite?
Pour gérer la fragmentation entre les différentes versions d'Android, la bibliothèque de support a été introduite pour la première fois en 2011
Le package de bibliothèque de support contient un ensemble de bibliothèques offrant une rétrocompatibilité avec les versions précédentes d’Android
La bibliothèque de support Android contient plusieurs packages de
bibliothèque pouvant être inclus dans votre application. Chacune de ces bibliothèques prend en charge une gamme spécifique de versions de plate-forme Android et un ensemble de fonctionnalités
23-Que contient le dossier de ressources?
Les ressources sont des contenus supplémentaires tels que des images ou des chaînes fournies avec l'application.
Animator
Color
Drawable
Layout
Raw
Values
Strings
Integers
Arrays
24- Caractéristiques des langages de programmation orientés objet?
Encapsulation
Polymorphism
Inheritence
Abstraction
25- Différence entre Overriding et Overloading ?
Le “Overriding” d’une méthode supprime son comportement d'origine et permet à un nouveau comportement d'être réécrit
Le “Overloading” d'une méthode survient lorsque le nom de deux méthodes différentes est identique, mais que les paramètres sont différents.
26- Différence entre classe abstraite et interface ?
Une interface est absolument abstraite et ne peut pas être
implémentée. elle définit le comportement qu'un objet doit exécuter, sans fournir de détails à ce sujet.
Une classe abstraite ne peut pas être instanciée, mais elle peut définir partiellement et totalement le comportement et la structure interne d'un objet.
Les interfaces sont toujours implémentées et les objets s'étendent toujours à partir de classes abstraites.
27- Peut-on remplacer (Override) les méthodes statiques en Java?
Non, car le remplacement est basé sur une liaison (binding) dynamique au moment de l'exécution, et les membres statiques sont liés (binded) au moment de la compilation.
28- Pourquoi est-il important d'utiliser HashCode() et Equals() en Java?
L'utilisation de hashcode () et d'equals () est cruciale lorsque nous
commençons à utiliser HashMaps. Une carte de hachage utilise les deux fonctions pour déterminer l'index des clés et détecter les doublons
28- Pourquoi est-il important d'utiliser HashCode() et Equals() en
Java?
29- Que fait l'interface Serialazable en Java?
La sérialisation est le processus de traduction d'un objet en informations binaires afin qu'il puisse être stocké dans une base de données ou
envoyé via une requête réseau sans perte d'informations
Pour rendre un objet sérialisable en Java, nous devons implémenter l'interface java.io.Serializable
30- Quel est l’avantage d’utiliser Retrofit?
Retrofit réduit le code en utilisant en interne la bibliothèque GSON qui facilite l'analyse automatique du fichier json
Retrofit est une bibliothèque de type sécurisée. Cela signifie - il vérifie si un type de données incorrect est affecté aux variables au moment de la compilation