Meet up sqli lyon 09-2015 - Gradle

Post on 19-Jan-2017

272 views 0 download

Transcript of 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

Mickael FAUST Ingénieur développeur mobilité (Android + Hybride) mfaust@sqli.com

A PROPOS DE MOI

"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

- 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

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"

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

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

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.

“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

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)

● Annoncé lors du Google I/O 2013

● Support entier de Gradle

ANDROID STUDIO

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

● 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

HELLO WORLD EXAMPLE

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

PRODUCT FLAVORS EXAMPLE

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

BUILD CONFIGS EXAMPLE

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

ECLIPSE COMPATIBILITY

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

- 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

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

- Format AAR !!

DÉPENDANCES

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

- A rajouter dans le .gitignore file:

ASTUCES

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

● 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

● 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

● 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

MERCI

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

Questions?