Dominik Helleberg | inovex GmbH
Auf Augenhöhe mit Android
Studio und Gradle
Dominik Helleberg
Mobile Development
Android / Embedded
Tools
http://dominik-helleberg.de/+
Android Studio!
!
!
Gradle +!
Android Plugin!
or!
„The new build system“
The new Dream Team!
new?!
Oktober !
2012
Mai!
2013
https://plus.google.com/u/0/+XavierDucrohet/posts/XnW7t9XJCMJ!
ready?!
Version!
0.9.+
Version!
0.5.1
Android PlugIn
Android Designer
Android PlugIn
Android DDMS
Android Builder
.properties
build.xml
Android PlugIn
Android Designer
Android PlugIn
Android Gradle Adapter
.properties
build.gradle
Best of ANT / Maven / GANT / Ivy!
Based on Groovy Scripts!
Expressive DSL !
(Flexible) Convention over Configuration!
Easy...
„hello groovy & gradle“!
!
Code!
distcompile
compileTest test
3 Phasen:!
Initialization!
Configuration!
Execution!
!
apply plugin: 'android'!
!
android {!
compileSdkVersion 19!
buildToolsVersion "19.0.2"!
!
defaultConfig {!
minSdkVersion 7...
Android PlugIn 0.9.+!
Core Features!
!
•  Konfigurierbare Manifest Attribute!
•  Build Varianten !
•  Tests integriert!
• ...
Demo PlugIn!
Build targets!
Variants!
!
Code!
Android PlugIn 0.9.+!
Extension:!
Automatische Versions-Verwaltung!
Ziel:!
"Version Code!
"Version Name!
"- einfach konfigurierbar halten!
"- au...
Automatische Versions-Verwaltung!
Schritt 1:!
!
Build-Informationen in App anzeigen !
!
" "Build-Time!
" "Build-Host!
"!
ü...
Automatische Versions-Verwaltung!
Schritt 2:!
!
Konfiguration von !
!
" "Version Code!
" "Version Name!
"!
über eine Prope...
Automatische Versions-Verwaltung!
Schritt 3:!
!
Berechnung von versionCode und versionName!
!
"version=2.1.3!
!
"versionCo...
Automatische Versions-Verwaltung!
Schritt 4:!
!
Versionsnummer aus git Tag auslesen!
!
" "git-Tag „2.1.3“!
!
Android PlugI...
Automatische Versions-Verwaltung!
Schritt 5:!
!
Versionsnummer + App Name dem APK hinzufügen!
!
<name>-<sub-name>-<buildTy...
Automatische Versions-Verwaltung!
Modularisieren:!
!
inside build-scripts!
!
buildSrc/!
!
external build-scripts (local fi...
Key Features!
Build Variants!
BuildTypes!ProductFlavour!
debug!
UAT!
release!
int!
ext!
Builds!
int-debug!
ext-debug!
int-...
Key Features!
Build Variants!
Demo Android Studio!
Key Features!
The „old“ World!
Key Features!
Build Variants Directory structure!	
  
	
  
src/	
  
	
  int/	
  
	
   	
  java/	
  
	
   	
  res/	
  
	
  ...
Key Features!
•  Layout Editor!
•  IntelliJ Features!
•  Improved Checks!
•  Improved UI!
!
!
!
Status Quo!
•  Mostly stable but
expect breaking changes!
•  Documentation poor!
•  Many examples might not
work (old vers...
Empfehlung!
•  „I‘m feeling lucky“!
•  Multiproject-Builds!
•  Safe side: stay with eclipse (but maybe use gradle)!
•  Gra...
Tipps + Tricks!
http://www.manning.com/muschko/
Tipps + Tricks!
Gradle daemon
$>	
  cat	
  .gradle/gradle.properties	
  
	
  	
  	
  org.gradle.daemon=true	
  
	
  
Show ...
Tipps + Tricks!
Gradle Init Scripts
$>	
  cat	
  .gradle/init.gradle	
  
initscript	
  {	
  
	
  	
  	
  	
  allprojects	
...
$>	
  gradle	
  assembleDebug	
  -­‐-­‐profile	
  
DANKE!
Android Studio und gradle
Android Studio und gradle
Android Studio und gradle
Nächste SlideShare
Wird geladen in …5
×

Android Studio und gradle

1.133 Aufrufe

Veröffentlicht am

Android Studio und gradle Status Quo

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.133
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
25
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Android Studio und gradle

  1. 1. Dominik Helleberg | inovex GmbH Auf Augenhöhe mit Android Studio und Gradle
  2. 2. Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+
  3. 3. Android Studio! ! ! Gradle +! Android Plugin! or! „The new build system“ The new Dream Team!
  4. 4. new?! Oktober ! 2012 Mai! 2013 https://plus.google.com/u/0/+XavierDucrohet/posts/XnW7t9XJCMJ!
  5. 5. ready?! Version! 0.9.+ Version! 0.5.1
  6. 6. Android PlugIn Android Designer Android PlugIn Android DDMS Android Builder .properties build.xml
  7. 7. Android PlugIn Android Designer Android PlugIn Android Gradle Adapter .properties build.gradle
  8. 8. Best of ANT / Maven / GANT / Ivy! Based on Groovy Scripts! Expressive DSL ! (Flexible) Convention over Configuration! Easy to extend! ! „Make the impossible possible, make the possible easy and make the easy elegant.” ! ! !
  9. 9. „hello groovy & gradle“! ! Code!
  10. 10. distcompile compileTest test 3 Phasen:! Initialization! Configuration! Execution! !
  11. 11. apply plugin: 'android'! ! android {! compileSdkVersion 19! buildToolsVersion "19.0.2"! ! defaultConfig {! minSdkVersion 7! targetSdkVersion 19! versionCode 1! versionName "1.0"! }! buildTypes {! release {! runProguard false! proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'! }! }! }! ! dependencies {! compile 'com.android.support:appcompat-v7:+'! compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])! }!
  12. 12. Android PlugIn 0.9.+! Core Features! ! •  Konfigurierbare Manifest Attribute! •  Build Varianten ! •  Tests integriert! •  BuildConfig konfigurierbar! •  Signierung konfigurierbar! •  Tools versioniert! •  Multiproject-Support! •  Dependency Management! •  Binary Lib Format (AAR)! •  Lint integration! •  Dex + AAPT Options! apply plugin: 'android'! ! android {! compileSdkVersion 19! buildToolsVersion "19.0.2"! ! defaultConfig {! minSdkVersion 7! targetSdkVersion 19! versionCode 1! versionName "1.0"! }! buildTypes {! release {! runProguard false! proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'! }! }! }! ! dependencies {! compile 'com.android.support:appcompat-v7:+'! compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])! }!
  13. 13. Demo PlugIn! Build targets! Variants! ! Code! Android PlugIn 0.9.+!
  14. 14. Extension:! Automatische Versions-Verwaltung! Ziel:! "Version Code! "Version Name! "- einfach konfigurierbar halten! "- aus git-tags extrahieren und in gradle setzen! "! "Build-Informationen in der App verfügbar machen! ! ! Android PlugIn 0.9.+!
  15. 15. Automatische Versions-Verwaltung! Schritt 1:! ! Build-Informationen in App anzeigen ! ! " "Build-Time! " "Build-Host! "! über BuildConfig! Android PlugIn 0.9.+!
  16. 16. Automatische Versions-Verwaltung! Schritt 2:! ! Konfiguration von ! ! " "Version Code! " "Version Name! "! über eine Property-Datei! Android PlugIn 0.9.+!
  17. 17. Automatische Versions-Verwaltung! Schritt 3:! ! Berechnung von versionCode und versionName! ! "version=2.1.3! ! "versionCode=2130! "VersionName=2.1.3! Android PlugIn 0.9.+!
  18. 18. Automatische Versions-Verwaltung! Schritt 4:! ! Versionsnummer aus git Tag auslesen! ! " "git-Tag „2.1.3“! ! Android PlugIn 0.9.+!
  19. 19. Automatische Versions-Verwaltung! Schritt 5:! ! Versionsnummer + App Name dem APK hinzufügen! ! <name>-<sub-name>-<buildType>-<version>.apk! Android PlugIn 0.9.+!
  20. 20. Automatische Versions-Verwaltung! Modularisieren:! ! inside build-scripts! ! buildSrc/! ! external build-scripts (local file or http)! apply from:'https://raw.github.com/../all-jars.gradle‘! apply from:'~/.gradle/RobertFischer/gradle-scripts/all-jars.gradle‘! ! via dependencies / Repository! Android PlugIn 0.9.+!
  21. 21. Key Features! Build Variants! BuildTypes!ProductFlavour! debug! UAT! release! int! ext! Builds! int-debug! ext-debug! int-UAT! ext-UAT! int-release! ext-release!
  22. 22. Key Features! Build Variants! Demo Android Studio!
  23. 23. Key Features! The „old“ World!
  24. 24. Key Features! Build Variants Directory structure!     src/    int/      java/      res/    ext/      java/      res/    main/      java/      res/      androidTest/                java/  
  25. 25. Key Features! •  Layout Editor! •  IntelliJ Features! •  Improved Checks! •  Improved UI! ! ! !
  26. 26. Status Quo! •  Mostly stable but expect breaking changes! •  Documentation poor! •  Many examples might not work (old versions)! •  Features are worth considering it •  Mostly stable! •  Unpredictable updates! •  Tools & Features missing! •  IntelliJ EAP Release
  27. 27. Empfehlung! •  „I‘m feeling lucky“! •  Multiproject-Builds! •  Safe side: stay with eclipse (but maybe use gradle)! •  Gradle will be mandatory / Android Studio is optional! ! !
  28. 28. Tipps + Tricks! http://www.manning.com/muschko/
  29. 29. Tipps + Tricks! Gradle daemon $>  cat  .gradle/gradle.properties        org.gradle.daemon=true     Show dependencies $>  gradle  dependencies    
  30. 30. Tipps + Tricks! Gradle Init Scripts $>  cat  .gradle/init.gradle   initscript  {          allprojects  {                  apply  plugin:  'maven’                  repositories  {                          maven  {                                  url  =  "http://archiva.inovex.de:8080/archiva/ repository/snapshots/"                          }                  }          }   }  
  31. 31. $>  gradle  assembleDebug  -­‐-­‐profile  
  32. 32. DANKE!

×