Posted on Leave a comment

Gradle for Android Developers

Decommissioning HTTP for Gradle Services [https://blog.gradle.org/decommissioning-http]

Beginner’s Guide to Gradle for Android Developers

Gradle Tutorial for Android: Getting Started

Benchmarking Gradle Builds Using Gradle-Profiler
11.2020 [https://goobar.io/benchmarking-gradle-builds-using-gradle-profiler/]

Gradle Doctor
[https://runningcode.github.io/gradle-doctor]

Take care of your gradle home directory
01.2021 [https://jitinsharma.in/posts/take-care-of-your-gradle-home-directory]

Introducing Java toolchains
10.2020 [https://blog.gradle.org/java-toolchains]

New APIs in the Android Gradle Plugin
29.07.2020 [https://medium.com/androiddevelopers/new-apis-in-the-android-gradle-plugin-f5325742e614]

Introducing Configuration Caching
10.08.2020 [https://blog.gradle.org/introducing-configuration-caching]

Советы по работе с Gradle для Android-разработчиков
21.03.2021 [https://habr.com/ru/company/redmadrobot/blog/544630/]

Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?
03.2021 [https://habr.com/ru/company/yota/blog/546664/]

The proper care and feeding of your Gradle build
[https://dev.to/autonomousapps/the-proper-care-and-feeding-of-your-gradle-build-d8g]
Gradle plugin for Java, Kotlin, and Android projects. Provides advice for managing dependencies and other applied plugins
[https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin]

dependency-analysis-android-gradle-plugin
[https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin]

10 ideas to improve your Gradle build times
[https://medium.com/dipien/10-great-ideas-to-improve-your-gradle-build-times-2a6b281c69c6]
[https://medium.com/dipien/10-ideas-to-improve-your-gradle-build-times-part-ii-9551bb10e9bd]

Gradle plugin to keep your modules graph healthy and lean.
[https://github.com/jraska/modules-graph-assert]

Preparing your Gradle build for package visibility in Android 11
14.07.2020 [https://android-developers.googleblog.com/2020/07/preparing-your-build-for-package-visibility-in-android-11.html]


👉 org.gradle.configureondemand=true
👉 kapt.use.worker.api = true
👉 org.gradle.parallel=true
👉 org.gradle.caching=true
👉 room.incremental = true
👉 org.gradle.unsafe.watch-fs=true

10 Tips to Speed Up Android Gradle Build Times
[ https://heartbeat.fritz.ai/10-tips-to-speed-up-android-gradle-build-times-c0ec665fc800]

19 tips for Gradle in Android projects — 2019 Edition [https://medium.com/google-developer-experts/19-tips-for-gradle-in-android-projects-2019-edition-11af704eb06e]

Converting your Android Gradle scripts to Kotlin [https://proandroiddev.com/converting-your-android-gradle-scripts-to-kotlin-1172f1069880]

Know more about amazing Gradle in Android Studio [https://medium.com/@ahmedadelsaid/atat-know-more-about-the-amazing-gradle-in-android-studio-91a05e2cdf46]

Implementation Vs Api in Android Gradle plugin 3.0 [https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa]

a Developer’s insight(s) about Android + Gradle [https://medium.com/compas/a-developers-insight-s-about-android-gradle-ccf5eb1882da]

Разработчики про использование Gradle в Android

Шпаргалка по Gradle [ https://habr.com/ru/post/458046/ ]

Трансформация кода в Android [ https://habr.com/ru/post/469237/ ]

Incremental testing for Gradle multi-projects [ https://medium.com/swlh/incremental-testing-for-gradle-multi-projects-2ad6cacd8e51 ]

Gradle Remote Build Cache Misses [ https://developers.soundcloud.com/blog/gradle-remote-build-cache-misses ]

Optimize Gradle build performance [ https://medium.com/@prashant.panwar777/optimize-gradle-build-performance-a767bba13d45 ]

Generating Java/Kotlin source files during Android Gradle build. [ https://medium.com/swlh/generating-java-kotlin-source-files-during-android-gradle-build-db6161674afc ]

O(1) Android build time at Tiki [ https://medium.com/@nlg.tuan.kiet/o-1-android-build-time-at-tiki-1a27a804bb6a ]

Introducing flaky test mitigation tools for Gradle [ https://blog.gradle.org/gradle-flaky-test-retry-plugin ]

Инкрементальный annotation proccesing для ускорения gradle-сборок [ https://habr.com/ru/company/hh/blog/484918/ ]

Optional dependencies are not optional [ https://blog.gradle.org/optional-dependencies ]

How to use Composite builds as a replacement of buildSrc in Gradle
[https://badootech.badoo.com/how-to-use-composite-builds-as-a-replacement-of-buildsrc-in-gradle-64ff99344b58]

10 Tips to Speed Up Android Gradle Build Times
[https://heartbeat.fritz.ai/10-tips-to-speed-up-android-gradle-build-times-c0ec665fc800]

Optimizing Gradle Daemon’s memory and cache usage
[https://proandroiddev.com/optimizing-gradle-daemons-memory-and-cache-usage-90b900065a34]

Stop using Gradle buildSrc. Use composite builds instead
[https://proandroiddev.com/stop-using-gradle-buildsrc-use-composite-builds-instead-3c38ac7a2ab3]


Пишем Gradle plugin // Бесплатный урок OTUS


GDG Live / Разбор доклада Степана Гончарова “Gradle от А до Я” // 24.09.2020


Степан Гончаров — Gradle от A до Я


Как подружиться с Gradle


printDepsTreeInJson

task printDepsTreeInJson {
  doLast {
    configurations.compile.incoming.getResolutionResult().getAllDependencies().each { depResult  ->
      println "{\"from\":\"" + depResult.getFrom() + "\"," + "\"requested\":\"" + depResult.getRequested() + "\"}"
    }
  }
}

task printSolvedDepsTreeInJson {
  doLast {
    def jsonOutput = "["
    configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.each { dep ->
      def addToJson 
      addToJson = { resolvedDep -> 
        jsonOutput += "\n{"
        jsonOutput += "\"groupId\":\"${resolvedDep.module.id.group}\",\"artifactId\":\"${resolvedDep.module.id.name}\",\"version\":\"${resolvedDep.module.id.version}\",\"file\":\"${resolvedDep.getModuleArtifacts()[0].file}\""
        jsonOutput += ",\"dependencies\":["
        if(resolvedDep.children.size()!=0){
          resolvedDep.children.each { childResolvedDep ->
            if(resolvedDep in childResolvedDep.getParents() && childResolvedDep.getConfiguration() == 'compile'){
              addToJson(childResolvedDep)
            }
          }
          if(jsonOutput[-1] == ','){
            jsonOutput = jsonOutput[0..-2]
          }
        }
        jsonOutput += "]},"
      }
      addToJson(dep)
    }
    if(jsonOutput[-1] == ','){
      jsonOutput = jsonOutput[0..-2]
    }
    jsonOutput += "]"
    println jsonOutput
  }
}
Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.