Android studio 2.0

33
Android Studio Quoi de neuf ?

Transcript of Android studio 2.0

Page 1: Android studio 2.0

Android StudioQuoi de neuf ?

Page 2: Android studio 2.0

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

Page 3: Android studio 2.0

Edouard MarquezDéveloppeur Android

ORIGINAL-CARDBOARD

3

@g123k

+EdouardMarquez

Page 4: Android studio 2.0

Bref historiqueRappel des dates importantes

Page 5: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 6: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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…

Page 7: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 8: Android studio 2.0

Les nouveautésC’est le moment où l’on va parler d’Instant Run

Page 9: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S9

Instant RunNouvel émulateur

Profiler GPU

Adb plus rapide

IntelliJ Idea 15.0.*

Nombreuses améliorations

Quelles nouveautés pour Android Studio 2.0 ?

Page 10: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S10

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

Page 11: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S11

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

Page 12: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S12

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

Page 13: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S13

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

Page 14: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S14

Android Studio 2.0 : IntelliJ Idea 15.0.*

Amélioration des testsFind in path avec preview

Page 15: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S15

Android Studio 2.0 : Autres Améliorations

Autocompletion pour le DataBinding

Lint : Switch avec constantes manquantes

Page 16: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S16

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' }}

Page 17: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S17

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)

Page 18: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S18

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)

Page 19: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S19

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

Page 20: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S20

Android Studio 2.0 : Instant Run

Application

Serveur

Classes

Android StudioGradle

Page 21: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S21

Android Studio 2.0 : Instant Run

User

public class User {

private String name;

public String getName() { return “toto”;

}

}

Page 22: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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 S22

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);

}

}

Page 23: Android studio 2.0

Passer à

Android Studio 2.0

Page 24: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 25: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=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)

Page 26: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 27: Android studio 2.0

Démo

27

Page 28: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 29: Android studio 2.0

Trucs & Astuces

Page 30: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 31: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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

Page 32: Android studio 2.0

DevFest Paris 2016 Quoi de neuf pour Android Studio ?

H I S T O 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