SlideShare une entreprise Scribd logo
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 6 –
Chapitre 5 : Structure d’un projet Android (1/2)
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 6 –
Chapitre 5 : Structure d’un projet Android (1/2)
Université Constantine 2 3
Prérequis
Maîtrise de Android Studio
Objectifs du cours
Savoir organiser un projet Android
Comprendre le cycle de vie d’une activité
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Application Name : LearnApp
Compagny Domain : iam.sci
Package: sci.iam.learnapp
Project location : D:androidprojects
Création d’un nouveau projet
© Dr. Chaouche A.-C.
Université Constantine 2 5
Structure d’un projet
© Dr. Chaouche A.-C.
Fichiers java
Ressources organisées
(texte, …)
Manifest
Gradle
Université Constantine 2 6
Décrit les composants de l’application
Définit le point d’entrée potentiel de l’application (activity main)
Quatre types de composants
Activités (activities)
Services (services)
Fournisseurs de contenu (content providers)
Récepteurs de diffusion (broadcast receivers)
Décrit les permissions requises par l’application
Accès a l’Internet, lecture-écriture dans la liste de contacts,
Géo-localisation, . . .
Décrit les besoins matériels et logiciels de l’application
Appareil photo, bluetooth, ecran multi-touch, . . .
"AndroidManifest.xml" (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 7
Fichier XML obligatoire, à la racine du projet
<manifest> et <application> sont obligatoires
category.LAUNCHER : point d’entrée de l'application
"AndroidManifest.xml" (2/2)
© Dr. Chaouche A.-C.
/manifests/AndroidManifest.xml
<manifest>
<application>
<activity android:name=".LoginActivity"
android:label="@string/app_name">
<intentfilter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intentfilter>
</activity>
</application>
</manifest>
Université Constantine 2 8
Une activité = un écran graphique
définie dans ./java/
souvent c’est un cas d'utilisation UML
contrôle les éléments définis par du code Java
Hérite de
android.app.Activity ou
android.support.v7.app.AppCompatActivity;
Interface graphique (IHM)
associé à une vue (./res/layout/)
certains éléments (texte, dimension, couleur) sont définis dans ./res/values
Activité
© Dr. Chaouche A.-C.
Université Constantine 2 9
Activité
Cycle de vie (1/2)
© Dr. Chaouche A.-C.
Méthodes callback :
void onCreate(...)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
Le changement d’état d’une activité
provoque le déclenchement de la
méthode callback correspondante.
Université Constantine 2 10
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
LearnApp
Cycle de vie de
Activity 1
Université Constantine 2 11
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
This is Activity 1
Cycle de vie de
Activity 15
Université Constantine 2 12
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
5
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 13
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
2
3
1
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 14
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
23
4
5
1
This is Activity 2
Cycle de vie de
Activity 1
Université Constantine 2 15
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 16
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
34
5
6
2
LearnApp
Cycle de vie de
Activity 1
Université Constantine 2 17
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
5
7
8
9
10
6
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 18
This is Activity 1
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
3
5
6
4
LearnApp
2
Cycle de vie de
Activity 1
Partage d’écran (supporté depuis Android 7.0)
Université Constantine 2 19
Pour chaque méthode callback, appeler la méthode sur super
Exemple : dans onCreate(), appel à super.onCreate()
Le Bundle mémorise l'état de l’activité lorsqu'elle passe en arrière-plan
Activité
Exemple
© Dr. Chaouche A.-C.
/java/LoginActivity.java
import android.app.Activity;
public class LoginActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
Université Constantine 2 20
setContentView(int layout) associe à l'activité un Layout référencé
par layout
Activité
Association d’un layout
© Dr. Chaouche A.-C.
/java/LoginActivity.java
public class LoginActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
...
}
...
}
Université Constantine 2 21
Types de ressources :
Layouts et menus
Icones et images
Valeurs (values) :
strings, attrs,
styles, colors,
dimens,
…
Ressources "./res/"
© Dr. Chaouche A.-C.
Interfaces
graphiques
Images
Valeurs
constantes
Icones
Université Constantine 2 22
Description
Déclarative (Fichiers XML dans le répertoire ./res/layout/)
Ou directement dans le code java
Widget
Composant élémentaire
Instance de la classe View
Sensible aux événements
Exemples : Button, EditText, TextView, CheckBox
Layout
Conteneur de vues
Instance de la classe ViewGroup
Exemples : LinearLayout, TableLayout,
RelativeLayout, FrameLayout,
ScrollView
Ressources : Layouts
© Dr. Chaouche A.-C.
Université Constantine 2 23
Ressources : Layouts
Types de ViewGroup (1/2)
© Dr. Chaouche A.-C.
LinearLayout RelativeLayout WebView
GridLayout FrameLayout AbsoluteLayout
Université Constantine 2 24
Ressources : Layouts
Types de ViewGroup (2/2)
© Dr. Chaouche A.-C.
DrawerLayout CoordinatorLayout SwipeRefreshLayout
SlidingPaneLayout TableLayout TabLayout-ViewPager
Université Constantine 2 25
Ressources : Layouts
Exemple d'un layout
© Dr. Chaouche A.-C.
/res/layout/activity_login.xml (Text)
<?xml version="1.0" encoding="utf8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/...
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Constantine 2" />
</LinearLayout>
Université Constantine 2 26
Ressources : Layouts
Attributs de LinearLayout
© Dr. Chaouche A.-C.
orientation : vertical | horizontal
layout_width et layout_height :
Valeur constante : en dp ou px
wrap_content : place minimum
match_parent : taille du parent
gravity : top, bottom, left, right, center, …
padding et margin : en dp ou px
Université Constantine 2 27
Exploitation dans res (fichiers XML : layout, styles, …) : @string/app_name
Exploitation dans java (code source) : R.string.app_name
Accès à la ressource : getResources().getString(R.string.app_name);
Ressources : Strings (1/2)
© Dr. Chaouche A.-C.
/res/values/strings.xml
<?xml version="1.0" encoding="utf8"?>
<resources>
<string name="app_name"> LearnApp </string>
...
</resources>
Université Constantine 2 28
/java//res/
Ressources : Strings (2/2)
© Dr. Chaouche A.-C.
R.string.name
layout/
Values/
strings.xml
activity_login.xml
...
LoginActivity.java
...
@string/name
sci.iam.learnapp/
Université Constantine 2 29
Chaque élément défini dans le répertoire ./res/ impacte le fichier
R.java
référence les ressources par des constantes de type entier sur 32bits,
Exemple : 0x1A34F678
chemin : "appbuildgeneratedsourcerdebug[package]R.java"
généré automatiquement
caché par Android studio
à ne pas modifier
2 types de ressources via R.java
user-defined : (java) R.color.vert
(res) @color/vert
system-defined : (java) android.R.color.holo_green_dark
(res) @android:color/holo_green_dark
Le fichier "R.java"
© Dr. Chaouche A.-C.
Université Constantine 2 30
@+id permet d’ajouter un nouveau nom de ressource à la classe R
Identification d’une vue (1/2) – Layout
© Dr. Chaouche A.-C.
/res/layout/activity_login.xml (Text)
<?xml version="1.0" encoding="utf8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:id="@+id/msgTV"/>
</LinearLayout>
Université Constantine 2 31
findViewById(int id) renvoie un objet View référencé par id
Identification d’une vue (2/2) – Activity
© Dr. Chaouche A.-C.
/java/LoginActivity.java
public class LoginActivity extends Activity {
TextView msgTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
...
msgTextView = (TextView) findViewById(R.id.msgTV);
msgTextView.setText("Hello World!");
}
}
Université Constantine 2 32
Ressources : Drawables
Attributs de ImageView
© Dr. Chaouche A.-C.
android:src : @drawable/my_image
android:scaleType :
Il faut copier l'image my_image.png dans "res/drawable"
Université Constantine 2 33
Créer une activité LoginActivity
Une ImageView pour afficher une icone
Un EditText pour introduire l’identifiant
Avec son TextView
Un EditText pour introduire le mot de passe
Avec son TextView
Un Button pour vérifier l’authentification
Vérifier si les champs sont valides
TP1a : Création d’une vue d’authentification
© Dr. Chaouche A.-C.
Université Constantine 2 34
Cycle de vie d’une activité :
https://openclassrooms.com/courses/creez-des-applications-pour-android/preambule-
quelques-concepts-avances#r-2032203
https://www.youtube.com/watch?v=UJN3AL4tiqw
Types de strings :
http://mathias-seguy.developpez.com/tutoriels/android/utiliser-ressources#LII-A
Echelles d’une image :
https://robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 35
Android Developer, «The Activity Lifecycle,». Lien : https://developer.
android.com/guide/components/activities/activity-lifecycle.html.
Android Developer, «References - Android Plateform API 26 : Class View,». Lien :
https://developer.android.com/reference/android/view/View.html.
Android Developer, «References - Android Plateform API 26 : Class ViewGroup,».
Lien : https://developer.android.com/reference/android/ view/ViewGroup.html.
V. Tallapudi, «Android Layouts and Types of Android Layouts,» 2014.. Lien :
https://www.coderefer.com/android-layouts-types-android-layouts/.
Android Developer, «References - Android Plateform API 26 : R,». Lien :
https://developer.android.com/reference/android/R.html.
Android Developer, «References - Android Plateform API 26 : ImageView,». Lien :
developer.android.com/reference/android/widget/ImageView.html.
A. Hill, «Android ImageView ScaleType: A Visual Guide,» 25 Août 2016. Lien :
robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide.
Références
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
Lilia Sfaxi
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Applications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogueApplications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogue
Ahmed-Chawki Chaouche
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
ENSET, Université Hassan II Casablanca
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
Lilia Sfaxi
 
