0% ont trouvé ce document utile (0 vote)
139 vues122 pages

Android1 Introduction

Le document présente un cours sur la programmation Android, abordant des sujets tels que la plateforme Android, Android Studio, l'émulateur, et la distribution d'applications. Il décrit également l'évolution des versions d'Android, l'arrivée du langage Kotlin, ainsi que l'architecture et les composants majeurs de la plateforme. Enfin, il détaille le kit de développement Android et les ressources nécessaires pour créer des applications.

Transféré par

amira adjmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
139 vues122 pages

Android1 Introduction

Le document présente un cours sur la programmation Android, abordant des sujets tels que la plateforme Android, Android Studio, l'émulateur, et la distribution d'applications. Il décrit également l'évolution des versions d'Android, l'arrivée du langage Kotlin, ainsi que l'architecture et les composants majeurs de la plateforme. Enfin, il détaille le kit de développement Android et les ressources nécessaires pour créer des applications.

Transféré par

amira adjmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PROGRAMMATION ANDROID

1 Ahcène Bounceur
Université de Bretagne Occidentale
2
La plate-forme mobile la plus
utilisée au monde

3
PLAN DU COURS

¢ Présentation de la plateforme Android


¢ Android Studio et les éléments d’un projet Android

¢ L’émulateur

¢ La distribution (APK)

¢ Le site

4
Chapitre 1

PARTIE 1

5 Plateforme Android
Débuter sur une nouvelle plate-forme
n'est jamais évident.

6
NOKIA 9000

1996

7
LA PLATEFORME MOBILE LA PLUS UTILISÉE AU MONDE

Montre (wear) Smartphone


Tablette
Auto TV

8
LA PLATEFORME MOBILE LA PLUS UTILISÉE AU MONDE

9
PLATEFORME ANDROID

¢ Points clés
— Innovante :
¢ elle intègre toutes les nouvelles technologies (écran tactile,
accéléromètre, GPS, appareil photo, etc.)
— Accessible :
¢ aucun matériel spécifique n'est nécessaire pour le
développement
¢ le langage de programmation utilisé est le Java (pas nouveau),

le C/C++ aussi.
— Ouverte :
¢ Licence Open Source

10
ANDROID VS IOS

11
D'OÙ VIENT L'IDÉE DE L'ANDROID ?

¢ L'arrivée de l'iPhone
— A bouleversée le paysage des systèmes d'exploitation
mobiles
— Ergonomie, écran tactile, simplicité, connexion internet,
applications
— Devenu un véritable standard pour les utilisateurs
¢ Lacunes des offres des constructeurs historiques

¢ Création de : Open Handset Alliance 12


D'OÙ VIENT L'IDÉE DE L'ANDROID ?

¢ Open Handset Alliance*


— Coalition : 87 acteurs
— Créée fin 2007
— Mettre au point et promouvoir un système d'exploitation
mobile concurrent
¢ Complet
¢ Ouvert Android
¢ Gratuit

Licence Apache

13

*www.openhandsetalliance.com
14
En 2016
ANDROID VS IOS

15
Ref : http://www.zdnet.fr/
En 2018
ANDROID VS IOS
Global mobile OS market share in sales to end users from 1st quarter 2009 to
2nd quarter 2018

88%

12%

16

Ref : https://www.statista.com
LES VERSIONS DE LA PLATEFORME

Version Évolutions
Android 1.0 Début de l'aventure Android
Septembre 2008

Android 1.1 - Beaucoup de corrections de bogues (alarme,


Février 2009 Gmail...)
- Amélioration des fonctionnalités MMS
- Introduction des applications payantes sur l'Android
Market
Android 1.5 dit - Nouveau clavier avec autocomplétion
Cupcake - Support Bluetooth
Avril 2009 - Enregistrement de vidéos
- Widgets et Live Folders
- Animations changées
Android 1.6 dit Android 2.0 dit
Donut Eclair
… 17
Septembre 2009 Octobre 2009
LES VERSIONS DE LA PLATEFORME

2014

18

3.x 2015
LES VERSIONS DE LA PLATEFORME

Lollipop (5.0)
KitKat (4.4)

Jelly Bean (4.3)

19
LES VERSIONS DE LA PLATEFORME

