Gradle что за папка
Gradle это инструментарий для автоматизации сборки с открытым исходным кодом, который подходит для компиляции программного обеспечения почти любого типа. Gradle делает мало предположений о том, что вы пытаетесь построить или как его построить, что делает Gradle особенно гибким.
Gradle основывает свой дизайн на следующих фундаментальных принципах:
Высокая производительность. Gradle избегает выполнения лишней работы, запуская только задачи, которое действительно нужны из-за изменения входных или выходных файлов. Gradle использует различные виды кэша, чтобы повторно использовать выходные данные от предыдущих сборок. С помощью фичи общего кэша сборки (shared build cache) вы можете повторно использовать выходные файлы компиляции от других машин (что полезно при совместной работе над большим проектом).
JVM foundation. Gradle работает на виртуальной машине Java (JVM). Это преимущество для пользователей, знакомых с Java, поскольку логика сборки может использовать стандартный Java API. Это также упрощает запуск Gradle на назных платформах.
Conventions. Gradle упрощает сборку общих типов проектов с помощью соглашений (conventions). Плагины устанавливают значимые настройки по умолчанию, чтобы сохранять минимальными скрипты сборки. Однако эти соглашения вас не ограничивают: вы можете конфигурировать настройки, добавлять свои собственные задачи, и выполнять многие другие кастомизации в своих сборках.
Расширяемость. У большинства сборок есть специальные требования, которые требуют специальной логики построения. Вы можете легко расширить Gradle, чтобы предоставить свою собственную логику сборки с пользовательскими задачами и плагинами. См. пример Android builds: они добавляют много новых концепций сборки, таких как flavors и типы сборки.
Поддержка IDE. Несколько основных IDE обеспечивают взаимодействие со сборками Gradle, включая Android Studio, IntelliJ IDEA, Eclipse, VSCode и NetBeans. Gradle также может создавать файлы решений, необходимые для загрузки проекта в Visual Studio.
Insight. Build Scan™ предоставляет обширную информацию о сборке, которую вы можете использовать для идентификации причины проблем. Вы также можете использовать Build Scan для выявления проблем с производительностью сборки и даже предоставления общего доступа к ним для получения справки по отладке.
[Терминология Gradle]
Полезно разобраться в основных понятиях, чтобы углубиться в изучение возможностей Gradle.
Projects . Проекты это то, что собирает Gradle. Проекты содержат скрипт сборки, который представляет собой файл в корневой директории проекта, и обычно называется build.gradle или build.gradle.kts. Скрипты сборки определяют задачи (tasks), зависимости (dependencies), плагины (plugins) и другие конфигурации для проекта. Одиночная сборка может содержать один или несколько проектов, и у каждый проекта может содержать свои собственные дочерние проекты (subprojects).
Tasks . Задачи (tasks) содержат логику для выполнения некоторой работы по компилированию кода, запуску тестов или распространению ПО. В большинстве случаев используются существующие задачи. Gradle предоставляет готовые задачи для реализации многих общих потребностей системы сборки, таких как встроенная задача Java Test, которая может выполнять тесты. Плагины предоставляют ещё больше типов задач.
Сами задачи состоят из:
Actions: части работы, которые что-то выполняют, например копирование файлов или компиляция исходного кода.
Inputs: значения, файлы и директории, над которыми работают actions.
Outputs: файлы и директории, которые actions модифицируют или генерируют.
Плагины . Подключаемые модули к средам разработки, которые позволяют вам внедрять новые концепции в построение, выходящие за рамки задач, файлов и конфигураций зависимостей. Например, большинство языковых плагинов добавляют концепцию исходных наборов в сборку.
Плагины обеспечивают возможность повторного использования логики и конфигурации в нескольких проектах. С плагинами вы можете написать задачу один раз и использовать ее в нескольких построениях. Также можно хранить общую конфигурацию, например, ведение журнала, описывать зависимости и осуществлять управление версиями, и все это в одном месте. Это уменьшает дублирование в скриптах сборки. Соответствующее моделирование процессов сборки с помощью плагинов может значительно улучшить простоту использования и эффективность.
Фазы сборки. Gradle анализирует и выполняет скрипты сборки в трех фазах, составляющих цикл сборки (Build Lifecycle):
Инициализация. Настраивается окружение для сборки и определяется, какие проекты будут в ней участвовать.
Конфигурация. Конструирует и конфигурирует дерево задач (task graph) для сборки. Определяет, какие задачи нужно запускать и в каком порядке, основываясь на задании, которое пользователь хочет запустить.
Выполнение. Запуск выбранных задач в конце фазы конфигурации.
Build. Сборка (build) это выполнение коллекции задач в проекте Gradle. Сборку запускают через интерфейс командной строки (CLI) или из IDE путем указания селекторов задач. Gradle конфигурирует сборку и выбирает задачи для запуска. Затем Gradle запускает минимально-полный набор требуемых задач и их зависимости.
Как безопасно очистить папку .gradle?
Загрузил в Android Studio старый проект, прога автоматически закачала старую версию gradle, которая была указана в проекте. И только потом она спросила, хочу ли я перейти на новую. Я согласился и теперь прога скачала новую. Сейчас папка .gradle содержит файлы от gradle 6.7.1 и 5.5.1. Проект использует только новую версию. Как правильно удалить куски старой версии 5.5.1, которые занимают немало места на диске? Или лучше просто удалить папку .gradle и программа скачает заново уже только новую версию?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как очистить Системную папку, например папку загрузки?
Буду признателен, если поможете. Необходим код в C# Visual studio
Как очистить папку Windows
Папка System32 весит 20 гб.У меня XP, авто обновления только недавно вырубил. Что делать?
Как очистить папку temp
Нужно очистить папку temp (%Temp%) код: string directoryPath = Path.GetTempPath(); try .
Как очистить папку от всех файлов
Возник такой вопрос: как очистить папку от всех файлов, то бишь удалить все внутри папки, кроме.
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
Сообщение от Royal_X
Как правильно удалить куски старой версии 5.5.1, которые занимают немало места на диске?
много это сколько?
у меня к примеру папка с версией gradle занимает 5-6Мб.
2419 / 1039 / 371
Регистрация: 01.06.2021
Сообщений: 3,708
androbro, при добавлении еще одной версии добавляется прибл. 700МБ
Добавлено через 51 секунду
тратить столько места на SSD не хочется)
Добавлено через 2 минуты
Сообщение от androbro
папка с версией gradle
вы про папки в .gradle\wrapper\dists ?
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
Сообщение от Royal_X
вы про папки в .gradle\wrapper\dists ?
нет, я про папку .gradle\версия_gradle
2419 / 1039 / 371
Регистрация: 01.06.2021
Сообщений: 3,708
я просто удалил .gradle и заново загрузил. теперь все ок
67 / 45 / 23
Регистрация: 22.11.2019
Сообщений: 151
да, вы сделали правильно.
просто сносите всю папку и качете заново.
на всякий случай оставлю вам тут свой гайд, как самому перевести проект на новый Gradle
копируем проект в папку с проектами. после копируем с заменой из УЖЕ СОЗДАННЫХ проектов на НОВОЙ СТУДИИ следующие файлы
в корне проектов:
gradle.properties
build.gradle
gradle — целую папку
по пути . /app/build.gradle меняем API, версии БилдТулз и тд на текущие, актуальные.
dependencies сейчас лучше не трогать. если скачаются — то и фиг с ними. весят они не так много, как целый Gradle
сам файл не копируем и ничего там не меняем! только тезисно изменяем нужные нам параметры.
теперь мы Импортируем отредактированный проект и в новую Студио. синхронимся, исправляем косяки импортов, зависимостей и тд.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как программно очистить папку? (не системная)
Подскажите с кодом, а то вот так не работает. Создавал два текстовых файла в папке, а этот код.
Как найти и очистить папку в Delphi?
Здравствуйте! Как сделать так, чтобы на кнопку при нажатии программа нашла определенную папку это.
Как очистить папку (с белым списком)?
Я собираю игровой сервер для теле- и интернет-провайдера, чтобы его абоненты могли на нём играть.
Как очистить папку Temporary Internet Files
Не подскажете как программно очистить/удалить папку.
Как из Корела программно очистить какую нибудь папку?
Всем привет! После переустановки Винда10 Корел перестал через раз понимать команду: On Error.
Outlook очистить папку с почтой
Требуется удалить из папки все элементы, которые не являются письмами, то есть приглашения.
.android и .androidStudio какую информацию хранят эти папки, можно ли их перенести на не системный диск
Использую windows 7 , заметил что у меня ряд папок .android , .androidStudio1.4,.androidStudio2.2 , .androidStudio2.3 и .gradle в совокупности занимают 20 гб. Хочется узнать сколько же там может быть ненужного. И как часто андроид студио обращается к этим данным (если не часто, то я бы попытался перенести эти папки на другой не SDD диск.)
Отслеживать
задан 4 апр 2018 в 12:39
2,470 11 11 серебряных знаков 29 29 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Папка .android хранит в себе созданные эмуляторы, кеш и настройки для Android SDK
Папки вида .AndroidStudioX.Y / .AndroidStudioPreviewX.Y хранят настройки и установленные плагины для соответствующей версии IDE. Если используете только одну версию, то можете смело стирать папки с другой версией. Местоположение данной папки можно настроить, выставив нужный путь в STUDIO_HOME\bin\idea.properties
Папка .gradle хранит кеш выкачанных библиотек (pom + jar/aar + исходники) и сам Gradle. Обычно это самая увесистая папка, её можно смело удалить и Gradle Wrapper создаст её заново при следующей сборке, выкачав только нужные библиотеки. Местоположение данной папки можно настроить, выставив нужный путь в переменной окружения GRADLE_USER_HOME
Gradle
Gradle — система автоматической сборки, построенная на принципах Apache Ant и Apache Maven. В Eclipse использовалась система Ant, но большинство разработчиков даже не замечало её работы. В основном возможности системы использовались в конторах для автоматизации различных задач. В Android Studio такой номер не пройдёт. Gradle сопровождает вас во время разработки постоянно. Поначалу, если вы перешли с Eclipse, Gradle сильно раздражает своими действиями. Но позже вы оцените её удобство и может даже полюбите её.
Gradle не является изобретением для Android Studio, система была разработана раньше и использовалась в приложениях для Java, Scala и других языках.
Система сборки Gradle очень мощная и сложная, чтобы о ней рассказать в двух словах. Есть целые книги о ней. Сами команды в Gradle представляют собой обычный текст с использованием синтаксиса Groove для конфигурации. Но нам не нужно знать всё. Познакомимся поближе с системой и научимся пользоваться ей.
Создайте новый проект или откройте любой существующий проект из Android Studio и посмотрите на структуру проекта.
В последних версиях студии файлы Gradle выделили в отдельную папку Gradle Script. Раскройте её. В основном вас должен интересовать файл build.gradle, который относится к модулю. Рядом с этим файлом в скобках будет написано Module: app. Двойным щелчком откройте его, вы увидите, что файл является текстовым.
Также есть файл build.gradle, который относится к проекту. Но с ним работают реже. Так находятся настройки для репозиториев и самого Gradle.
Вернёмся к файлу модуля, вы увидите много интересной информации. Например, вы там можете увидеть настройки, которые раньше вы могли видеть в манифесте — номера версий, номера SDK и так далее. Забегая вперёд, скажу, что здесь можно добавить всего одну волшебную строчку и нужная библиотека сама скачается из интернета и установится в проекте. Красота!
Однако вернёмся в корневую папку. Кроме файлов build.gradle мы можем заметить файлы gradle.properties, settings.gradle и другие. Трогать их не нужно.
В корневой папке также есть файлы gradlew и gradlew.bat для работы с Gradle Wrapper. В принципе вам не нужно знать о них ничего. Но для параноиков есть информация — если вы часто импортируете проекты из неизвестных источников, то они содержат файл gradle/wrapper/gradle-wrapper.properties. Откройте его текстовым редактором и посмотрите на адрес у distributionUrl. Путь должен вести на официальный сай //services.gradle.org или на внутренний корпоративный сервер. Другие адреса должны вызвать тревогу.
Вы могли заметить, что по сравнению с Eclipse изменилась структура файлов. В папке app находится папка src, а ней папка main, в которых папки java, res и файл манифеста. Новая структура лучше отвечает требованиям Gradle для управления файлами.
Вы, например, можете создавать альтернативные папки с ресурсами и с помощью build.gradle подключить их к проекту.
android < compileSdkVersion 20 buildToolsVersion "20.0.0" defaultConfig < applicationId "ru.alexanderklimov.hellokitty" minSdkVersion 16 targetSdkVersion 20 versionCode 1 versionName "1.0" >sourceSets < main < res < srcDirs = [ 'src/main/res', 'src/main/presentations/animations', 'src/main/presentations/layouts'] >> > >
В этом примере мы указали, что существуют новая папка presentations в папке /src/main/ наряду с существующими папками java и res. Внутри созданной папки есть ещё две папки layout и animations, которые содержат файлы ресурсов.
Только помните, что вам нужно избегать конфликта имён при слиянии всех файлов при сборке.
Значение sourceSets указывает Gradle, какие папки следует использовать. Этим приёмом пользуются продвинутые программисты. Мы пока не будем использовать такую технику.
Другая полезная возможность — создавать разные версии приложений, например, демо-версию и платную версию. Немного об этом рассказано здесь.
Номер версии приложения и требования к версии Android прописаны в секции defaultConfig. Если у вас сохранились старые версии приложений, то в манифесте можете удалить данные записи. По-моему, там даже выводится соответствующая подсказка. Даже если вы эти данные в манифесте не удалите, то значения из gradle.build имеют больший приоритет и перепишут значения в манифесте при не совпадении.
defaultConfig
Подключение библиотеки происходит одной строчкой. Например, нужно добавить библиотеку Picasso:
dependencies
В Android Studio 3.0 используется новая версия Gradle, в которой compile считается устаревшей. Вместо него следует использовать новое слово implementation.
implementation 'com.android.support:recyclerview-v7:27.0.0'
Есть похожая команда, которая подключает библиотеку, которая будет использоваться только для отладки приложения и в релизной версии она не нужна.
debugCompile 'junit:junit:4.12' // старый вариант testImplementation 'junit:junit:4.12' // новый вариант для Android Studio 3.0
Далее включаете синхронизацию и через несколько секунд в папке появляется нужная библиотека, готовая к использованию. Сама библиотека скачивается с специального хранилища-репозитория JCenter. Данный репозиторий используется по умолчанию и прописан в buil.gradle проекта.
repositories
Можно указать другой репозиторий, например, Maven Central.
repositories
Для поиска через Maven-репозиторий используйте The Central Repository Search Engine.
Библиотеку можно подключать и старым способом, используя jar-файл, но такой способ уходит в прошлое.
dependencies < compile files("libs/library1.jar", "libs/library2.jar") >
Сам файл нужно скопировать в папку /libs.
При любом изменении файла недостаточно его сохранить. Нужно также произвести синхронизацию. Наверху обычно появляется жёлтая полоска с ссылкой Sync Now.
Задаём имя APK при компиляции
Можно задать собственное имя при компиляции проекта. Например, так.
defaultConfig
Получим имя MyName-1.0.12-release.apk
Оптимизатор кода R8
Оптимизатор кода R8 имеет следующие возможности: урезание байт-кода, сжатие, обфускация, оптимизация, удаление «синтаксического сахара», преобразование в DEX. Оптимизатор может производить все операции за один шаг, что даёт сильное улучшение производительности. R8 был введён в Android Gradle plugin 3.3.0. Вам нужно только включить его.
android < buildTypes < release < minifyEnabled true > > >
R8 разработан для работы с существующими ProGuard-правилами, хотя возможны ситуации, когда нужно переработать правила.
#отключение R8 только для Android Library модулей android.enableR8.libraries = false #отключение R8 для всех модулей android.enableR8 = false
Сжимаем итоговый APK
В Gradle 1.4 появилась возможность сжать итоговый файл, убрав неиспользуемые ресурсы, в том числе из библиотек, например, Google Play Services.
buildTypes
Во время сборки приложения вы можете увидеть строку:
:android:shrinkDebugResources Removed unused resources: Binary resource data reduced from 2570KB to 1711KB: Removed 33% .
Другой способ убрать неиспользуемые ресурсы конфигурации. Например, вам не нужные локализованные ресурсы для всех языков, которые входят в библиотеку Google Play Services или Android Support Library и др. Оставим только нужные языки. Возможно, вы также не хотите поддерживать mdpi или tvdpi-разрешения в своём приложении. Мы можем установить языки и разрешения, которые используются в приложении, остальные будут исключены, что позволит уменьшить вес приложения.
// build.gradle android < defaultConfig < resConfigs "en", "ru" resConfigs "nodpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi" >>
Можно перенести ключи из манифеста.
Чтобы их не светить, например, если выкладывать код на Гитхабе, то сделаем так.
defaultConfig
И в манифесте переделаем код.
В большинстве случаев это сработает, но иногда ключ требуется при компиляции и указанный пример может не сработать. В таком случае применяют другой вариант через manifestPlaceholders.
defaultConfig
В манифесте пишем.
Класс BuildConfig
В статье LogCat упоминался способ быстрого отключения журналирования.
Суть в следующем. Когда вы создаёте новые переменные в блоках defaultConfig или buildTypes (ветки debug и release), то Gradle создаёт специальный класс BuildConfig, и вы можете получить доступ к этим переменным.
Например, добавим переменную в defaultConfig
defaultConfig
На языке Java это равносильно String YOUR_TOKEN = «ABRAKADABRA»;
Теперь мы можем обратиться к созданной строке.
String token = BuildConfig.YOUR_TOKEN; // Что-то делаем со своей строкой
С секцией buildType ситуация интереснее. У секции есть два блока debug и release. Можно создать переменные с разными значениями, которые будут использоваться в зависимости от ситуации. Например, у вас есть собственное API для сервера. Для тестирования вы используете один адрес, а для финальной версии — другой адрес. Тогда вы просто указываете разные адреса в разных ветках. Переменные могут быть не только строковыми.
buildTypes < debug < buildConfigField "String", "API_URL", '"http://developer.alexanderklimov.ru/api/debug/"' buildConfigField "boolean", "REPORT_CRASHES", "true" >release < . тут какие-то другие записи buildConfigField "String", "API_URL", '"http://developer.alexanderklimov.ru/api/release/"' buildConfigField "boolean", "REPORT_CRASHES", "false" >>
Создаём код для перехода на веб-страницу.
Uri addressUri = Uri.parse(BuildConfig.API_URL); Intent openLinkIntent = new Intent(Intent.ACTION_VIEW, addressUri); startActivity(openLinkIntent);
Теперь вам не нужно переписывать каждый раз код. Загружаться будет страница по нужному адресу автоматически.
Разделяем отладочную и финальную версию
По такому же принципу можно организовать запуск новой версии программы, не затрагивая программу, которую вы установили с Google Play. Допустим вы на своём телефоне установили своё собственное приложение через Google Play. Теперь вам нужно написать новую версию и проверить на своём телефоне. Из-за конфликта имён новое тестируемое приложение перепишет финальную версию или вообще не установится. Поможет следующий трюк.
buildTypes < debug < applicationIdSuffix ".debug" versionNameSuffix "-debug" resValue "string", "app_name", "AboutCat (debug)" >release < minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' resValue "string", "app_name", "AboutCat" >>
В специальных переменных applicationIdSuffix и versionNameSuffix мы задаём суффиксы, чтобы избежать конфликта. А в переменной resValue указываем название программы для отладочной и финальных версий, чтобы на устройстве можно было их найти. Не забудьте при этом удалить строковый ресурс app_name в res/values/strings.xml, иначе получите ошибку при компиляции. Теперь можете спокойно запускать приложение с новым кодом, не боясь повредить своё любимое приложение.
Прячем секретную информацию
Следующий совет больше подходит для компаний. Когда подписывается приложение, то нужно указывать пароль, хранилище и т.д. Чтобы их не светить в студии, можно прописать их в переменных и поместить в секцию signingConfigs. Сервер сам найдёт нужные ключи и воспользуется ими в своих сценариях.
signingConfigs < release < storeFile "$" keyAlias "$" storePassword "$" keyPassword "$" > >
Автогенерация версии кода
Нашёл совет, сам не применял. Не обязательно вручную менять версию приложения в атрибутах versionCode и versionName, можно сделать через переменные, а они сами подставятся в нужное место. На любителя.
def versionMajor = 1 def versionMinor = 0 def versionPatch = 0 android < defaultConfig < versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch versionName "$.$.$" > >
settings.gradle
Файл settings.gradle обычно состоит из одной строчки.
include ':app'
Это означает, что у вас используется один проект для работы. Если вы будете подключать другие проекты, то здесь появятся новые строки.
gradle.properties (Project Properties)
Несколько советов по настройке файла gradle.properties.
Режим параллельного выполнения
В этом файле можно найти закомментированную строку # org.gradle.parallel=true. Если модули вашего проекта не используют друг друга как зависимости, создавая перекрёстные ссылки, можно включать режим параллельного выполнения, что ускорит скорость сборки до ~30%.
org.gradle.parallel=true # включаем режим параллельного выполнения
Gradle-демон
Включение на компьютере демона Gradle даст значительный прирост в скорости сборки.
org.gradle.daemon=true # включаем демон
Режим конфигурации при необходимости
Если в проекте используется много модулей, то можно включить режим конфигурации при необходимости. Ускорение будет заметно при большом количестве используемых модулей:
org.gradle.configureondemand=true
Меняем номер версии библиотек в одном месте
Очень часто в проекте используются взаимосвязанные библиотеки с одинаковыми номерами.
dependencies < compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.android.support:percent:23.4.0' compile 'com.android.support:cardview-v7:23.4.0' compile 'com.android.support:gridlayout-v7:23.4.0' //play services compile 'com.google.android.gms:play-services-location:9.2.1' compile 'com.google.android.gms:play-services-gcm:9.2.1' >
Можно быстро поменять у всех номера через переменную. Для этого используется секция ext, в которой указывается переменная и номер версии. Затем в секции dependencies номер версии заменяется на имя переменной
ext < supportLibraryVersion = '24.0.0'; playServicesVersion = '9.2.1' >dependencies < compile "com.android.support:appcompat-v7:$supportLibraryVersion" compile "com.android.support:design:$supportLibraryVersion" compile "com.android.support:percent:$supportLibraryVersion" compile "com.android.support:cardview-v7:$supportLibraryVersion" compile "com.android.support:gridlayout-v7:$supportLibraryVersion" //play services compile "com.google.android.gms:play-services-location:$playServicesVersion" compile "com.google.android.gms:play-services-gcm:$playServicesVersion" >
Обратите внимание, что одинарные кавычки заменяются на двойные, а символ $ указывает на строковый тип.
Расширенная версия с разными переменными в другом виде.
ext.compileSdkProjectVersion= 24 ext.buildToolsProjectVersion= '24.0.0' ext.supportLibraryVersion = '24.0.0' ext.googlePlayVersion = '8.4.0’ android < compileSdkVersion compileSdkProjectVersion buildToolsVersion buildToolsProjectVersion //… >dependencies
Если в проекте используются несколько модулей с одинаковыми зависимостями, то эти записи можно перенести в корневой build.gradle, чтобы не менять номера версий в каждом модуле.
Настройки в Android Studio
Рассмотрим настройки, доступные в Android Studio. Закройте текущий проект, чтобы увидеть стартовое окно студии. В правой части нажмите на пункт Configure. В следующем окне выберите пункт Settings, чтобы оказаться в окне настроек студии. В левой части найдите пункт Build, Execution, Deployment, затем подпункт Build Tools, далее подпункт Gradle. По умолчанию, там всё чисто, только указан путь у Service directory path. Это были общие настройки.
Теперь рассмотрим настройки, относящиеся к проекту. Запустите любой проект в Android Studio. Выберите меню File | Settings. . Снова пройдитесь по пунктам Build, Execution, Deployment | Build Tools | Gradle. Вы увидите практически такое же окно с небольшими изменениями. Теперь поле Linked Gradle Projects не будет пустым, а также появятся дополнительные настройки. По умолчанию рекомендуют использовать Use default gradle wrapper.
Gradle Task
На правой стороне Android Studio имеется вертикальная вкладка Gradle, которую можно развернуть. Она содержит список задач (task), которая выполняет Gradle при работе с текущим проектом. Вы можете выделить любую из этих задач и запустить её двойным щелчком. Можно выделить несколько задач.
Узнать debug.keystore: MD5 и SHA1
Иногда требуется узнать значения debug.keystore: MD5 и SHA1. Обычно их получают через командную строку. Но это долго и неудобно, так как нужно помнить все аргументы. Есть способ проще. Открываем вкладку Gradle, нажимаем на кнопку со стрелками Refresh all Gradle Projects. Затем последовательно открываем элементы Tasks | android и запускаем команду signingReport. В нижнем окне Run увидите нужную информацию.
Variant: debug Config: debug Store: C:\Users\klimo_000\.android\debug.keystore Alias: AndroidDebugKey MD5: BA:6F:23:49:2D:9A:9C:0C:44:75:E0:94:59:07:E0:22 SHA1: 9D:51:F4:B8:4B:15:57:4B:EC:79:67:DC:F4:7C:5B:FB:02:C6:A2:F7 Valid until: Thursday, 1 December 2044
Gradle Console
Когда выполняется какая-то задача Gradle, то ход её выполнения можно увидеть в окне Gradle Console. Открыть её можно через вкладку Gradle Console в нижней правой части студии.
Terminal
Запускать задачи Gradle можно и в окне Terminal.
На панели инструментов имеется значок Sync Project with Gradle Files, которую следует использовать при редактировании файлов Gradle. Как правило, студия также выводит предупреждающее сообщение с ссылкой при изменении файла, которая делает ту же работу.
Добавление зависимостей через интерфейс студии
В статье описывался способ включения библиотеки в проект через редактирование файла build.gradle. Существует альтернативный вариант через настройки студии. Щёлкните правой кнопкой мыши на имени модуля (app) и выберите пункт Open Module Settings (быстрая клавиша F4). В правой части окна находятся вкладки, которые оказывают влияние на файл build.gradle. Например, вкладка Dependencies содержит подключаемые библиотеки.
Чтобы добавить новую зависимость, нажмите на значок с плюсом и выберите нужный вариант, например, Library dependency. Откроется список доступных библиотек из репозитория Maven.
Конфигурация в Android Studio Flamingo
Иногда студия начинает дурить, ругается на несовместимость каких версий библиотек, компиляторов и прочее. Вот и в версии Flamingo проект перестал собираться после какого-то обновления.
Мои настройки, после которого студия собрала проект.
// Project plugins < id 'com.android.application' version '8.0.1' apply false id 'com.android.library' version '8.0.1' apply false id 'org.jetbrains.kotlin.android' version '1.8.0' apply false >// Module compileOptions < sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 >kotlinOptions
Дополнительное чтение
В примере работы с PDF-файлами в папке assets использована операция запрета на сжатие файлов, которое происходит по умолчанию.
Задачи Gradle — теория для общего развития.