android 开发过程中涉及到的清除缓存操作
android 开发过程中会遇到很多缓存,常常使人摸不清楚,这里总结一下,希望下次遇到缓存相关问题能有所帮助。
Clean Project
点击 Clean Project
会执行 clean
、:app:generateDebugSources
task
其中执行 clean
时会找到根项目和所有子项目的 clean
task,所以一般来讲,会执行两个 task,:clean
和 :app:clean
。
他们区别在于:
:clean
删除 /build 文件夹:app:clean
删除 /app/build 文件夹
Invalidate Cache/Restart
invalidate Caches/Restart 会删除 android studio 的缓存。
详细内容可查看 idea 的官方文档
这个缓存指的是代码更改记录的缓存,即local history
,清除之后的效果:
- 无法查看
local history
- 所有项目都需要重新 build
这样看来,invalidate Caches / Restart 和 Rebuild Project 并没有什么区别。
删除 .idea/libraries
删除项目根目录下 .idea/libraries
目录的内容,或删除整个目录。
.idea/libraries
里的文件用来记录第三方库的 classes, javadoc 以及 sources 所对应的路径。
当更新依赖、切换git分支后,往往会出现某个库的代码报红的情况,这时候就是.idea/libraries
里的路径没有更新,所以找不到。
删除 /.idea/libraries
里的内容后,再次同步时,会重新生成。
删除 ~/.gradle/caches/transforms-1/files-1.1/
~/.gradle/caches/transforms-1/files-1.1/
是 gradle 缓存的库解压后的目录。
/.idea/libraries
中的文件指向的路径就是这里。
删除该目录或其中某个库后,当再次执行 generateDebugSources
时,不会重新下载,会从 modules-2
(下面要讲的)目录下寻找并解压。
删除 ~/.gradle/caches/modules-2/files-2.1/
~/.gradle/caches/modules-2/files-2.1/
是 gradle 缓存的库的源文件。
删除该目录或其中某个库后,当再次执行 generateDebugSources
时,会重新从网络下载。
/.idea/libraries 与 transforms-1 、modules-2
再理一遍它们的关系:
- 第一次执行
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。
android 开发过程中涉及到的清除缓存操作相关推荐
- android开发过程中遇到的问题
记录android开发过程中遇到的问题. 1.在一个xml中能否使用同一个include多次 http://www.apkbus.com/android-104152-1-1.html android ...
- android开发过程中一些遇到的问题
记录android开发过程中遇到的问题. 1.在一个xml中能否使用同一个include多次 http://www.apkbus.com/android-104152-1-1.html android ...
- Android开发过程中的部分经验总结
该文章为Android App 开发过程中遇到的常见问题总结,该总结也会持续不断的优化 完善当中.后续开发中一定会遇到各种各样的问题, 这些问题会酌情不断补充进来. 我将遇到的问题分为两大类,非技术问 ...
- Android开发过程中的一些基本常识
http://blog.csdn.net/ekeuy/article/details/42292589 本文介绍Android开发过程中的一些基本常识,大多是一些流程.专业术语和解决问题的方法等. 一 ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- 记录的Android开发过程中遇到的问题。
180508 更新 网上下载demo 本地studio版本和demo版本不一致处理方式 修改两处 1 项目的build.gradle 里面classpath 2修改项目目录下 gradle--> ...
- 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...
- 在ASP.NET Core中使用AOP来简化缓存操作
前言 关于缓存的使用,相信大家都是熟悉的不能再熟悉了,简单来说就是下面一句话. 优先从缓存中取数据,缓存中取不到再去数据库中取,取到了在扔进缓存中去. 然后我们就会看到项目中有类似这样的代码了. pu ...
- Android—开发过程中的相关注意事项
查看测试机显示的内容所对应的Activity 先在环境变量Path中添加sdk所在的路径. adb shell dumpsys activity 包名 | findstr ACTIVITY App打包 ...
最新文章
- PHP导入excel到mysql数据库完整代码附效果图
- backbone.js全栈开发
- 洪嘉振 计算多体系统动力学pdf_如何在多体动力学模型中评估齿轮啮合刚度
- android 实现SSL握手协商
- 支付宝支付php代码示例,Laravel使用支付宝进行支付的示例代码
- java如何开根号?
- 杰控连接mysql_杰控FameView在数据库连接和查询方面的应用
- 学习网站及编程电子书下载网站
- java字符串时间去掉秒_Java:当秒和毫秒均为0时,DateTimeFormatter无法解析时间字符串吗?...
- 将APP发布到各大官方网站的方法,如华为、360手机助手、小米等
- python离线语音转文字_利用Python和API轻松实现:语音转文字,文字转语音
- Tableau详细安装教程【踩坑】
- 如何批量隔行删除Excel行
- team viewer 远程控制计算机,使用TeamViewer让手机控制电脑的设置步骤
- html 制作人物模型,玩家制作《辐射4》人物模型图 惊艳无比让人叹服
- 轻松选择/复制word文档的整个章节的内容
- 工程地质计算机应用百度云,工程地质计算机应用
- 祛除体内湿气的最佳方法 713.html,祛除体内湿气七种有效泡水方法
- 使用jQuery调色器farbtastic--触发change事件
- MySQL自动删除指定时间以前的记录