projet de conception.pptx
projet de conception.pptxprojet de conception.pptx
projet de conception.pptx
hechmibenmabrouk2
 
Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services Web
Ahmed-Chawki Chaouche
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.
 
application desktop pour la gestion d'une auto-ecole
application desktop pour la gestion d'une auto-ecoleapplication desktop pour la gestion d'une auto-ecole
application desktop pour la gestion d'une auto-ecole
amat samiâ boualil
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
Soukaina Boujadi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
 
Cours architecture
Cours architectureCours architecture
Cours architecture
Abdelaziz Elbaze
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
Heithem Abbes
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Présentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobilePrésentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobile
Nader Somrani
 

Tendances (20)

Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Applications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogueApplications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogue
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
projet de conception.pptx
projet de conception.pptxprojet de conception.pptx
projet de conception.pptx
 
Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services Web
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
application desktop pour la gestion d'une auto-ecole
application desktop pour la gestion d'une auto-ecoleapplication desktop pour la gestion d'une auto-ecole
application desktop pour la gestion d'une auto-ecole
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Présentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobilePrésentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobile
 

Similaire à Applications Android - cours 6 : Structure d’un projet Android

Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage Java
Ahmed-Chawki Chaouche
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
Ahmed-Chawki Chaouche
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
Ahmed-Chawki Chaouche
 