Le mode DOZE

Marshmallow
6
20
LES VERSIONS DE LA PLATEFORME

21
LES VERSIONS DE LA PLATEFORME

Notifications 22

Permissions
LES VERSIONS DE LA PLATEFORME

PIE 9 23
LES VERSIONS DE LA PLATEFORME

10

Q
QUICHE
QUIK
QUALITY STREET
QUAKER OATS
QUESITO
QUINDIM
QUEEN OF PUDDINGS
QOTTAB
24
La prochaine version s’appellera ? QUEIJADAS
L’ARRIVÉE DU KOTLIN

JetBrains : entreprise née en 2000


En 2012 : elle a reçu le prix JAX L'Entreprise la plus innovante Java
Les développeurs de IntelliJ

Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique
qui permet de compiler pour la machine virtuelle Java et JavaScript. Son développement
provient principalement d'une équipe de programmeurs chez JetBrains basée à Saint-
Pétersbourg en Russie (son nom vient de l'île de Kotline, près de St. Pétersbourg).

Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le second langage
de programmation supporté officiellement sur Android2 après Java.

25
L’ARRIVÉE DU KOTLIN
public class Personne { class Personne {
private String nom = "" ; var nom: String = ""
private Integer age = 0 ; var age: Int = 0

public Personne() {} constructor() {}

public Personne(String nom) { constructor(nom: String) {


this.nom = nom ; this.nom = nom ;
} }

public Personne(String nom) { constructor(nom: String, age: Int) : this(nom) {


this(nom); this.age = age
this.age = age;
} }

public void modifier(String nom, Integer age) { fun modifier(nom: String, age: Int) {
this.nom = nom ; this.nom = nom
this.age = age ; this.age = age
} }

public void afficher() { fun afficher() {


System.out.println("L'age de "+nom+" est "+ println("L'age de $nom est $age ans")
age+" ans");
} }
} }

Personne personne1 = new Personne(); var personne1 : Personne = Personne()


personne1.modifier("Jean", 24); personne1.modifier("Jean", 24)
personne1.afficher(); personne1.afficher() 26
ARCHITECTURE DE LA PLATEFORME

¢ Autour de Linux
— Android est conçue pour des appareils mobiles au sens
large : tablettes, ordinateurs portables, bornes interactives,
baladeurs …
¢ La plate-forme Android est composée de différentes
couches :
— un noyau Linux (multitâches)
— des bibliothèques graphiques, multimédias ;
— une machine virtuelle Java adaptée : la Dalvik Virtual
Machine ;
— un framework applicatif proposant des fonctionnalités de
gestion de fenêtres, de téléphonie, de gestion de contenu... ;
— des applications dont un navigateur web, une gestion des
27
contacts, un calendrier…
LES COMPOSANTS MAJEURS DE LA PLATE-FORME
ANDROID

28
LES COMPOSANTS
MAJEURS DE LA
PLATE-FORME
ANDROID

29

Embedded Android (opersys)


LE KIT DE DÉVELOPPEMENT ANDROID

¢ Le SDK Android est composé de plusieurs


éléments pour aider les développeurs à créer et à
maintenir des applications :
— des API (interfaces de programmation) ;
— des exemples de code ;
— de la documentation ;
— des outils – parmi lesquels un émulateur – permettant
de couvrir quasiment toutes les étapes du cycle de
développement d'une application.
¢ Le SDK Android est disponible gratuitement sur le
site de Google.
— http://developer.android.com 30
INSTALLATION
¢ Recommandation Eclipse
— Installer le JDK
¢ http://develooppers.sun.com/downloads
— Installer le kit de développement Android
¢ http://developer.android.com/sdk/index.html Eclipse
— Installer l'IDE Eclipse
¢ http://www.eclipse.org/downloads
— Installer le module ADT (Android Development Tools) dans
Eclipse
¢ Passer par Help -> Updates
¢ Ou Help -> Install new software (sous macOS) Android Studio

31
IDE (INTELLIJ IDEA) : ANDROID STUDIO

32
IDE (INTELLIJ IDEA) : ANDROID STUDIO

33
IDE (INTELLIJ IDEA) : ANDROID STUDIO

34
IDE (INTELLIJ IDEA) : ANDROID STUDIO

35
Menu
Projet
Ré-Exécution dans (version, SDK, compilation, etc.)
le même AVD
Configuration
(émulation, Ré-Exécution
exécution etc.) sans recompilation

Arrêter l’exécution

Recherche
Exécution Debug Synchronisation
Projet/Ressources
SDK Manager

Préférences
AVD Manager
Profiler 36

Make
Menu
Projet
Ré-Exécution dans (version, SDK, compilation, etc.)
le même AVD
Configuration
(émulation, Ré-Exécution
exécution etc.) sans recompilation

Arrêter l’exécution

Recherche
Exécution Debug Synchronisation
Projet/Ressources
SDK Manager

Préférences
AVD Manager
Profiler 37

Make
Menu
Projet
Ré-Exécution dans (version, SDK, compilation, etc.)
le même AVD
Configuration
(émulation, AVD en Ré-Exécution
exécution etc.) cours sans recompilation

Arrêter l’exécution

Recherche
Exécution Debug
Synchronisation
Projet/Ressources SDK Manager

Préférences
AVD Manager
Profiler 38

Make
CONFIGURATION D'UN APPAREIL VIRTUEL

¢ Le développement sous Android nécessite la


création d'un profil d'appareil afin de pouvoir lancer
des applications. Un profil d'appareil permet de
spécifier à l'émulateur la version du SDK que ce
dernier doit lancer ainsi que le type d'écran, la taille
de la carte SD, etc.

AVD Manager
39
CONFIGURATION D'UN APPAREIL VIRTUEL

40
CONFIGURATION D'UN APPAREIL VIRTUEL

Dupliquer l’émulateur

Réinitialiser l’émulateur
(supprimer les applis, les paramètres, …)

Peut redémarrer

Montrer les fichiers, de l’émulateur, sur le


disque
Voir la liste des configuration de
l’émulateur

Supprimer l’émulateur

Stop
41
CONFIGURATION D'UN APPAREIL VIRTUEL

42
CONFIGURATION D'UN APPAREIL VIRTUEL

43
CONFIGURATION D'UN APPAREIL VIRTUEL

44
Projet Android

45
Projet Android

46
Projet Android

47
Projet Android

48
Projet Android

49
Projet Android

50
Projet Android

51
Projet Android

Sur le disque

52
Projet Android

53
MainActivity

package fr.univ_brest.bounceur.projet_cours;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("ABCD", "Mon Message");
System.out.println("Bonjour");
}

