标签:
android 开发过程中会遇到很多缓存,常常使人摸不清楚,这里总结一下,希望下次遇到缓存相关问题能有所帮助。
Clean Project
![在这里插入图片描述](
其中执行 clean 时会找到根项目和所有子项目的 clean task,所以一般来讲,会执行两个 task,:clean 和 :app:clean。
他们区别在于:
:clean 删除 /build 文件夹
:app:clean 删除 /app/build 文件夹
Invalidate Cache/Restart
![eefdb59d0bd0a180f75ab4c5357716a1.png](https://img-blog.csdnimg.cn/img_convert/eefdb59d0bd0a180f75ab4c5357716a1.png)
invalidate Caches/Restart 会删除 android studio 的缓存。
详细内容可查看 idea 的官方文档
这个缓存指的是代码更改记录的缓存,即local history,清除之后的效果:
无法查看 local history
所有项目都需要重新 build
这样看来,invalidate Caches / Restart 和 Rebuild Project 并没有什么区别。
删除 .idea/libraries
![71e3952b31524ccb8217d06b8b95ec73.png](https://img-blog.csdnimg.cn/img_convert/71e3952b31524ccb8217d06b8b95ec73.png)
删除项目根目录下 .idea/libraries 目录的内容,或删除整个目录。
.idea/libraries 里的文件用来记录第三方库的 classes, javadoc 以及 sources 所对应的路径。
当更新依赖、切换git分支后,往往会出现某个库的代码报红的情况,这时候就是.idea/libraries 里的路径没有更新,所以找不到。
删除 /.idea/libraries 里的内容后,再次同步时,会重新生成。
删除 ~/.gradle/caches/transforms-1/files-1.1/
![514e79a8fe7a61cde9cf40e66e00cdf0.png](https://img-blog.csdnimg.cn/img_convert/514e79a8fe7a61cde9cf40e66e00cdf0.png)
~/.gradle/caches/transforms-1/files-1.1/ 是 gradle 缓存的库解压后的目录。
/.idea/libraries 中的文件指向的路径就是这里。
删除该目录或其中某个库后,当再次执行 generateDebugSources 时,不会重新下载,会从 modules-2 (下面要讲的)目录下寻找并解压。
删除 ~/.gradle/caches/modules-2/files-2.1/
![659d5590f4b2571dbe8eb50a626a1e47.png](https://img-blog.csdnimg.cn/img_convert/659d5590f4b2571dbe8eb50a626a1e47.png)
~/.gradle/caches/modules-2/files-2.1/ 是 gradle 缓存的库的源文件。
删除该目录或其中某个库后,当再次执行 generateDebugSources 时,会重新从网络下载。
/.idea/libraries 与 transforms-1 、modules-2
![d068450d1ac4ac0af157736d72490270.png](https://img-blog.csdnimg.cn/img_convert/d068450d1ac4ac0af157736d72490270.png)
再理一遍它们的关系:
第一次执行 generateDebugSources task,会在 preBuild 时下载依赖库到 ~/.gradle/caches/modules-2/files-2.1/,并解压到 ~/.gradle/caches/transforms-1/files-1.1/
as 同步时,会生成 .idea/libraries,记录依赖库缓存的路径,即 ~/.gradle/caches/transforms-1/files-1.1/...
注:
android studio 的 make、clean、sync、build 等都会执行到 generateDebugSources task。
标签:
来源: https://blog.csdn.net/Gdeer/article/details/83049615