entwicklung mit android studio und gradle

34
Entwicklung mit Android Studio und Gradle

Upload: inovex-gmbh

Post on 20-Aug-2015

622 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Entwicklung mit Android Studio und Gradle

Entwicklung mit Android Studio und Gradle

Page 2: Entwicklung mit Android Studio und Gradle

Über mich

• Tim Roes

• Software Developer bei inovex GmbH

www.timroes.de

www.timroes.de/+

Page 3: Entwicklung mit Android Studio und Gradle

Android Studio

16. Mai 2013

Page 4: Entwicklung mit Android Studio und Gradle

Android Studio

Page 5: Entwicklung mit Android Studio und Gradle

Android Studio

Page 6: Entwicklung mit Android Studio und Gradle

Android Studio

Page 7: Entwicklung mit Android Studio und Gradle

Android Studio vs. Eclipse

Features

Stabilität

Performance

Weiterentwicklung

Page 8: Entwicklung mit Android Studio und Gradle

Features

Page 9: Entwicklung mit Android Studio und Gradle

Android Studio vs. Eclipse

+ Features +

Stabilität

Performance

Weiterentwicklung

Page 10: Entwicklung mit Android Studio und Gradle

Android Studio vs. Eclipse

+ Features +

○ Stabilität +

Performance

Weiterentwicklung

Page 11: Entwicklung mit Android Studio und Gradle

Android Studio vs. Eclipse

+ Features +

○ Stabilität +

○ Performance ○

Weiterentwicklung

Page 12: Entwicklung mit Android Studio und Gradle

Weiterentwicklung

Page 13: Entwicklung mit Android Studio und Gradle

Android Studio vs. Eclipse

+ Features +

○ Stabilität +

○ Performance ○

+ Weiterentwicklung ○

Page 14: Entwicklung mit Android Studio und Gradle

Apache License

Groovy

Gradleware

IDE == Konsole

Page 15: Entwicklung mit Android Studio und Gradle

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

Gradle Tasks

$ ./gradlew tasks

initwrapperdependencieshelpprojectspropertiestasks

Page 17: Entwicklung mit Android Studio und Gradle

build.gradle

apply plugin: "java"

Page 18: Entwicklung mit Android Studio und Gradle

build.gradleapply plugin: "java"

repositories {mavenCentral()

}

dependencies {compile 'com.google.guava:guava:17.+'

}

Page 19: Entwicklung mit Android Studio und Gradle

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

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

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

Android Tasks

$ ./gradlew tasks

cleanassemblecheckbuildinstallDebugconnectedCheckdeviceCheck

Page 23: Entwicklung mit Android Studio und Gradle

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

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

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

Multi-APK/Version

Library

Paid-App Demo

Page 27: Entwicklung mit Android Studio und Gradle

Projektstruktur

src└ main └ java └ res└ paid └ java └ res└ free └ java └ res AndroidManifest.xml

Page 28: Entwicklung mit Android Studio und Gradle

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

Build Variant

Build Variant = Product Flavor + BuildType

paidDebug freeDebugpaidRelease freeReleasepaidProGuard freeProGuard

Page 30: Entwicklung mit Android Studio und Gradle

Kann ich Android Studio schon produktiv einsetzen?

Ja, aber...

Page 31: Entwicklung mit Android Studio und Gradle

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

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

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

Multi-flavor variants

android { flavorGroups "abi", "version"

productFlavors { free { flavorGroup "version" } paid { flavorGroup "version" } x86 { flavorGroup "abi" } arm { flavorGroup "abi" } }}