- Put your Android Studio on a diet
- How to make a deep clean of your Android Studio & Gradle junk files to fix up the mess.
- Clear your project directory
- Gradle cleaning
- Android Studio cleanup
- Extra cleaning
- Как очистить кеш gradle?
- Русские Блоги
- Очистить операции кэша, участвующие в процессе разработки Android
- Clean Project
- Invalidate Cache/Restart
- Удалить .idea / библиотеки
- Удалить
- Удалить
- /.idea/libraries and transforms-1, модули-2
- Android studio plugin to clear cache
- Idea 1 — Writing a Gradle script to clear cache:
- Idea 2 — Creation of a plugin:
Put your Android Studio on a diet
How to make a deep clean of your Android Studio & Gradle junk files to fix up the mess.
Do you know that when you’re updating your Android Studio, Gradle or even dependencies, some old files are still present on your machine and can waste some disk free space?
On our laptops, disk space is limited and clearing those files will make you gain a lot of free space available. Having too many junk files may also slow down your machine and your builds!
In my case, I was also having strange build errors or gradle sync failures when it was working on my colleague’s machine.
It was time to do some deep cleaning and put our Android Studio on a diet by following some simple steps.
Clear your project directory
- Obviously, try to clean your project from android studio : “ Build -> Clean Project”. This will clear your build folders.
- Clear the cache of Android Studio using “ File -> Invalidate Caches / Restart” choose “ Invalidate and restart option” and close Android Studio.
- Remove your .gradle directory from the root of your project. It contains some Gradle cache files.
- Delete also the .idea directory ( make a backup before). It contains some project configuration files.
- Restart Android Studio.
Big project directories can weight around 500MB to 1GB.
Gradle cleaning
Now let’s take a look at Gradle files. If none of the above suggestions fix your problem, try these:
/.gradle directory. This is the Gradle home directory, containing caches, daemons and wrappers files. This is a really huge one, mine was
Inside those directories, you’ll have sub-directories for each version of Gradle you’ve been using. So, the more projects you have with different Gradle versions, the more sub-directories you will have.
You can delete those 3 directories:
- caches: Gradle cache files.
- daemon: essentially logs files of Gradle daemons.
- wrapper: different distributions of Gradle downloaded on you machine.
Android Studio cleanup
- Go to your Android home, usually
/.android and clear build-cache and cache directories. There are few MB to free here (
100MB for me)
In the
/Library/ directories, you will find the Android Studio preferences files, settings and plugins. You can clear the directories of previous version of Android Studio (> 1GB per version of AS). Starting with version 3.3, Android Studio will propose you to remove them after an update.
Android SDK cleaning
On Android Studio, check the SDK Manager and remove the following items:
- Old SDKs you don’t use anymore. I guess you’ll not miss the Android 3.0 SDK files.
- Remove the emulators you don’t use as they’re quite heavy ( some GB).
- I recommend to keep “Sources for Android xx” items as it will allow you to check the source code of the SDK from a previous version of Android & help you debugging.
- On the SDK Tools tab, click on “Show Packages Details” and uncheck the old build-tools or NDK versions.
- Delete unused emulators using the AVD.
You can gain easily 10GB with these steps.
Extra cleaning
There is some extra stuff you can clean too:
- Your download directory: you may have downloaded a lot of GIFs, video, Android Studio binaries that you can remove.
- Clear your local git branches that have been merged (don’t remove the ones that you still need!).
- Delete all those photoshopped pictures of your colleagues ( ͡° ͜ʖ ͡°).
- Clear your recycle bin.
That’s it ! You’ve gained some precious disk space on your machine and maybe fixed some weird issues with your Android Studio.
I don’t recommend to do a full clean everyday, you’ll waste time and your build time will be quite longer so you’ll be less productive. Take it only as a “spring cleaning” ritual.
I hope it helped you, and don’t forget to follow the Marie Kondo mantra and only keep things that spark joy.
Источник
Как очистить кеш gradle?
Я пытаюсь использовать Android Studio, и в первый раз, когда я его загружаю, для компиляции требуется 45 минут. Если я не выхожу из приложения, все в порядке – каждая последующая компиляция/запуск приложение займет 45 секунд.
Я попытался проверить некоторые из моих кэшей: там есть папка .gradle/caches в моем домашнем каталоге, и она как 123 МБ большая.
Там также папка .gradle в моей папке проекта… один из taskArtifacts был похож на 200 МБ. Я боюсь просто случайно разжечь их обоих. Какие части папок безопасны для удаления?
Есть ли лучшее объяснение того, почему моя Android-студия навсегда запускает задачу gradle assemble при первой загрузке приложения?
Нужно ли также очищать кеш intellij?
Вы можете безопасно удалить всю папку .gradle расположенную в каталоге проекта. Он будет воссоздан каждый раз при выполнении задач. То же самое для .gradle в домашнем каталоге. Он также будет воссоздан, но все зависимости должны быть загружены снова – это довольно много времени.
Как я вижу, в различных местах в Интернете разработка приложений для Android идет довольно медленно, и люди жалуются на это. Понятия не имею, что именно причина – это, как это работает.
Я не думаю, что низкая производительность из-за больших папок. На самом деле они помогают ему быть быстрее.
Как отметил @Bradford20000 в комментариях, там может быть файл gradle.properties а также глобальные сценарии gradle, расположенные в $HOME/.gradle . В этом случае особое внимание должно быть уделено удалению содержимого этого каталога. Каталог кеша содержит кеш сборки Gradle . Так что если у вас есть какие-либо ошибки по этому поводу, вы можете удалить это. Это на .gradle/caches
Gradle кеш находится в
- В Windows: %USER_HOME%\.gradle/caches/
- На Mac/Unix: $HOME/.gradle/caches/
Вы можете перейти к этим каталогам и вручную удалить их или запустить
в системе Unix. Выполнение этой команды также приведет к загрузке зависимостей.
Примечание: Android Studio File | Invalidate Caches/Restart не очищает кэш сборки Android, поэтому вам придется очищать его отдельно.
На Mac или Linux:
Новейшее решение с использованием задачи Gradle
cleanBuildCache
доступно через плагин Android для Gradle, редакция 2.3.0 (февраль 2017 г.)
- Gradle 3.3 или выше.
- Инструменты сборки 25.0.0 или выше.
больше на:
Сборка кеша:
хранит определенные выходные данные, которые плагин Android генерирует при сборке вашего проекта (например, неупакованные AAR и предварительно удаленные зависимости). Ваши чистые сборки намного быстрее при использовании кэша, потому что система сборки может просто повторно использовать эти кэшированные файлы во время последующих сборок вместо того, чтобы создавать их заново. Проекты, использующие плагин Android 2.3.0 и выше, по умолчанию используют кэш сборки. Чтобы узнать больше, прочитайте статью Улучшение скорости сборки с помощью Build Cache.
Примечание. Задача cleanBuildCache недоступна, если отключить кэш сборки.
использование:
** gradle/gradlew – системные файлы, содержащие скрипты – пожалуйста, смотрите системную информацию о том, как выполнить скрипт
Будьте осторожны с демоном gradle, вы должны остановить его до очистки и повторно запустить gradle.
Остановить первого демона:
Очистить кеш, используя:
Запустите сборку еще раз
Демон gradle также создает множество больших текстовых файлов для каждого журнала сборки. Они хранятся здесь:
“XX” – это используемая версия gradle, например “4.4”, а “XXXX” – просто случайные числа, например “1234”.
Общий размер может вырасти до нескольких сотен МБ всего за несколько месяцев. Нет возможности отключить ведение журнала, и файлы не удаляются автоматически, и их на самом деле не нужно сохранять.
Но вы можете создать небольшую задачу для автоматического удаления и освободить много дискового пространства:
Добавьте это в ваше app/build.gradle :
Чтобы увидеть, какие файлы удаляются, вы можете увидеть выходные данные отладки в Android Studio → Вид → Инструмент Windows → Построить. Затем нажмите кнопку “Переключить просмотр” в этом окне, чтобы показать вывод текста.
Обратите внимание, что Gradle Sync или любая Gradle Build вызовут удаление файла.
Лучше всего было бы автоматически переместить файлы в корзину или, по крайней мере, сначала скопировать их в папку “Корзина”. Но я не знаю, как это сделать.
Кажется, здесь размещена неверная информация. некоторые люди сообщают о том, как очистить кэш cleanBuildCache Android (с помощью задачи cleanBuildCache ), но, похоже, не понимают, что указанный кэш не зависит от кэша сборки Gradle, AFAIK.
Насколько я понимаю, кеш Android предшествует (и вдохновлен) кешей Gradle, но я могу ошибаться. будет ли Android-строитель обновлен для использования кэша Gradle и удаления его, я не знаю.
Если вас интересует весь кеш IntelliJ. Ну вот.
Вам не нужно делать это вручную, пусть IntelliJ сделает это за вас. Зайдите в панель управления и попробуйте удалить ее. Он предлагает вам возможность удалить кэш, а также другие параметры. Подумайте дважды, прежде чем пытаться это сделать. Это может создать другие проблемы, такие как другие ответы, упомянутые по этому поводу.
Источник
Русские Блоги
Очистить операции кэша, участвующие в процессе разработки Android
Во время разработки android будет встречаться много кешей, что часто сбивает с толку, поэтому вот краткое изложение, я надеюсь, что в следующий раз, когда вы столкнетесь с проблемами, связанными с кешем, может быть полезно.
Clean Project
Нажмите на Clean Project Будет выполнять clean 、 :app:generateDebugSources task
Который выполняет clean Найдем корневой проект и все подпроекты clean задача, так что, в общем, две задачи будут выполнены, :clean и :app:clean 。
- :clean Удалить / создать папку
- :app:clean Удалить папку / app / build
Invalidate Cache/Restart
аннулировать Caches / Restart удалит кэш андроид студии.
Подробности можно найти в идееОфициальный документ
Этот кеш относится к кешу записей изменений кода, то есть local history Эффект после очистки:
- Не могу просмотреть local history
- Все проекты должны быть перестроены
Кажется, что нет никакой разницы между аннулированием Caches / Restart и Rebuild Project.
Удалить .idea / библиотеки
Удалить корневой каталог проекта .idea/libraries Содержимое каталога или удалить весь каталог.
.idea/libraries Файлы в нем используются для записи классов, javadoc и источников, соответствующих сторонним библиотекам.
После обновления зависимостей и переключения ветки git часто случается, что код определенной библиотеки выдает красный цвет. .idea/libraries Путь внутри не был обновлен, поэтому его не удалось найти.
Удалить /.idea/libraries После повторной синхронизации содержимого они будут восстановлены.
Удалить
/ .gradle / caches / transforms-1 / files-1.1 /
/.gradle/caches/transforms-1/files-1.1/ Это каталог, в который разархивированы кэшированные библиотеки.
/.idea/libraries Путь к файлу в здесь.
После удаления каталога или одной из библиотек при повторном выполнении generateDebugSources Не будет перезагружать когда modules-2 Найдите (объясните ниже) каталог и распакуйте его.
Удалить
/ .gradle / caches / modules-2 / files-2.1 /
/.gradle/caches/modules-2/files-2.1/ Является ли исходный файл для библиотеки кэширования Gradle.
После удаления каталога или одной из библиотек при повторном выполнении generateDebugSources , Он снова будет загружен из сети.
/.idea/libraries and transforms-1, модули-2
Давайте снова посмотрим на их отношения:
- Первое исполнение generateDebugSources задача, будет в preBuild При загрузке зависимых библиотек в
/.gradle/caches/modules-2/files-2.1/ И распакуйте его, чтобы
/.gradle/caches/transforms-1/files-1.1/
как генерируется при синхронизации .idea/libraries Запишите путь кеша зависимой библиотеки, то есть
Примечание:
make, clean, sync, build и т. д. для Android Studio будут выполнены generateDebugSources task。
Источник
Android studio plugin to clear cache
If the user needs to delete any library cache of a project, they have to traverse through the . gradle/cache/modules-2/files-2.1 and . gradle/cache/modules-2/metadata-x.xx paths to delete the cache. It really consumes much time of the user. This kind of situations will arise when the project consumes internal libraries with more frequent library release on the same version.
To avoid this manual deletion process, multiple ideas raised in my mind to automate the deletion of the cached library.
Idea 1 — Writing a Gradle script to clear cache:
I have written a Gradle script to automate the removal of caches (specific cache folders of our project that we manually remove). Below are the steps to add the script in your project.
- Create a new folder inside your app( In my case I named it as scripts )
- Create a .gradle file inside this folder ( In my case I named it as clearcache.gradle )
- Add the following script inside the newly created .gradle file
4. Add the below line to your app’s build.gradle
Now the script is ready. So whenever you want to delete the cache folders execute the following command in your terminal.
For Windows users:
This idea exhibited few disadvantages
- The user has to do these steps at least one time.
- Whenever the user wants to delete the library cache, they have to specify the package prefix in the Gradle script before running the script.
- No way for the user to select the library cache which is to be deleted.
- And this has to be done for every project.
To overcome these disadvantages, there comes another idea of creating a plugin.
Idea 2 — Creation of a plugin:
Created a plugin which takes care of the deleting library cache. This plugin provides a User Interface where the user has the option to select and delete the library cache they want. Used IntelliJ IDEA Community Edition 2018.1.6 to build this plugin which is compatible with Android Studio Version 3.2+.
I am not going to explain the steps, have a look at Marcos Holgado’s Write an Android Studio Plugin Part 1: Creating a basic plugin . This will give you an idea to create a plugin and also have a look at my project at GitHub to get an idea about the classes that I have written.
Источник