public void maMethode() {


// TODO: 14/10/2016

}
} 54
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout

Projet Android xmlns:android="http://schemas.android.com/apk/res/android"


xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bounceur.servicelooper.Main2Activity">

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
tools:layout_editor_absoluteX="48dp"
tools:layout_editor_absoluteY="16dp" />
</android.support.constraint.ConstraintLayout>

55
Les ressources (Dossier res)

¢ Les ressources sont des fichiers externes – ne


contenant pas d'instruction – qui sont utilisés par le
code et liés à votre application au moment de sa
construction. Android offre un support d'un grand
nombre de fichiers ressources comme les fichiers
images JPEG et PNG, les fichiers XML, etc.

56
Les ressources (Dossier res)

¢ Le répertoire res est composé de différents sous-


répertoires :
— res/drawable : contient les ressources de type image
(PNG, JPEG et GIF) ;
— res/layout : contient les descriptions des interfaces
utilisateur ;
— res/values : contient les chaînes de caractères, les
dimensions, etc. ;
— res/xml : contient les fichiers XML supplémentaires
(préférences, etc.) ;
— res/menu : contient la description des menus ;
— res/raw : contient les ressources autres que celles
décrites ci-dessus qui seront empaquetées sans aucun
traitement. 57
LES RESSOURCES : types majeurs

Type de ressource Répertoire Description


associé

Valeurs simples res/values Fichiers XML convertis en différents types de ressources. Ce


répertoire contient des fichiers dont le nom reflète le type de
ressources contenues :1. arrays.xml définit des tableaux ; 2.
string.xml définit des chaînes de caractères ; etc.

Drawables res/drawable Fichiers .png, .jpeg qui sont convertis en bitmap, etc.

