0
Entwicklung mit
Android Studio und Gradle
Über mich
• Tim Roes
• Software Developer bei inovex GmbH
www.timroes.de
www.timroes.de/+
Android Studio
16. Mai 2013
Android Studio
Android Studio
Android Studio
Android Studio vs. Eclipse
Features
Stabilität
Performance
Weiterentwicklung
Features
Android Studio vs. Eclipse
+ Features +
Stabilität
Performance
Weiterentwicklung
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
Performance
Weiterentwicklung
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
○ Performance ○
Weiterentwicklung
Weiterentwicklung
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
○ Performance ○
+ Weiterentwicklung ○
Apache License
Groovy
Gradleware
IDE == Konsole
Gradle Wrapper
$ gradle -q wrapper
$ find . --magic-output-format
gradlew.bat
gradlew
gradle
└ wrapper
└ gradle-wrapper.ja...
Gradle Tasks
$ ./gradlew tasks
init
wrapper
dependencies
help
projects
properties
tasks
build.gradle
apply plugin: "java"
build.gradle
apply plugin: "java"
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:17.+'
}
build.gradle
apply plugin: "java"
repositories {
mavenCentral()
maven { url "http://maven.mycompany.com/" }
}
dependencies...
Android Plugin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9....
Versions Hölle
Android Studio Android Plugin Gradle
0.10 1.12
1.11
1.10
0.9
0.8
1.90.7
0.5.8
0.5.0
0.4.6
0.5.7
Android Tasks
$ ./gradlew tasks
clean
assemble
check
build
installDebug
connectedCheck
deviceCheck
Android Projekt Struktur
project
module
settings.gradle
build.gradle
local.properties
src
build.gradle
main
androidTest
ja...
Android Config
android {
compileSdkVersion 19
buildToolsVersion "19.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 1...
Build Types
android {
buildTypes {
debug {
packageNameSuffix ".debug"
}
proGuard.initWith(buildTypes.debug)
proGuard {
run...
Multi-APK/Version
Library
Paid-App Demo
Projektstruktur
src
└ main
└ java
└ res
└ paid
└ java
└ res
└ free
└ java
└ res
AndroidManifest.xml
Product Flavors
productFlavors {
paid {
packageName "com.mycompany.app.paid"
}
free {
packageName "com.mycompany.app.free"...
Build Variant
Build Variant = Product Flavor + BuildType
paidDebug freeDebug
paidRelease freeRelease
paidProGuard freeProG...
Kann ich Android Studio
schon produktiv einsetzen?
Ja, aber...
Literaturempfehlung
Gradle: Ein kompakter Einstieg in das Build-
Management-System
Joachim Baumann
Prorgramming Groovy 2: ...
www.timroes.de
www.inovex.de
Disclaimer: Logos are copyrighted trademarks by their respective companies. Android Robot is ...
NDK Builds
android {
defaultConfig {
ndk {
moduleName "jni-utils"
ldLibs "log", "GLESv2"
}
}
productFlavors {
arm {
ndk {
...
Multi-flavor variants
android {
flavorGroups "abi", "version"
productFlavors {
free { flavorGroup "version" }
paid { flavo...
Upcoming SlideShare
Loading in...5
×

Entwicklung mit Android Studio und Gradle

599

Published on

Auf der Google I/O 2013 hat Google mit Android Studio eine InteliJ IDEA basierte Entwicklungsumgebung speziell für die Android Entwicklung vorgestellt. Seitdem wurde diese stark ausgebaut und erfreut sich einer steigenden Benutzerzahl. Zusammen mit der neuen IDE hat Google außerdem Gradle als zukünftiges Build-System für Android vorgestellt, welches viele Neuerungen bringt und Fehler des alten Build-Systems beheben soll. In diesem Vortrag wird gezeigt wo Android Studio in der Zwischenzeit angekommen ist, wie es im Vergleich zu Eclipse (und dem ADT-Plugin) abschneidet und wo der Weg (vermutlich) noch hinführen wird. Außerdem wird es eine Einführung in Gradle für Android geben und einige Möglichkeiten des neuen Build-Systems werden aufgezeigt. Der Vortrag richtet sich an alle Android-Entwickler (egal ob Anfänger oder Fortgeschrittene), welche bisher keinen oder kaum Kontakt mit Android Studio und/oder Gradle hatten.

Published in: Software, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
599
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Entwicklung mit Android Studio und Gradle"

  1. 1. Entwicklung mit Android Studio und Gradle
  2. 2. Über mich • Tim Roes • Software Developer bei inovex GmbH www.timroes.de www.timroes.de/+
  3. 3. Android Studio 16. Mai 2013
  4. 4. Android Studio
  5. 5. Android Studio
  6. 6. Android Studio
  7. 7. Android Studio vs. Eclipse Features Stabilität Performance Weiterentwicklung
  8. 8. Features
  9. 9. Android Studio vs. Eclipse + Features + Stabilität Performance Weiterentwicklung
  10. 10. Android Studio vs. Eclipse + Features + ○ Stabilität + Performance Weiterentwicklung
  11. 11. Android Studio vs. Eclipse + Features + ○ Stabilität + ○ Performance ○ Weiterentwicklung
  12. 12. Weiterentwicklung
  13. 13. Android Studio vs. Eclipse + Features + ○ Stabilität + ○ Performance ○ + Weiterentwicklung ○
  14. 14. Apache License Groovy Gradleware IDE == Konsole
  15. 15. Gradle Wrapper $ gradle -q wrapper $ find . --magic-output-format gradlew.bat gradlew gradle └ wrapper └ gradle-wrapper.jar └ gradle-wrapper.properties .gradle └ 1.11 └ ...
  16. 16. Gradle Tasks $ ./gradlew tasks init wrapper dependencies help projects properties tasks
  17. 17. build.gradle apply plugin: "java"
  18. 18. build.gradle apply plugin: "java" repositories { mavenCentral() } dependencies { compile 'com.google.guava:guava:17.+' }
  19. 19. build.gradle apply plugin: "java" repositories { mavenCentral() maven { url "http://maven.mycompany.com/" } } dependencies { compile 'com.google.guava:guava:17.+' testCompile 'junit:junit:4.11' compile fileTree(dir: 'libs', include: ['*.jar']) }
  20. 20. Android Plugin buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } apply plugin: "android"
  21. 21. Versions Hölle Android Studio Android Plugin Gradle 0.10 1.12 1.11 1.10 0.9 0.8 1.90.7 0.5.8 0.5.0 0.4.6 0.5.7
  22. 22. Android Tasks $ ./gradlew tasks clean assemble check build installDebug connectedCheck deviceCheck
  23. 23. Android Projekt Struktur project module settings.gradle build.gradle local.properties src build.gradle main androidTest java res assets AndroidManifest.xml
  24. 24. Android Config android { compileSdkVersion 19 buildToolsVersion "19.1" defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 5 versionName "1.3.1" } }
  25. 25. Build Types android { buildTypes { debug { packageNameSuffix ".debug" } proGuard.initWith(buildTypes.debug) proGuard { runProguard true proguardFile 'proguard-rules.txt' } } }
  26. 26. Multi-APK/Version Library Paid-App Demo
  27. 27. Projektstruktur src └ main └ java └ res └ paid └ java └ res └ free └ java └ res AndroidManifest.xml
  28. 28. Product Flavors productFlavors { paid { packageName "com.mycompany.app.paid" } free { packageName "com.mycompany.app.free" minSdkVersion 8 } }
  29. 29. Build Variant Build Variant = Product Flavor + BuildType paidDebug freeDebug paidRelease freeRelease paidProGuard freeProGuard
  30. 30. Kann ich Android Studio schon produktiv einsetzen? Ja, aber...
  31. 31. Literaturempfehlung Gradle: Ein kompakter Einstieg in das Build- Management-System Joachim Baumann Prorgramming Groovy 2: Dynamic Productivity for the Java Developer Venkat Subramaniam
  32. 32. www.timroes.de www.inovex.de Disclaimer: Logos are copyrighted trademarks by their respective companies. Android Robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
  33. 33. NDK Builds android { defaultConfig { ndk { moduleName "jni-utils" ldLibs "log", "GLESv2" } } productFlavors { arm { ndk { abiFilters "armeabi", "armeabi-v7a" } } } }
  34. 34. Multi-flavor variants android { flavorGroups "abi", "version" productFlavors { free { flavorGroup "version" } paid { flavorGroup "version" } x86 { flavorGroup "abi" } arm { flavorGroup "abi" } } }
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×