Upload
sqli
View
271
Download
0
Embed Size (px)
Citation preview
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) [email protected]
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?