@mreichelt@carstenhag In fact, you get the real benefit once you have lots (100s) of Android subprojects in your build. But those projects have the slowest sync times anyhow!
Electric Eel Canary 6 enables parallel sync with Gradle 7.4.2+ and AGP 7.2.0+. When the IDE triggers a sync, models are built in parallel. Big projects should benefit the most, sync time goes from 12 to 7mins for 3500+ subprojects. Settings are under "Settings -> Experimental".
@ZacSweers@mreichelt @himattm We forgot to update the release notes, they should go out today/tomorrow :/
There is not much docs, it should "just work". With:
- org.gradle.parallell=true
- Gradle 7.4.2+
- AGP 7.2.0+
you should be running in parallel (for Android models that are anyhow most expensive)
@mreichelt Nah, that's related to Gradle isolated project work. Building models in parallel works by:
- configuring all projects in a single thread
- building Android models in parallel
@JavierSegoviaCo There is a registry setting to enable this in IDEA, but there could be some incompatibilities in case model builders aren't thread safe. You gotta test it yourself :)
A nice write up on Gradle input snapshotting and build cache key computations, that AGP uses to support Compose remote build caching - https://t.co/MYXfVL41yY. Thanks @_aurimas!
If there are folks testing the new IC in Kotlin 1.7.0, in case you hit occasional compilation issues, can you please follow steps in https://t.co/JEKmZmnpWv to help us collect more info? Thanks!
In case you use core library desugaring in AGP, and desugared types are serialized, define serialVersionUID. Otherwise all method return types and param types will be resolved and it may break on older devices - https://t.co/muv4sjBACV.
@ZakTaccardi@ZacSweers Both 1 and 2. Even with the Kotlin plugin applied in libA, task won't run as there are no Kotlin sources, so modified Java sources will not be tracked in downstream modules.
@ZacSweers@CesarDielo Any changed jar/dir in your compile classpath that was not produced by Kotlin complier cannot be incrementally analyzed and it will cause full recompilation.
🌊 Dive deep into configuration cache
Configuration caching is an experimental feature in Gradle 6.6 to help make faster builds. Learn all about:
📈 Performance improvements
🖥 How to try it
🛠 How it works
🏊 and more
#11WeeksOfAndroid
Learn more ↓ https://t.co/YgJYTeKHtE
@ColtonIdle It is expected that the first build is slower and JVM cold strat is causing that. Once JIT kicks in, things become much faster. No need to run clean, as no task outputs are produced with --dry-run.
🐴 Round up all your sources 🤠
Learn how we designed the new and upgraded variant APIs in the Android Gradle plugin, which now let you access and manipulate build artifacts in a stable way. #11WeeksOfAndroid
Giddyup, read here ↓ https://t.co/Fhc0sT0kA1
With Android Gradle plugin 4.2.0-alpha05, if you do not specify Java language level in your build, we will default to Java 8 language features. Many libraries already require language desugaring and build speed impact from the IDE should be ~zero.