【Android】【IDE】AndroidStudio使用本地Gradle最佳方案

Gradle相关配置

一个Android项目中,以AndroidStudio3.6为例,和Gradle相关的配置大概有以下地方
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

各个选项和文件的作用

现在介绍下图中选项和文件夹的作用,了解原理,大家才知道怎么做,为什么这么做

  • 1:指定Gradle仓库的本地缓存位置,即下载的库/Jar包等资源存放的位置。不同版本的Gradle主程序,不同版本的Gradle编译插件,在仓库中存放资源的位置都不同。所以大家如果修改了Gradle主程序/插件的版本号,就会重新下载资源,耗时非常长。如果导入别人的工程,和本地常用的Gradle版本号不一样,也会重新下载,耗时很长
  • 2:使用本地Gradle,或使用工程配置文件中的Gradle,如果使用本地Gradle,需要设置Gradle主程序所在路径,如果使用工程配置文件中的Gradle,则会去gradle/wrapper/gradle-wrapper.properties(3)中去查找Gradle版本和下载地址
  • 3:展开文件夹3,我们可以发现一个gradle-wrapper.properties文件,里面配置了Gradle的版本和下载路径。如果我们指定了使用工程配置的Gradle,但没有找到这个文件夹,那么编译是会报错的。这个文件夹里面东西很简单,可以手动修改,丢失的时候直接从其它工程拷过来即可
  • 4:build.gradle文件是整个工程的顶级Gradle配置文件,里面配置了依赖仓库的远程地址,使用到的Gradle编译插件,以及插件版本。由于Gradle主程序仅仅是一个独立的程序包,我们要使用Gradle完成不同的任务,就需要使用不同的Gradle编译插件,这些插件会调用Gradle命令来完成事先定义好的编译任务
  • 5:这个文件夹是Gradle脚本编译时生成的中间文件夹,可以删除

传统Gradle离线方案的不足之处

网上流传的关于Gradle的离线方案一般有以下几种

  • 通过选项1修改仓库的本地缓存位置:这个操作允许Gradle先检查本地缓存,如果本地存在,则不再去网络上查询。由于95%以上的用户并不会去修改默认配置,缓存都放在默认位置,并没有必要到其它位置去查找资源,因此这个功能对大多人并没有用。
  • 修改仓库本地缓存位置这种方案一般适合以下几种情景:①以前改过仓库默认位置,想要直接使用以前下载过的资源。②换电脑,从别的电脑上将本地仓库直接拷过来。③机构禁网,统一使用本地仓库。④由于杀毒软件限制了C盘写入,或频繁监控文件读写,造成C盘无法写入或写入效率慢,需要将仓库设置到其它位置。
  • 通过选项2使用本地的Gradle主程序:这个操作允许直接使用本地的Gradle主程序,节省了从网络下载Gradle的时间。不过由于AndroidStudio设计上的不完善,这个功能的使用体验不是很好。这个功能是属于工程范围内的配置选项,不是整个IDE的默认配置选项。如果我们新建一个新的工程,或者打开一个别人的工程时,AndroidStudio默认会使用gradle/wrapper/gradle-wrapper.properties中的配置,而且会立刻下载对应的Gradle包,无法取消,不会给我们选择使用哪个Gradle的机会,就开始编译了。显然,大多人是希望所有工程都使用本地Gradle主程序,这个配置应该是对所有工程生效的,尤其是新工程,已经可以正常的运行的工程,很少有人会再去修改Gradle版本。再不济,首次打开工程时,也应该给我们一个选择的机会,而不是一进来就下载Gradle,无法取消,必须修改配置后强制重启才能让配置生效

统一使用本地Gradle最佳实践

  • 不修改选项1和选项2,使用默认的仓库缓存位置,使用每个工程自己指定的Gradle主程序
  • 下载一个最新的Gradle主程序,存储到本地,供以后所有项目使用 官网下载地址 >> Gradle 6.2.1
  • 修改gradle-wrapper.properties配置,用我们本地的发布包替换网络发布包,将Gradle主程序的版本号和地址替换成我们刚才下载好的Zip包所在本地位置,以后就不会去网络寻找Gradle主程序了,而是会使用本地包
  • 修改build.gradle脚本,修改Gradle编译插件的版本号至最新,一般高版本的主程序对编译插件的版本也有要求
  • 打开新工程之前,用旧项目中的gradle文件夹(3)和build.gradle文件(4)直接复制替换新工程中的文件,这样新工程就会使用和之前一样的Gradle主程序和编译插件了,就不用再去下载。这样不但节省了下载时间,而且还节省了磁盘存储空间,Gradle的仓库缓存用久了,体积是非常恐怖的
  • 记住,要先替换文件,再打开工程,因为AndroidStudio一打开工程就会立刻编译,编译的时候再替换就会非常卡,而且要重启才能生效。经常还会出现编译中无法中止,软件又无法立刻重启的问题,非常麻烦
  • 新建工程时,我们可以找个旧工程复制一份,然后在setting.gradle里将旧的模块都移除,其它的Gradle等配置文件都保留,这样就可以快速创建一个新工程。按照AndroidStudio的指引新建工程比较繁琐,而且进去后也会出现自动下载编译的情况,默认的模块代码可能也是多余的,不如在旧工程上的基础上直接修改来创建新工程
发布了442 篇原创文章 · 获赞 45 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/104533766