Layouts res/layout Fichiers XML convertis en mises en page d'écrans (gabarits).

Animations res/anim Fichiers XML convertis en objets animation.

Ressources XML res/xml Fichiers XML qui peuvent être lus et convertis à l'exécution par
la méthode resources.getXML

Ressources brutes res/raw Fichiers à ajouter directement à l'application compressée créée.


Ils ne seront pas convertis. 58
Les ressources (Dossier res)
Le ficher R.java

¢ Les ressources sont accessibles et utilisées depuis


le code grâce à la classe statique R. Cette classe
est automatiquement générée en fonction des
ressources présentes dans votre projet au moment
de la compilation et de la construction de
l'application.

Interfaces Graphiques
(XML)
Activités
(Java) R.java
Ressources
(images, audio, …)59
R (R.java): lien XML/Java

Project Files

60
LE FICHIER DE CONFIGURATION

¢ Chaque application Android nécessite un fichier de


configuration : AndroidManifest.xml
¢ Ce fichier est placé dans le répertoire de base du
projet, à sa racine.
¢ Il décrit le contexte de l'application, les activités, les
services, les récepteurs d'Intents (Broadcast
receivers), les fournisseurs de contenu et les
permissions.

61
AndroidManifest (Application)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.univ_brest.bounceur.projet_cours">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<activity
android:name=".MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

</manifest> 62
AndroidManifest (Application)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.univ_brest.bounceur.projet_cours">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.Design.NoActionBar">

<activity
android:name=".MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

</manifest> 63
Pour toutes les activités de l’application
AndroidManifest (Application)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.univ_brest.bounceur.projet_cours">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<activity
android:name=".MainActivity"
android:theme="@style/Theme.Design.NoActionBar"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
64
</manifest> Uniquement pour l’activité MainActivity
AndroidManifest (permissions)

¢ Certaines opérations sont réalisables à condition


d'en obtenir la permission. Ces actions sont de
plusieurs formes :
— opérations pouvant entraîner un surcoût (connexion,
échange de données, envoi de SMS par exemple) ;
— utilisation de données personnelles (accès à vos
contacts, à votre compte Google, exploitation de vos
informations linguistiques entre autres) ;
— accès au matériel du téléphone (prise de clichés,
écriture sur la carte mémoire, etc.).

65
AndroidManifest (permissions)

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

66
AndroidManifest (permissions)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.univ_brest.bounceur.projet_cours">

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application

android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

</manifest> 67
Les permissions (à partir de la version M)

Context
if (
ActivityCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS) !=
PackageManager.PERMISSION_GRANTED
) {

ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.SEND_SMS},
Activity 1
);
return;
}
68
build.gradle (Projet : version de gradle)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2’
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
69
}
build.gradle (Module : compilation)
apply plugin: 'com.android.application'

