gradle & android studio - introduction
DESCRIPTION
This is a very high level overview of Gradle. Android Studio tips and tricks were shown during demos, so the slides themselves don't really contain any info on Android Studio.TRANSCRIPT
Schedule
● Why Gradle?● Converting an existing project● Build types and product flavors● Custom tasks● Testing● Continuous integration
How to convert
● Project structure
● Gradle wrapper
● Dependencies
Good resource:http://ryanharter.com/blog/2013/07/17/migrating-android-projects-to-gradle
Build types - ExamplebuildTypes {
staging {
packageNameSuffix ".staging"
versionNameSuffix "-staging"
signingConfig signingConfigs.staging
}
}
Build types - ExamplesigningConfigs {
staging {
storeFile file("staging.keystore")
storePassword "storepwd"
keyAlias "alias"
keyPassword "keypwd"
}
}
Product flavors
● E.g. free, pro
● Multi APK (e.g. <= 2.2 & > 2.2)
● Combination
Setup: same as build types
Build variants
Build type + Product flavor = Build variant
● Pro Debug & Free Debug
● Pro Staging & Free Staging
● ...
Custom tasks - Exampletask keyStorePassword << {
def keystorePw = new String(
System.console().readPassword("Password?"))
android.signingConfigs.release
.storePassword = keystorePw
}
Custom tasks - Exampletasks.whenTaskAdded { task ->
if (task.name.equals("packageRelease")) {
task.dependsOn "keyStorePassword"
}
}
Instrumentation tests
● No separate project○ \src\instrumentTest\
● Own dependencies
○ dependencies { instrumentTestCompile x
}
● gradlew connectedInstrumentTest
CI with Jenkins
● Android SDK on build server
● Gradle plugin - “Invoke Gradle script”
● Emulator support
Good resource:http://blog.zuehlke.com/configure-your-android-project-on-jenkins/
Resourceshttp://tools.android.com/tech-docs/new-build-system/user-guide
http://www.gradle.org/documentation
https://plus.google.com/+AndroidDevelopers/posts
https://gradleplease.appspot.com
DuckDuckGo / Google
Contact me
@kevinpelgrims
http://kevinpelgrims.com/blog