Catrobat/Catroid — pull request #999 by aried3r (2014-06-09 17:33:27+00:00)
Title: Update gradle, android plugin, support library,...

* Gradle (wrapper) updated from 1.11 to 1.12
* Gradle Android plugin updated from 0.9.+ to 0.11.+
* Support Library updated from 18.0.+ to 19.1.0
* Build Tools updated from 19 to 19.1.0
* NEW plugin android-sdk-manager, will download new build tools, SDK
versions,... as declared in `build.gradle` on demand
* Checkstyle is now part of the `build` lifecycle
* `gradle.properties` file added, includes the daemon and parallel
execution. AFAIK this is not honoured by AS as it has its own settings
and uses the daemon by default, but it speeds up commandline builds
(not clean builds but incremental ones). Benchmarks below.
* Had to change the classpath variable of the checkstyle task because
otherwise it wouldn't compile for me. Works on my machine doing `gw
checkstyle`.

## Benchmarks:
### Not parallel:
```
gw clean:
Total time: 13.921 secs

gw assDe:
Total time: 1 mins 32.123 secs

gw clean:
Total time: 12.841 secs

gw assDe:
Total time: 1 mins 19.26 secs

gw clean:
Total time: 13.316 secs

gw assDe:
Total time: 1 mins 26.894 secs

gw assDe:
Total time: 12.774 secs

gw assDe:
Total time: 13.149 secs
```

### Parallel + Daemon
```
gw clean:
Total time: 12.18 secs

gw assDe:
Total time: 1 mins 10.839 secs

gw clean:
Total time: 4.368 secs

gw assDe:
Total time: 1 mins 27.029 secs

gw clean:
Total time: 4.055 secs

gw assDe:
Total time: 1 mins 6.845 secs

gw assDe:
Total time: 5.357 secs

gw assDe:
Total time: 3.644 secs
```

### Results:
`gw clean build` is a bit faster, but not by a lot, `clean` is a
lot faster, as are subsequent incremental builds (note: not really an
incremental build in this case, because the source wasn't modified at
all). I use these settings at work on the console and did not encounter
any problems so far. For parallel builds in Android Studio, see the
compiler settings there.

## Notes:
I use `gw` instead of `./gradlew` or `../gradlew` (see [this][1] post
by Jakewharton for more info) as well as [task name abbreviation][2] in
case you wonder what exactly I am doing in the benchmarks, `assDe` = `assembleDebug`.

[1]: https://plus.google.com/+JakeWharton/posts/hPkaEwza6HG
[2]: http://www.gradle.org/docs/current/userguide/userguide_single.html#N107F0