android {
compileSdkVersion 28
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.example.monappli"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-
rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2' 70
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
build.gradle (Module : compilation)
apply plugin: 'com.android.application'

android {
compileSdkVersion 28
buildToolsVersion "29.0.1"
Unique
defaultConfig {
applicationId "com.example.monappli"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-
rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
71
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
NEW …

72
NEW … (SUR LE DOSSIER DRAWABLE)
NOUVELLE IMAGE/VECTOR ASSET

Créer une
image de
grande taille

Pour créer :
• Une icône de notification
• Une icône de la barre d’action ou de
tabulation 73
• Icône pour l’application
NEW … (SUR LE DOSSIER RES)
NOUVEAU FICHIER RESSOURCE

74
NEW … (SUR LE DOSSIER RES)
NOUVEAU FICHIER RESSOURCE

75
Projet Android (structure du projet)

76
Projet Android (structure du projet)

77
Projet Android (structure du projet)

78
Projet Android (structure du projet)

79
Projet Android (structure du projet)

80
Projet Android (intégrer un JAR)

¢ Copier le Jar dans le dossier libs

81
Projet Android (intégrer un JAR)

¢ Aller dans Structure du Projet

82
Projet Android (intégrer un JAR)

¢ Aller dans Structure du Projet

83
Projet Android (intégrer un JAR)

¢ Aller dans Structure du Projet

84
PARTIE 2 : Exécution

85
L’ÉMULATEUR 1.5

86
L’ÉMULATEUR 2.2

87
L’ÉMULATEUR 3.0

88
L’ÉMULATEUR 4.0

89
L’ÉMULATEUR actuel

90
L’ÉMULATEUR actuel

91
L’ÉMULATEUR actuel

92
EXÉCUTION (Lancer un émulateur) : ligne de
commande

sdk/tools/emulator -avd nom_de_l’emulateur

sdk/tools/emulator -netdelay none -netspeed full -avd


nom_de_l’emulateur

93
EXÉCUTION (Lancer un émulateur) : directe

94
Activation du mode Développeur

Cliquez
plusieurs fois

95
Activation du mode Développeur

96
EXÉCUTION (Lancer un émulateur) : directe

97
EXÉCUTION DIRECTE SUR LE TÉLÉPHONE

98
LE FICHIER APK

¢ Toutes ces ressources sont placées, converties ou


non, dans un fichier de type APK qui constituera
le programme distribuable de votre application.

99
LE FICHIER APK

¢ La chaine de compilation Android :

javac dx

.java .class .dex

Ressources
100
LE FICHIER APK (signé)

101
LE FICHIER APK (signé)

102
Attention : ne pas oublier les mots de passe, surtout si l’application a
déjà été déployée.
LE FICHIER APK (signé)

103
MESSAGES

104
CONSOLE

Exemple : Redémarrer l’émulateur par ligne de commande :


adb -e reboot

105
ANDROID PROFILER

106
ANDROID PROFILER

107
ANDROID PROFILER

108
MONITEUR (LOGCAT) : MESSAGES

System.out.println("Bonjour");
Log.v("label", "Bonjour");
Log.d("label", "Bonjour");
Log.i("label", "Bonjour");
Log.w("label", "Bonjour");
Log.e("label", "Bonjour"); 109
Log.a("label", "Bonjour");
MONITEUR (LOGCAT) : APPAREIL CONCERNÉ

110
MONITEUR (LOGCAT) : LES PROCESSUS

111
RUN

112
TODO

//TODO
// Je dois terminer la fonction de rotation d'un point 113
// Penser à utiliser des floats
BUILD
Les erreurs liées à la construction du projet et à la compilation

114
BUILD
Les erreurs liées à la construction du projet et à la compilation

115
BUILD
Les erreurs liées à la construction du projet et à la compilation

116
VERSIONS D’ANDROID (CLASS BUILD)
public static class VERSION_CODES {
public static final int BASE = 1;
public static final int BASE_1_1 = 2;
public static final int CUPCAKE = 3;
public static final int CUR_DEVELOPMENT = 10000;
public static final int DONUT = 4;
public static final int ECLAIR = 5;
public static final int ECLAIR_0_1 = 6;
public static final int ECLAIR_MR1 = 7;
public static final int FROYO = 8;
public static final int GINGERBREAD = 9;
public static final int GINGERBREAD_MR1 = 10;
public static final int HONEYCOMB = 11;
public static final int HONEYCOMB_MR1 = 12;
public static final int HONEYCOMB_MR2 = 13;
public static final int ICE_CREAM_SANDWICH = 14;
public static final int ICE_CREAM_SANDWICH_MR1 = 15;
public static final int JELLY_BEAN = 16;
public static final int JELLY_BEAN_MR1 = 17;
public static final int JELLY_BEAN_MR2 = 18;
public static final int KITKAT = 19;
public static final int KITKAT_WATCH = 20;
public static final int LOLLIPOP = 21;
public static final int LOLLIPOP_MR1 = 22;
public static final int M = 23;
public static final int N = 24;
public static final int N_MR1 = 25;
public static final int O = 26; Build.VERSION_CODES.M
public VERSION_CODES() { 117
throw new RuntimeException("Stub!");
}
}
NOUVELLES ANNOTATIONS

@RequiresApi

@Override
@RequiresApi(api = Build.VERSION_CODES.N)
public void methode() {

...

118
NOUVELLES ANNOTATIONS

@RequiresApi

@Override
public void methode() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {


...
}
else {
...
}

} 119
www.android.com

120
www.android.com

121
122

Vous aimerez peut-être aussi