entwicklung mit android studio und gradle
TRANSCRIPT
![Page 1: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/1.jpg)
Entwicklung mit Android Studio und Gradle
![Page 2: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/2.jpg)
Über mich
• Tim Roes
• Software Developer bei inovex GmbH
www.timroes.de
www.timroes.de/+
![Page 3: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/3.jpg)
Android Studio
16. Mai 2013
![Page 4: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/4.jpg)
Android Studio
![Page 5: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/5.jpg)
Android Studio
![Page 6: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/6.jpg)
Android Studio
![Page 7: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/7.jpg)
Android Studio vs. Eclipse
Features
Stabilität
Performance
Weiterentwicklung
![Page 8: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/8.jpg)
Features
![Page 9: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/9.jpg)
Android Studio vs. Eclipse
+ Features +
Stabilität
Performance
Weiterentwicklung
![Page 10: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/10.jpg)
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
Performance
Weiterentwicklung
![Page 11: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/11.jpg)
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
○ Performance ○
Weiterentwicklung
![Page 12: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/12.jpg)
Weiterentwicklung
![Page 13: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/13.jpg)
Android Studio vs. Eclipse
+ Features +
○ Stabilität +
○ Performance ○
+ Weiterentwicklung ○
![Page 14: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/14.jpg)
Apache License
Groovy
Gradleware
IDE == Konsole
![Page 15: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/15.jpg)
Gradle Wrapper
$ gradle -q wrapper$ find . --magic-output-formatgradlew.batgradlewgradle└ wrapper └ gradle-wrapper.jar └ gradle-wrapper.properties.gradle└ 1.11 └ ...
![Page 16: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/16.jpg)
Gradle Tasks
$ ./gradlew tasks
initwrapperdependencieshelpprojectspropertiestasks
![Page 17: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/17.jpg)
build.gradle
apply plugin: "java"
![Page 18: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/18.jpg)
build.gradleapply plugin: "java"
repositories {mavenCentral()
}
dependencies {compile 'com.google.guava:guava:17.+'
}
![Page 19: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/19.jpg)
build.gradleapply 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'])
}
![Page 20: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/20.jpg)
Android Plugin
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' }}
apply plugin: "android"
![Page 21: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/21.jpg)
Versions HölleAndroid 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
![Page 22: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/22.jpg)
Android Tasks
$ ./gradlew tasks
cleanassemblecheckbuildinstallDebugconnectedCheckdeviceCheck
![Page 23: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/23.jpg)
Android Projekt Strukturproject
module
settings.gradle
build.gradle
local.properties
src
build.gradle
main
androidTest
java
res
assets
AndroidManifest.xml
![Page 24: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/24.jpg)
Android Configandroid { compileSdkVersion 19 buildToolsVersion "19.1"
defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 5 versionName "1.3.1" }}
![Page 25: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/25.jpg)
Build Typesandroid { buildTypes { debug { packageNameSuffix ".debug" }
proGuard.initWith(buildTypes.debug) proGuard { runProguard true proguardFile 'proguard-rules.txt' } }}
![Page 26: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/26.jpg)
Multi-APK/Version
Library
Paid-App Demo
![Page 27: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/27.jpg)
Projektstruktur
src└ main └ java └ res└ paid └ java └ res└ free └ java └ res AndroidManifest.xml
![Page 28: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/28.jpg)
Product Flavors
productFlavors { paid { packageName "com.mycompany.app.paid" } free { packageName "com.mycompany.app.free" minSdkVersion 8 }}
![Page 29: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/29.jpg)
Build Variant
Build Variant = Product Flavor + BuildType
paidDebug freeDebugpaidRelease freeReleasepaidProGuard freeProGuard
![Page 30: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/30.jpg)
Kann ich Android Studio schon produktiv einsetzen?
Ja, aber...
![Page 31: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/31.jpg)
Literaturempfehlung
Gradle: Ein kompakter Einstieg in das Build-Management-System
Joachim Baumann
Prorgramming Groovy 2: Dynamic Productivity forthe Java Developer
Venkat Subramaniam
![Page 32: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/32.jpg)
www.timroes.dewww.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.
![Page 33: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/33.jpg)
NDK Buildsandroid { defaultConfig { ndk { moduleName "jni-utils" ldLibs "log", "GLESv2" } } productFlavors { arm { ndk { abiFilters "armeabi", "armeabi-v7a" } } }}
![Page 34: Entwicklung mit Android Studio und Gradle](https://reader033.vdocuments.site/reader033/viewer/2022042514/55d4f8cabb61eb6e1f8b46b8/html5/thumbnails/34.jpg)
Multi-flavor variants
android { flavorGroups "abi", "version"
productFlavors { free { flavorGroup "version" } paid { flavorGroup "version" } x86 { flavorGroup "abi" } arm { flavorGroup "abi" } }}