Android studio 2.0

Post on 15-Apr-2017

33.790 views 1 download

Transcript of Android studio 2.0

Android StudioQuoi de neuf ?

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

Edouard MarquezDéveloppeur Android

ORIGINAL-CARDBOARD

3

@g123k

+EdouardMarquez

Bref historiqueRappel des dates importantes

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

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…

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

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

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 ?

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

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

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

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

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

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

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

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)

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)

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

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

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

}

}

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

}

}

Passer à

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

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)

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

Démo

27

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

Trucs & Astuces

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

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

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