23
Digital performance. LE NOUVEAU (OU 1ER ?) SYSTÈME DE BUILD POUR ANDROID GRADLE MEETUP SQLI 24/09/2015

Meet up sqli lyon 09-2015 - Gradle

  • Upload
    sqli

  • View
    271

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Meet up sqli lyon 09-2015 - Gradle

Digital performance.

LE NOUVEAU (OU 1ER ?) SYSTÈME DE BUILD POUR ANDROID

GRADLE

MEETUP SQLI – 24/09/2015

Page 2: Meet up sqli lyon 09-2015 - Gradle

Mickael FAUST Ingénieur développeur mobilité (Android + Hybride) [email protected]

A PROPOS DE MOI

Page 3: Meet up sqli lyon 09-2015 - Gradle

"Nous travaillons actuellement sur un nouveau système de build afin de remplacer ADT et

ANT"

Gradle est donc un moteur de build fonctionnant en et java permettant de construire

différents projets sur différents langages (JAVA, Scala, Groovy … )

ANDROID TOOL PROJECT SITE

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 3

Page 4: Meet up sqli lyon 09-2015 - Gradle

- Rendre facile la réutilisation de codes et ressourses

- Rendre facile la création de plusieurs „variantes“ de l‘application

- Faciliter la configuration du build

QUE DOIT FAIRE UN SYSTÈME DE BUILD

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 4

Page 5: Meet up sqli lyon 09-2015 - Gradle

GRADLE

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 5

● "Gradle est un système de build dit évolué. Il peut automatiser le

build, le test, la publication et le déploiment d‘un projet"

● "Gradle combine la puissance et la flexibilité de ANT avec les

conventions et la gestion des dépendances de MAVEN"

Page 6: Meet up sqli lyon 09-2015 - Gradle

UN NOUVEAU CONCEPT

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 6

Avant:

● Le pire: Plusieurs projets

android(code et ressources

copiés)

● Ok mais complexe: Librairie

Android + Plusieurs projets

android

Maintenant:

● Un seul projet Android

contenant: o Config Gradle

o Sources and ressources pour

toutes les variantes d‘un build

Page 7: Meet up sqli lyon 09-2015 - Gradle

Le product flavors est un terme définissant une version dites cutomisée de l‘application

Ce nouveau concept est concu pour nous aider quand les différences sont minimes

Qu‘en est il des librairies? "Bien sûr un flavor peut être une application bien différente, par exemple une librairie"

LE "PRODUCT FLAVORS "

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 7

Page 8: Meet up sqli lyon 09-2015 - Gradle

LE "PRODUCT FLAVORS " CUSTOMISATION

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 8

● minSdkVersion

● targetSdkVersion

● versionCode

● versionName

● package name (remplace les valeurs

du manifest)

● release signing info (keystore, key

alias, passwords,...).

● NDK ABI filter

● test info

o package name (optionnel, par

défaut <base>.test)

o InstrumentationTestRunner class

(optionnel)

● Un Product flavor peut aussi avoir

son propre code source et

ressources.

Page 9: Meet up sqli lyon 09-2015 - Gradle

“Permet de configurer comment une application est packagée par exemple pour un mode

debug ou release"

“Ce concept n’est pas fait pour créer différentes versions d’une application. Il est orthogonal

au Product Flavor"

LE "BUILD TYPES"

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 9

Page 10: Meet up sqli lyon 09-2015 - Gradle

LE "BUILD TYPES" CUSTOMISATION

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 10

● manifest debuggable flag

● native compilation debug flag

● proguard enabled + specific rules

● debug signing flag

● package name suffix (2)

Page 11: Meet up sqli lyon 09-2015 - Gradle

● Annoncé lors du Google I/O 2013

● Support entier de Gradle

ANDROID STUDIO

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 11

Page 12: Meet up sqli lyon 09-2015 - Gradle

● Exporter un projet eclipse

o Avoir son plugin ADT à jour

o File -> Export -> Android ->

-> Generate Gradle build files

-> Finish

● Des modifications manuelles peuvent êtres nécéssaires en fonction de la complexité du

projet

MIGRER VERS ANDROID STUDIO

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 12

Page 13: Meet up sqli lyon 09-2015 - Gradle

HELLO WORLD EXAMPLE

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 13

Page 14: Meet up sqli lyon 09-2015 - Gradle

PRODUCT FLAVORS EXAMPLE

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 14

Page 15: Meet up sqli lyon 09-2015 - Gradle

BUILD CONFIGS EXAMPLE

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 15

Page 16: Meet up sqli lyon 09-2015 - Gradle

ECLIPSE COMPATIBILITY

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 16

Page 17: Meet up sqli lyon 09-2015 - Gradle

- Utilisation du fichier settings.gradle

- Ajouter les libraires comme devant être compilées

MULTI PROJET(LIBRAIRIE)

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 17

Page 18: Meet up sqli lyon 09-2015 - Gradle

- Ajouter une dépendance provenant de mavenCentral (maintenant jcenter)

- Format AAR !!

DÉPENDANCES

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 18

Page 19: Meet up sqli lyon 09-2015 - Gradle

- A rajouter dans le .gitignore file:

ASTUCES

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 19

Page 20: Meet up sqli lyon 09-2015 - Gradle

● Priorité : AndroidManifest.xml -> build.gradle

o Si rien n‘est configuré dans le fichier de build gradle c‘est le manifest qui sera utilisé

o Sinon c‘est le fichier gradle qui prend le dessus

● Afin d‘ajouter vos librairies depuis le dossier libs/

ASTUCES

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 20

Page 21: Meet up sqli lyon 09-2015 - Gradle

● Modifier la version de gradle

o Se trouve ici

<android-sdk>\tools\templates\gradle\wrapper o Modifier cette ligne:

distributionUrl=http\://services.gradle.org/distributions/gradle-X.X-bin.zip

ASTUCES

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 21

Page 22: Meet up sqli lyon 09-2015 - Gradle

● Inclure du code précompilé natif (.so files)

o Zipper le fichier .so

o Remplacer l‘extension par .jar

o Le placer dans le dossier /libs

o Gradle va extraire le jar lors du packaging de l‘APK :)

ASTUCES

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 22

Page 23: Meet up sqli lyon 09-2015 - Gradle

MERCI

Mickael FAUST – 24/09/2015 © SQLI Enterprise – SQLI GROUP | 2015 23

Questions?