Applications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en JavaApplications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en Java
Ahmed-Chawki Chaouche
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
Yoann Gotthilf
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
Yann Caron
 
Alphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentauxAlphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentaux
Alphorm
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
ENSET, Université Hassan II Casablanca
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
olfaharrabi2
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
feriel53
 
Android introvf
Android introvfAndroid introvf
Android introvf
Anne-Marie Pinna-Dery
 
Android2017 cours2
Android2017 cours2Android2017 cours2
Android2017 cours2
Anne-Marie Pinna-Dery
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMI
Yann Caron
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
5pidou
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbreact (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
zineblahib2
 
Activity
ActivityActivity
Activitydido
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM bases
Yann Caron
 

Similaire à Applications Android - cours 6 : Structure d’un projet Android (20)

Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage Java
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
 
Applications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en JavaApplications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en Java
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
 
Alphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentauxAlphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentaux
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Android2017 cours2
Android2017 cours2Android2017 cours2
Android2017 cours2
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMI
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbreact (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Activity
ActivityActivity
Activity
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM bases
 

Dernier

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 

Dernier (12)

Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 

Applications Android - cours 6 : Structure d’un projet Android

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 6 – Chapitre 5 : Structure d’un projet Android (1/2) Développement d’applications mobiles 2018/2019. Semestre 1
  • 2. Université Constantine 2 Etudiants concernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 6 – Chapitre 5 : Structure d’un projet Android (1/2)
  • 3. Université Constantine 2 3 Prérequis Maîtrise de Android Studio Objectifs du cours Savoir organiser un projet Android Comprendre le cycle de vie d’une activité Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Application Name : LearnApp Compagny Domain : iam.sci Package: sci.iam.learnapp Project location : D:androidprojects Création d’un nouveau projet © Dr. Chaouche A.-C.
  • 5. Université Constantine 2 5 Structure d’un projet © Dr. Chaouche A.-C. Fichiers java Ressources organisées (texte, …) Manifest Gradle
  • 6. Université Constantine 2 6 Décrit les composants de l’application Définit le point d’entrée potentiel de l’application (activity main) Quatre types de composants Activités (activities) Services (services) Fournisseurs de contenu (content providers) Récepteurs de diffusion (broadcast receivers) Décrit les permissions requises par l’application Accès a l’Internet, lecture-écriture dans la liste de contacts, Géo-localisation, . . . Décrit les besoins matériels et logiciels de l’application Appareil photo, bluetooth, ecran multi-touch, . . . "AndroidManifest.xml" (1/2) © Dr. Chaouche A.-C.
  • 7. Université Constantine 2 7 Fichier XML obligatoire, à la racine du projet <manifest> et <application> sont obligatoires category.LAUNCHER : point d’entrée de l'application "AndroidManifest.xml" (2/2) © Dr. Chaouche A.-C. /manifests/AndroidManifest.xml <manifest> <application> <activity android:name=".LoginActivity" android:label="@string/app_name"> <intentfilter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intentfilter> </activity> </application> </manifest>
  • 8. Université Constantine 2 8 Une activité = un écran graphique définie dans ./java/ souvent c’est un cas d'utilisation UML contrôle les éléments définis par du code Java Hérite de android.app.Activity ou android.support.v7.app.AppCompatActivity; Interface graphique (IHM) associé à une vue (./res/layout/) certains éléments (texte, dimension, couleur) sont définis dans ./res/values Activité © Dr. Chaouche A.-C.
  • 9. Université Constantine 2 9 Activité Cycle de vie (1/2) © Dr. Chaouche A.-C. Méthodes callback : void onCreate(...) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy() Le changement d’état d’une activité provoque le déclenchement de la méthode callback correspondante.
  • 10. Université Constantine 2 10 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. LearnApp Cycle de vie de Activity 1
  • 11. Université Constantine 2 11 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 This is Activity 1 Cycle de vie de Activity 15
  • 12. Université Constantine 2 12 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 5 This is Activity 1 Cycle de vie de Activity 1
  • 13. Université Constantine 2 13 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 2 3 1 This is Activity 1 Cycle de vie de Activity 1
  • 14. Université Constantine 2 14 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 23 4 5 1 This is Activity 2 Cycle de vie de Activity 1
  • 15. Université Constantine 2 15 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 This is Activity 1 Cycle de vie de Activity 1
  • 16. Université Constantine 2 16 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 34 5 6 2 LearnApp Cycle de vie de Activity 1
  • 17. Université Constantine 2 17 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 5 7 8 9 10 6 This is Activity 1 Cycle de vie de Activity 1
  • 18. Université Constantine 2 18 This is Activity 1 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 3 5 6 4 LearnApp 2 Cycle de vie de Activity 1 Partage d’écran (supporté depuis Android 7.0)
  • 19. Université Constantine 2 19 Pour chaque méthode callback, appeler la méthode sur super Exemple : dans onCreate(), appel à super.onCreate() Le Bundle mémorise l'état de l’activité lorsqu'elle passe en arrière-plan Activité Exemple © Dr. Chaouche A.-C. /java/LoginActivity.java import android.app.Activity; public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... } @Override protected void onDestroy() { super.onDestroy(); } }
  • 20. Université Constantine 2 20 setContentView(int layout) associe à l'activité un Layout référencé par layout Activité Association d’un layout © Dr. Chaouche A.-C. /java/LoginActivity.java public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ... } ... }
  • 21. Université Constantine 2 21 Types de ressources : Layouts et menus Icones et images Valeurs (values) : strings, attrs, styles, colors, dimens, … Ressources "./res/" © Dr. Chaouche A.-C. Interfaces graphiques Images Valeurs constantes Icones
  • 22. Université Constantine 2 22 Description Déclarative (Fichiers XML dans le répertoire ./res/layout/) Ou directement dans le code java Widget Composant élémentaire Instance de la classe View Sensible aux événements Exemples : Button, EditText, TextView, CheckBox Layout Conteneur de vues Instance de la classe ViewGroup Exemples : LinearLayout, TableLayout, RelativeLayout, FrameLayout, ScrollView Ressources : Layouts © Dr. Chaouche A.-C.
  • 23. Université Constantine 2 23 Ressources : Layouts Types de ViewGroup (1/2) © Dr. Chaouche A.-C. LinearLayout RelativeLayout WebView GridLayout FrameLayout AbsoluteLayout
  • 24. Université Constantine 2 24 Ressources : Layouts Types de ViewGroup (2/2) © Dr. Chaouche A.-C. DrawerLayout CoordinatorLayout SwipeRefreshLayout SlidingPaneLayout TableLayout TabLayout-ViewPager
  • 25. Université Constantine 2 25 Ressources : Layouts Exemple d'un layout © Dr. Chaouche A.-C. /res/layout/activity_login.xml (Text) <?xml version="1.0" encoding="utf8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/... android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Constantine 2" /> </LinearLayout>
  • 26. Université Constantine 2 26 Ressources : Layouts Attributs de LinearLayout © Dr. Chaouche A.-C. orientation : vertical | horizontal layout_width et layout_height : Valeur constante : en dp ou px wrap_content : place minimum match_parent : taille du parent gravity : top, bottom, left, right, center, … padding et margin : en dp ou px
  • 27. Université Constantine 2 27 Exploitation dans res (fichiers XML : layout, styles, …) : @string/app_name Exploitation dans java (code source) : R.string.app_name Accès à la ressource : getResources().getString(R.string.app_name); Ressources : Strings (1/2) © Dr. Chaouche A.-C. /res/values/strings.xml <?xml version="1.0" encoding="utf8"?> <resources> <string name="app_name"> LearnApp </string> ... </resources>
  • 28. Université Constantine 2 28 /java//res/ Ressources : Strings (2/2) © Dr. Chaouche A.-C. R.string.name layout/ Values/ strings.xml activity_login.xml ... LoginActivity.java ... @string/name sci.iam.learnapp/
  • 29. Université Constantine 2 29 Chaque élément défini dans le répertoire ./res/ impacte le fichier R.java référence les ressources par des constantes de type entier sur 32bits, Exemple : 0x1A34F678 chemin : "appbuildgeneratedsourcerdebug[package]R.java" généré automatiquement caché par Android studio à ne pas modifier 2 types de ressources via R.java user-defined : (java) R.color.vert (res) @color/vert system-defined : (java) android.R.color.holo_green_dark (res) @android:color/holo_green_dark Le fichier "R.java" © Dr. Chaouche A.-C.
  • 30. Université Constantine 2 30 @+id permet d’ajouter un nouveau nom de ressource à la classe R Identification d’une vue (1/2) – Layout © Dr. Chaouche A.-C. /res/layout/activity_login.xml (Text) <?xml version="1.0" encoding="utf8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" android:id="@+id/msgTV"/> </LinearLayout>
  • 31. Université Constantine 2 31 findViewById(int id) renvoie un objet View référencé par id Identification d’une vue (2/2) – Activity © Dr. Chaouche A.-C. /java/LoginActivity.java public class LoginActivity extends Activity { TextView msgTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ... msgTextView = (TextView) findViewById(R.id.msgTV); msgTextView.setText("Hello World!"); } }
  • 32. Université Constantine 2 32 Ressources : Drawables Attributs de ImageView © Dr. Chaouche A.-C. android:src : @drawable/my_image android:scaleType : Il faut copier l'image my_image.png dans "res/drawable"
  • 33. Université Constantine 2 33 Créer une activité LoginActivity Une ImageView pour afficher une icone Un EditText pour introduire l’identifiant Avec son TextView Un EditText pour introduire le mot de passe Avec son TextView Un Button pour vérifier l’authentification Vérifier si les champs sont valides TP1a : Création d’une vue d’authentification © Dr. Chaouche A.-C.
  • 34. Université Constantine 2 34 Cycle de vie d’une activité : https://openclassrooms.com/courses/creez-des-applications-pour-android/preambule- quelques-concepts-avances#r-2032203 https://www.youtube.com/watch?v=UJN3AL4tiqw Types de strings : http://mathias-seguy.developpez.com/tutoriels/android/utiliser-ressources#LII-A Echelles d’une image : https://robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide Quelques liens utiles © Dr. Chaouche A.-C.
  • 35. Université Constantine 2 35 Android Developer, «The Activity Lifecycle,». Lien : https://developer. android.com/guide/components/activities/activity-lifecycle.html. Android Developer, «References - Android Plateform API 26 : Class View,». Lien : https://developer.android.com/reference/android/view/View.html. Android Developer, «References - Android Plateform API 26 : Class ViewGroup,». Lien : https://developer.android.com/reference/android/ view/ViewGroup.html. V. Tallapudi, «Android Layouts and Types of Android Layouts,» 2014.. Lien : https://www.coderefer.com/android-layouts-types-android-layouts/. Android Developer, «References - Android Plateform API 26 : R,». Lien : https://developer.android.com/reference/android/R.html. Android Developer, «References - Android Plateform API 26 : ImageView,». Lien : developer.android.com/reference/android/widget/ImageView.html. A. Hill, «Android ImageView ScaleType: A Visual Guide,» 25 Août 2016. Lien : robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide. Références © Dr. Chaouche A.-C.