2. 2
Sommaire
Historique d’Android Studio
Astuces d’utilisation
— Les versions stables
— Android Studio 2.0
— DexInProcess
— Des plugins pratiques
— Démos
Les nouveautés d’Android
Studio 2.0
— Nouvel émulateur
— Profiler GPU
— IntelliJ Idea 15
— Autres améliorations
— Instant Run
Passer à Android Studio 2.0
— Comment convertir un projet
— Démo
5. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Historique d’Android Studio
5
v0.1
Mai 2013
Première
version
Présenté à la
Google I/O 2013
v1.0
Décembre 2014
Version
stable
Android Studio devient
l’IDE officiel.
Le plugin Eclipse est
déprécié
v1.2
Avril 2015
Memory & CPU monitors,
IntelliJ 14.1
v1.1
Février 2015
Template pour
Android Wear, icônes par
défaut dans mipmap
6. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Historique d’Android Studio
6
v1.3
Juillet 2015
Support du data binding,
C/C++, séparation des
ressources privées /
publiques…
v1.4
Septembre 2015
Vector Asset Studio,
moniteurs GPU & réseau
v1.5
Novembre 2015
Amélioration des outils
d’analyse mémoire
v2.0
Non annoncé
Nouvelle
version majeure
Instant Run,
nouvel émulateur…
7. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
26
Historique des Previews d’Android Studio 2.0
7
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 12 13 4 15
16 17 18 19 20 21 22
24 25 26 27 28 29
L M M J V S D
30 1 2 3 4 5 6
Novembre
Première preview
11
30 1 2 3 5 6
7 8 9 11 12 13
14 15 16 18 19 20
22 23 24 25 26 27
28 29 30 31 1 2 3
L M M J V S D
4 5 6 7 8 9 10
Décembre
Environ une preview par semaine
4
21
28 29 30 31 1 2 3
4 5 6 7 9 10
11 12 13 15 16 17
18 19 21 22 24
25 27 30
L M M J V S D
2 3 4 5 6 7 8
Janvier
8
20
Le rythme s’accélère à la fin
janvier
23
10
17
31
14
23
28 29
9. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
9
Instant Run
Nouvel
émulateur
Profiler
GPU
Adb plus
rapide
IntelliJ Idea
15.0.*
Nombreuses
améliorations
Quelles nouveautés pour Android Studio 2.0 ?
10. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
10
Android Studio 2.0 : Nouvel émulateur
Etat du réseau
Voix & data séparés
Support des empreintes
Android 6.0+
Drag’n’drop de fichier
Fichier (image, musique…) ou application
Redimensionnable
En gardant toutefois le ratio du terminal
11. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
11
Android Studio 2.0 : Nouvel émulateur (paramètres)
GPS
Saisie des coordonnées GPS au
format latitude / longitude
Saisie de l’altitude
Possibilité de donner en entrée un
fichier GPX ou KML afin de simuler le
suivi d’une route
12. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
12
Android Studio 2.0 : Nouvel émulateur vs GenyMotion
A faire à la main
(screenrecord), tout comme
la récupération du fichier
Capture vidéo
Utiliser son téléphone
comme surface tactile
Remote Control
Consommation CPU
supérieure pour
l’émulateur de base
CPU
13. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
13
Android Studio 2.0 : Profiler GPU
GPU Profiler
Télécharger les GPU Debugging Tools
Inclure la bibliothèque gapii dans
le code natif & dans le Java
14. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
14
Android Studio 2.0 : IntelliJ Idea 15.0.*
Amélioration des testsFind in path avec preview
15. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
15
Android Studio 2.0 : Autres Améliorations
Autocompletion pour
le DataBinding
Lint : Switch avec
constantes manquantes
16. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
16
Android Studio 2.0 : Autres Améliorations
Shrinker
Suppression des méthodes inutiles
Plus rapide que Proguard, car se
limite à enlever les méthodes
(pas d’obfuscation par exemple)
A utiliser en debug uniquement
Encore instable aujourd’hui
(Crashlytics non compatible)
buildTypes {
debug {
signingConfig signingConfigs.release
useProguard false
minifyEnabled true
}
release {
signingConfig signingConfigs.release
shrinkResources true
minifyEnabled true
proguardFiles
getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
17. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
17
Android Studio 2.0 : Instant Run
Instant Run permet de ne plus installer à chaque build une application en entier, mais
d’envoyer uniquement les différences.
Les modifications peuvent être envoyées :
- sans avoir besoin de relancer l’application (hotswap)
- en relançant l’Activity (warmswap)
- en redémarrant l’application (coldswap)
18. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
18
Android Studio 2.0 : Instant Run
Hotswap pour :
- Changement d’implémentation d’une méthode (statique ou non)
- Ajouter / Suppression de classe
Warmswap pour :
- Modification d’une ressource (strings.xml)
19. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
19
Android Studio 2.0 : Instant Run
Coldswap pour :
- Ajouter / Modifier / Supprimer une annotation
- Ajouter / Modifier / Supprimer un attribut de classe
- Ajouter / Modifier / Supprimer une méthode statique
- Modification de classe parente
- …
Rebuild pour :
- Modifier l’Android Manifest
- Modifier une des ressources utilisées dans l’Android Manifest
20. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
20
Android Studio 2.0 : Instant Run
Application
Serveur
Classes
Android StudioGradle
21. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
21
Android Studio 2.0 : Instant Run
User
public class User {
private String name;
public String getName() {
return “toto”;
}
}
22. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
22
Android Studio 2.0 : Instant Run
User$override
public class User$override {
static String getName(User user) {
// nouveau code
}
}
User
public class User {
private String name;
public String getName() {
return User$override.getName(this);
}
}
24. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Android Studio 2.0 : Quelques conseils
24
Avoir une instance pour le
développement quotidien et
une autre pour les previews
Nouvelle Instance
Ne pas importer la
configuration d’une version
précédente d’Android Studio
(bugs en tous genres)
Partir de zéro
De nombreux plugins ne
fonctionnent plus avec
Android Studio 2.0
Plugins NOK
25. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Android Studio 2.0 : Convertir votre projet
25
gradle/wrapper/
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta2'
}
}
allprojects {
repositories {
jcenter()
}
}
build.gradle
(projet)
26. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Android Studio 2.0 : Attention au gradle-experimental
26
28. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S A S T U C E S
Android Studio 2.0 : Faut-il l’utiliser ?
28
Avoir une instance pour le
développement quotidien et
une autre pour les previews
Builds plus rapides
Bien que les performances
soient au rendez-vous, les
résultats sont parfois
imprévisibles
Instant Run
S’agissant de versions bêtas
ou previews, il est encore
déconseillé de passer à
Android Studio 2.0
Trop tôt
30. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S C O N S E I L S
DexInProcess
30
DexInProcess
Gradle 2.4+
Plugin 2.0.0+
Build Tools 23.0.2+
android {
dexOptions {
dexInProcess = true
}
}
Il faut penser d’accroître la mémoire allouée à la JVM
(gradle.properties) :
org.gradle.jvmargs=-Xmx4g
31. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S C O N S E I L S
Mesurer les temps de build
31
Build Time
Tracker
Mesure les temps de build
Statistiques quotidiennes et totales
32. DevFest Paris 2016 Quoi de neuf pour Android Studio ?
H I S TO R I Q U E N O U V E A U T E S D E M O Q U E L Q U E S C O N S E I L S
Live templates
32
Idea Live
Templates