Android studio очистить кэш
Я пытаюсь использовать Android Studio, и при первой загрузке на компиляцию уходит около 45 МИНУТ . Если я не закрываю приложение, ничего страшного - каждая последующая компиляция / запуск приложения займет около 45 секунд.
Я попытался проверить некоторые из своих кешей: .gradle/caches в моем домашнем каталоге есть папка, которая содержит 123 МБ.
В .gradle папке моего проекта также есть папка . одна из них taskArtifacts была размером 200 МБ. Я боюсь просто случайно убить их обоих. Какие части папок безопасно удалить?
Есть ли лучшее объяснение того, почему моя Android Studio всегда запускает gradle assemble задачу при первой загрузке приложения?
Должен ли я также очистить кэш intellij?
Позже я узнал, что 45 минут для компиляции, потому что я изменил настройки на Compiler -> Gradle нет Use in-process build . не имеет ничего общего с кэшем
@ david-t Не могли бы вы указать местонахождение этой опции? У меня есть версия 3.3.1, но я не могу найти ее в Предпочтения - Сборка, Выполнение, Развертывание
Как отметил @ Bradford20000 в комментариях, там может быть gradle.properties файл, а также глобальные скрипты Gradle $HOME/.gradle . В этом случае особое внимание должно быть уделено удалению содержимого этого каталога.
.gradle/caches Каталог содержит Gradle кэш сборки. Так что, если у вас есть ошибка в кеше сборки, вы можете удалить ее.
Стоит отметить, что если у вас есть файл gradle.properties в папке .gradle в вашем домашнем каталоге, вы не захотите удалять всю папку. Как правило, простого удаления .gradle / caches достаточно, чтобы Gradle перезагружал все зависимости.
с каждым обновлением до Android Studio сборка gradle становится все медленнее и медленнее. Почему при развертывании на устройстве прекращают работу приложения, а затем снова развертывают (не касаясь кода вообще!), Что Android Studio снова требуется 2 минуты для сборки и развертывания. Это чертовски круто.
В Android Studio для очистки системных кешей: в главном меню Android stdio выберите Файл | Invalidate Caches / Restart.and меню сборки> чистый проект
Gradle кеш находится в
- В Windows: %USER_HOME%\.gradle/caches/
- На Mac / Unix: ~/.gradle/caches/
Вы можете перейти к этим каталогам и вручную удалить их или запустить
в системе Unix. Выполнение этой команды также приведет к загрузке зависимостей.
Примечание: файл Android Studio | Invalidate Caches / Restart не очищает кэш сборки Android, поэтому вам придется очищать его отдельно.
На Mac или Linux:
Это не очистило кеш зависимостей maven. Я удалил библиотеку из репозитория maven и сделал недействительными кэши Android Studio, но проект все еще строится. Это означает, что кэш-память для зависимости maven не очищается.
Способ, который вы описали, будет очищать кэш только от основного проекта и его зависимостей от проекта, но зависимости библиотеки не затрагиваются. Вы описали, как очистить кэш AndroidStudio, но не кэш Gradle.
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:
For Mac 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.
Background
Build cache
Stores certain outputs that the Android plugin generates when building your project (such as unpackaged AARs and pre-dexed remote dependencies). Your clean builds are much faster while using the cache because the build system can simply reuse those cached files during subsequent builds, instead of recreating them. Projects using Android plugin 2.3.0 and higher use the build cache by default. To learn more, read Improve Build Speed with Build Cache.
NOTE: The cleanBuildCache task is not available if you disable the build cache.
UPDATE 2
This article Put your Android Studio on a diet gives more details on Android Studio caches
This did not clear the cache of a maven dependency. I deleted the library from the maven repository and invalidated the Android Studio caches, but the project still builds. This means the gradle cache for the maven dependency is not cleared.
The way you described will only clean cache from the main project and it's project dependencies, but the library dependencies are intact. You described how to clean AndroidStudio's cache, but not gradle's cache.
you probably don't want to dump the entire cache dir, just the build-cache. use rm -rf ~/.gradle/caches/build-cache-1 instead. if you need to have gradle re download dependencies invoke the build with --refresh-dependencies
As @Bradford20000 pointed out in the comments, there might be a gradle.properties file as well as global gradle scripts located under $HOME/.gradle . In such case special attention must be paid when deleting the content of this directory.
The .gradle/caches directory holds the Gradle build cache. So if you have any error about build cache, you can delete it.
The --no-build-cache option will run gradle without the build cache.
Daemon on MS Windows If you're on Windows, you'll need to kill the daemon before it allows you to clear those directories. See Kill all Gradle Daemons Regardless Version? for more info.
One thing to note is that if you have a gradle.properties file in your .gradle folder in your home directory, you will not want to delete the whole folder. Typically, just deleting .gradle/caches is enough to get Gradle to redownload all dependencies.
with every update to Android Studio, gradle builds seem to get slower and slower. Why is it that when I deploy to device, stop app running, and then deploy again (without touching any code at all!) that Android studio once again takes 2 minutes to make a build and deploy it. It's friggin nutz.
On Android Studio to clean out the system caches: Android stdio main menu, choose File | Invalidate Caches/Restart.and build menu >clean project
РЕДАКТИРОВАТЬ: cleanBuildCache больше не работает
плагин Android Gradle теперь использует функцию кэширования Gradle
Очистить кеш
Очистите каталог кеша, чтобы избежать попаданий из предыдущих сборок
смотрите здесь (включая правки).
ОБЗОРНАЯ ИНФОРМАЦИЯ:
Новейшее решение с использованием задачи Gradle
cleanBuildCache
доступно через плагин Android для Gradle, редакция 2.3.0 (февраль 2017 г.)
- Gradle 3.3 или выше.
- Инструменты сборки 25.0.0 или выше.
больше на:
Сборка кеша:
хранит определенные выходные данные, которые плагин Android генерирует при сборке проекта (например, распакованные AAR и предварительно удаленные зависимости). Ваши чистые сборки намного быстрее при использовании кэша, потому что система сборки может просто повторно использовать эти кэшированные файлы во время последующих сборок, вместо того, чтобы создавать их заново. Проекты, использующие плагин Android 2.3.0 и выше, по умолчанию используют кэш сборки. Чтобы узнать больше, прочитайте статью Улучшение скорости сборки с помощью Build Cache.
Примечание. Задача cleanBuildCache недоступна, если отключить кэш сборки.
использование:
Android Studio / IntelliJ
** gradle / gradlew - системные файлы, содержащие скрипты - пожалуйста, смотрите системную информацию о том, как выполнить скрипт
Будьте осторожны с демоном gradle, вы должны остановить его до очистки и перезапустить gradle.
Остановите первый демон:
Очистить кеш, используя:
Запустите снова ваш сборник
Если ваш демон Gradle запущен, ваши кэши Gradle будут использоваться. Следовательно, ваша ОС скорее всего предотвратит удаление.
Демон gradle также создает множество больших текстовых файлов для каждого журнала сборки. Они хранятся здесь:
«XX» - это используемая версия gradle, например «4.4», а «XXXX» - просто случайные числа, например «1234».
Общий размер может вырасти до нескольких сотен МБ всего за несколько месяцев . Нет возможности отключить ведение журнала, и файлы не удаляются автоматически, и их не нужно сохранять.
Но вы можете создать небольшую задачу для автоматического удаления и освободить много дискового пространства:
Добавьте это к вашему app/build.gradle :
Чтобы увидеть, какие файлы удаляются, вы можете увидеть выходные данные отладки в Android Studio -> Вид -> Инструмент Windows -> Построить. Затем нажмите кнопку «Переключить вид» в этом окне, чтобы показать вывод текста.
Обратите внимание, что Gradle Sync или любая Gradle Build вызовут удаление файла.
Лучшим способом было бы автоматически переместить файлы в корзину или, по крайней мере, сначала скопировать их в папку «Корзина». Но я не знаю, как это сделать.
Кажется, здесь размещена неверная информация. некоторые люди сообщают о том, как очистить кэш сборщика Android (с заданием cleanBuildCache ), но, похоже, не понимают, что указанный кэш не зависит от кеша сборки Gradle, AFAIK.
Насколько я понимаю, кэш Android предшествует (и вдохновлен) кешей Gradle, но я могу ошибаться. Будет ли Android-строитель обновлен, чтобы использовать кеш Gradle и удалить свой собственный, я не знаю.
РЕДАКТИРОВАТЬ: кэш Android Builder устарел и был удален. плагин Android Gradle теперь использует кеш сборки Gradle. для управления этим кешем вы должны теперь взаимодействовать с общей инфраструктурой кеша Gradle.
СОВЕТ: ищите онлайн-справку по кешу Gradle, не упоминая ключевое слово «android», чтобы получить справку для актуального кеша.
РЕДАКТИРОВАТЬ 2: из-за вопроса tir38 в комментарии ниже, я тестирую с помощью плагина Android Gradle v3.4.2 проекта. кэширование gradle включено org.gradle.caching=true в gradle.properties . я делаю пару clean build и во второй раз большинство задач показывают FROM-CACHE как их статус, показывая, что кеш работает.
Удивительно, но у меня есть cleanBuildCache простая задача и /.android/build-cache/3.4.2/ каталог, намекающий на наличие кеша Android Builder.
я исполняю cleanBuildCache и 3.4.2/ каталог исчез. затем я делаю другое clean build :
- ничего не изменилось: большинство задач отображается в FROM-CACHE виде своего состояния, а сборка завершена на скорости кэш-памяти.
- 3.4.2/ каталог заново.
- 3.4.2/ каталог пуст (за исключением 2 скрытые, файлы нулевой длины маркера).
выводы:
- кэширование всех обычных задач Android Builder выполняется Gradle.
- выполнение cleanBuildCache не очищает и никак не влияет на кэш сборки.
- там все еще есть кэш Android Builder. это может быть рудиментарный код, который команда разработчиков Android забыла удалить, или он может фактически кэшировать что-то странное, что по какой-либо причине не может или не может быть перенесено на использование кэша Gradle. (вариант «не может» быть очень улучшаемым, ИМХО.)
Затем я отключаю кеш Gradle, удаляя org.gradle.caching=true из него, gradle.properties и я пробую пару clean build :
- сборки медленные.
- все задачи показывают свой статус как выполненный и не кэшированный или не обновленный.
- 3.4.2/ каталог продолжает быть пустым.
больше выводов:
- в случае сбоя кэша Gradle отсутствует резервная копия кэша Android-компоновщика.
- кеш Android Builder, по крайней мере для общих задач, действительно был устранен, как я уже говорил ранее.
- соответствующий документ Android содержит устаревшую информацию. в частности, кеш не включен по умолчанию, как указано там, и кеш Gradle должен быть включен вручную.
РЕДАКТИРОВАТЬ 3: пользователь tir38 подтвердил, что кэш Android Builder устарел и был удален с этой находкой . tir38 также создал эту проблему . Спасибо!
Можете ли вы указать, где вы читали, что кэш Android Builder теперь устарел и что вместо него теперь используется кэш сборки Gradle?
Большое спасибо за ваши усердные исследования. Вы подтверждаете большую часть того, что я видел в тестировании тоже: 1. пустой 3.4.2/ каталог. 2. Наличие cleanBuildCache задачи. 3. Отключение кэша сборки Gradle и перестройка не показали никаких признаков того, что задачи Android ударяют о кеш.
I'm trying to use Android Studio, and the first time I boot it up, it takes like 45 MINUTES to compile. If I don't quit the application, it is okay - each subsequent compilation/running the app will take around 45 seconds.
I've tried to check some of my caches: there's a .gradle/caches folder in my home directory, and it's contains 123 MB.
There's also a .gradle folder in my project folder. one of the taskArtifacts was like 200 MB. I'm scared to just randomly nuke them both. What parts of the folders are safe to delete?
Is there a better explanation for why my Android Studio is taking forever to run the gradle assemble task upon first time loading the application?
Do I also have to clear the intellij cache too?
i found out later that the 45 minutes to compile is because i changed the settings for Compiler -> Gradle to not Use in-process build . nothing to do with the cache
None of the answers helped. Turns out some images got corrupted. Opening the images in Windows Explorer quickly shows you which images are corrupted (the ones which it doesn't load previews for). Replaced those images and voila!
@david-t Could you point to this option's whereabouts? I have version 3.3.1 but cannot find it under Preferences - Build, Execution, Deployment
=== OBSOLETE INFO ===
Newest solution using Gradle task:
Available via Android plugin for Gradle, revision 2.3.0 (February 2017)
- Gradle 3.3 or higher.
- Build Tools 25.0.0 or higher.
12 Answers 12
Gradle cache is located at
- On Windows: %USERPROFILE%\.gradle\caches
- On Mac / UNIX: ~/.gradle/caches/
You can browse to these directory and manually delete it or run
on UNIX system. Run this command will also force to download dependencies.
UPDATE
cleanBuildCache no longer works.
TO CLEAR CACHE
Clean the cache directory to avoid any hits from previous builds
Other digressions: see here (including edits).
USAGE
Android Studio / IntelliJ:
NOTE: gradle / gradlew are system specific files containing scripts. Please see the related system info how to execute the scripts:
Take care with gradle daemon, you have to stop it before clear and re-run gradle.
Stop first daemon:
Clean cache using:
Run again you compilation
If your gradle daemon is running your gradle caches will be in use. Consequently, your OS will likely prevent the deletion.
After hours of struggle. THANK MATE. I actually belive that ./gradlew --stop this line did everything.
This eliminated the errors for me after I ran both commands in the IDE's project's instance of the terminal
"X.X" is the gradle version in use, like "4.4", and "XXXX" are just random numbers, like "1234".
The total size can grow to several hundred MB in just a few months. There is no way to disable the logging, and the files are not automatically deleted and they do not really need to be retained.
But you can create a small gradle task to automatically delete them, and free up lots of disk space:
Add this to your app/build.gradle :
To see which files are being deleted, you can see the debug output in Android Studio -> View -> Tool Windows -> Build. Then press "Toggle View" button on that window to show the text output.
Note that a Gradle Sync or any Gradle Build will trigger the file deletions.
A better way would be to automatically move the files to the Trash/Recycle Bin, or at least copy them to a Trash folder first. But I don't know how to do that.
there seems to be incorrect info posted here. some people report on how to clear the Android builder cache (with task cleanBuildCache ) but do not seem to realize that said cache is independent of Gradle's build cache, AFAIK.
my understanding is that Android's cache predates (and inspired) Gradle's, but i could be wrong. whether the Android builder will be/was updated to use Gradle's cache and retire its own, i do not know.
EDIT: the Android builder cache is obsolete and has been eliminated. the Android Gradle plugin now uses Gradle's build cache instead. to control this cache you must now interact with Gradle's generic cache infrastructure.
TIP: search for Gradle's cache help online without mentioning the keyword 'android' to get help for the currently relevant cache.
EDIT 2: due to tir38's question in a comment below, i am testing using an Android Gradle plugin v3.4.2 project. the gradle cache is enabled by org.gradle.caching=true in gradle.properties . i do a couple of clean build and the second time most tasks show FROM-CACHE as their status, showing that the cache is working.
surprisingly, i have a cleanBuildCache gradle task and a /.android/build-cache/3.4.2/ directory, both hinting the existence of an Android builder cache.
i execute cleanBuildCache and the 3.4.2/ directory is gone. next i do another clean build :
- nothing changed: most tasks show FROM-CACHE as their status and the build completed at cache-enabled speeds.
- the 3.4.2/ directory is recreated.
- the 3.4.2/ directory is empty (save for 2 hidden, zero length marker files).
conclusions:
- caching of all normal Android builder tasks is handled by Gradle.
- executing cleanBuildCache does not clear or affect the build cache in any way.
- there is still an Android builder cache there. this could be vestigial code that the Android build team forgot to remove, or it could actually cache something strange that for whatever reason has not or cannot be ported to using the Gradle cache. (the 'cannot' option being highly improvable, IMHO.)
next, i disable the Gradle cache by removing org.gradle.caching=true from gradle.properties and i try a couple of clean build :
- the builds are slow.
- all tasks show their status as being executed and not cached or up to date.
- the 3.4.2/ directory continues to be empty.
more conclusions:
- there is no Android builder cache fallback for when the Gradle cache fails to hit.
- the Android builder cache, at least for common tasks, has indeed been eliminated as i stated before.
- the relevant android doc contains outdated info. in particular the cache is not enabled by default as stated there, and the Gradle cache has to be enabled manually.
EDIT 3: user tir38 confirmed that the Android builder cache is obsolete and has been eliminated with this find. tir38 also created this issue. thanks!
Я пытаюсь использовать Android Studio, и при первой загрузке для компиляции требуется 45 минут. Если я не выйду из приложения, все в порядке - каждая последующая компиляция/запуск приложения займет около 45 секунд.
Я попытался проверить некоторые из моих тайников: есть .gradle/caches папка в моем домашнем каталоге, и это похоже на 123 MB большой.
там же .gradle папка в папке проекта. один из taskArtifacts было похоже на 200 МБ. Я боюсь просто наугад взорвать их обоих. Какие части папок безопасны для удаления?
есть ли лучшее объяснение тому, почему моя Android Studio берет навсегда, чтобы запустить gradle assemble задача при первой загрузке приложения?
должен ли я также очистить кэш intellij?
вы можете безопасно удалить все .gradle папка, расположенная в каталоге проекта. Он будет воссоздаваться каждый раз при выполнении задач. То же самое для .gradle в разделе Домашний каталог. Он также будет воссоздан, но все зависимости должны быть загружены снова - это довольно много времени.
как я вижу в разных местах через веб-gradle для разработки android довольно медленно, и люди жалуются на это. Понятия не имею, что такое причина-вот как это завод.
Я не думаю, что низкая производительность из-за больших папок. На самом деле они помогают ему быть быстрее.
как @Bradford20000 указал в комментариях, может быть gradle.properties файл, а также глобальные скрипты gradle, расположенные под $HOME/.gradle . В таком случае особое внимание необходимо обратить при удалении содержимого этого каталога. Каталог кэша содержит Gradle построить кэш. Поэтому, если у вас есть какая-либо ошибка, вы можете удалить ее. Это .gradle/caches
вы можете сделать это на Android Studio
обновление: выше метод очистит кэш Android Studio, а не ш кэш. ш кэш находится в
- На Windows: %USER_HOME%\.gradle/caches/
- На Mac / Unix: $HOME/.gradle/caches/
вы можете перейти к этим каталогам и вручную удалить его или запустить
на система UNIX. Запуск этой команды также заставит загружать зависимости.
Примечание: Android Studio Файл | Аннулировать Кэш/Перезагрузить не очищает кэш сборки Android, поэтому вам придется очищать его отдельно.
на Mac или Linux:
новейшее решение с использованием задача gradle
cleanBuildCache
доступно через Android плагин для Gradle, версия 2.3.0 (февраль 2017)
- Gradle в 3.3 или выше.
- Build Tools 25.0.0 или выше.
больше at:
построить кэша:
хранит определенные выходы, которые плагин Android генерирует при создании проекта (например, неупакованные AARs и предварительно дексед удаленных зависимостей). Чистые сборки выполняются намного быстрее при использовании кэша, так как система сборки может просто повторно использовать кэшированные файлы во время последующие сборки вместо их воссоздания. Проекты, использующие Android plugin 2.3.0 и выше, по умолчанию используют кэш сборки. Чтобы узнать больше, прочитайте улучшение скорости сборки с помощью кэша сборки.
Примечание: задача cleanBuildCache недоступна, если отключить кэш сборки.
использование:
Android Studio / IntelliJ
* * gradle/gradlew система конкретные файлы, содержащие скрипты - пожалуйста, смотрите информацию о системе, как выполнить скрипт
демон gradle также создает множество больших текстовых файлов каждого журнала сборки. Они хранятся здесь:
"X. X" - это используемая версия gradle, например" 4.4", а" XXXX "- это просто случайные числа, такие как"1234".
общий размер может вырасти до нескольких сотен МБ всего за несколько месяцев. Нет способа отключить ведение журнала, и файлы не удаляются автоматически, и они на самом деле не нужно сохранить.
но вы можете создать small gradle задача автоматически удалить их, и освободить много места на диске:
добавьте это в ваш app/build.gradle :
чтобы увидеть, какие файлы удаляются, вы можете увидеть вывод отладки в Android Studio - > View - > Tool Windows - > Build. Затем нажмите кнопку "Toggle View" в этом окне, чтобы отобразить вывод текста.
обратите внимание, что Gradle Sync или любой Gradle Сборка вызовет удаление файлов.
лучшим способом было бы автоматически переместить файлы в корзину / корзину или, по крайней мере, скопировать их в папку корзины. Но я не знаю как это сделать.
у меня есть WebView в одном из моих действий, и когда он загружает веб-страницу, страница собирает некоторые фоновые данные из Facebook.
то, что я вижу, хотя, страница, отображаемая в приложении, одинакова при каждом открытии и обновлении приложения.
Я попытался настроить WebView не использовать кэш и очистить кэш и историю WebView.
Я также следовал предложению здесь:Как очистить кэш на Объект WebView?
но ничего из этого не работает, у кого-нибудь есть идеи как я могу преодолеть эту проблему, потому что это жизненно важная часть моего заявления.
поэтому я реализовал первое предложение (хотя изменил код, чтобы быть рекурсивным)
однако это все еще не изменило то, что отображается на странице. В моем настольном браузере я получаю другой html-код на веб-страницу, созданную в WebView, поэтому я знаю, что WebView должен кэшироваться где-то.
на IRC-канале мне указали на исправление для удаления кэширования из URL-соединения, но пока не видно, как применить его к WebView.
Если я удалю свое приложение и переустановлю его, я смогу обновить веб-страницу, т. е. не кэшированную версию. Основная проблема заключается в том, что изменения вносятся в ссылки на веб-странице, поэтому передняя часть веб-страницы полностью не изменяется.
отредактированный фрагмент кода выше, опубликованный Gaunt Face, содержит ошибку в том, что если каталог не удается удалить, потому что один из его файлов не может быть удален, код будет продолжать повторную попытку в бесконечном цикле. Я переписал его, чтобы быть действительно рекурсивным, и добавил параметр numDays, чтобы вы могли контролировать, сколько лет должны быть файлы, которые обрезаны:
надеюсь, пригодится другим людям:)
Я нашел еще элегантное и простое решение для очистки кэша
Я пытался выяснить, как очистить кэш, но все, что мы могли сделать из вышеупомянутых методов, это удалить локальные файлы, но он никогда не очищает ОЗУ.
API clearCache, освобождает ОЗУ, используемую webview, и, следовательно, санкционирует, что страница снова загружается.
Я нашел исправление, которое вы искали:
по какой-то причине Android делает плохой кэш url, который он продолжает возвращать случайно вместо новых данных, которые вам нужны. Конечно, вы можете просто удалить записи из БД, но в моем случае я пытаюсь получить доступ только к одному URL-адресу, поэтому сдуть всю БД проще.
и не волнуйтесь, эти DBs просто связаны с вашим приложением, поэтому вы не очищаете кэш всего телефона.
чтобы очистить все кэши webview во время выхода из приложения:
для Lollipop и выше:
Это должно очистить кэш приложений, который должен быть там, где ваш кэш webview
очистить историю, просто:
убедитесь, что вы используете метод ниже, чтобы данные формы не отображались как autopop при нажатии на поля ввода.
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 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.
UPDATE
NOTE: Android Studio's File > Invalidate Caches / Restart doesn't clear the Android build cache, so you'll have to clean it separately.
Читайте также: