1 问题(1) 当项目中引用的第三方模块太多,打开Android Studio的时候就会非常慢,提示一直在解决模块依赖,点击sync按钮同步第三方代码的时候也是巨慢,慢的原因是:
(2) Android Studio为什么编译很慢?
2 maven依赖是啥?svn用来管理文本文件,但它不擅长管理二进制文件,这个时候maven就登场了,简单点说,maven就是管理二进制文件的svn,这样说应该可以理解了吧。一般我们使用别人的库需要下载jar文件然后依赖到我们的工程,现在作者将jar文件发布到公共的maven仓库中,在gradle中我们只需要简单的像下面这样:
同步代码时,Android Studio就会自动去下载作者发布的jar(或者aar)文件,如果作者发布了新的版本,则只需要简单的修改一下后面的版本号即可,不要这个库,直接删掉这行代码即可,是不是瞬间觉得相当方便啊 3 解决方法方法一:
方法二:
方法三:
方法四:
4 直接引用aar文件的方法Android Studio卡的主要原因是gradle去下载maven仓库中的库文件时速度太慢,那么我们直接去maven仓库将第三方库文件下载回来,引用到项目中就可以解决问题了。然而Github上很多项目只给出了maven依赖的使用方法,压根没有给出jar或aar文件的地址,我们以Android上比较有名的facebook的图片加载框架fresco为例: 在fresco的Github主页上只给出了下面这种使用方法:
怎么办呢?难道只能使用maven依赖去慢慢下载吗?如果你搭建过maven服务器或者发布过自己写的框架,你就知道,其实我们最终使用的还是别人打包好的jar或aar文件,上面这行字符串只不过是指向这个aar文件而已,最终gradle还是要把aar文件下载回来,那么问题来了,这个文件究竟在哪儿呢?下面我们就找出这个文件: 选择第一个,我们就进入了maven中央仓库,也就是下面的网址 (2) 搜索fresco,一般关键字就是库的名称啦 对比一下maven依赖字符串com.facebook.fresco,所以选择第一个 可以看到有很多版本,你会发现上面的maven字符串后面的版本号是不是和这里的版本号吻合了,其实maven依赖字符串就是告诉gradle怎么去找这个库文件。点击红色框中最新版本0.9.0 在写这篇文章的时候,最新版是0.9.0,后来这个网站改版了,aar文件下载方法有点变化,所以我更新了下面这一段,这个时候版本已经到0.11.0了,后面的版本请你自己灵活的变通一下,下面我们来下载aar文件 点进去之后会发现有很多文件,解释一下,后缀为xxxx-javadoc.jar的文件是帮助文档,xxxx-sources.jar的文件是源码,这两个都不是我们需要的,我们需要的是单纯的xxx.jar文件,或者xxx.aar文件,如图: 好了,找到啦,直接点击fresco-0.11.0.aar就可以下载了,其实maven依赖字符串就是告诉gradle怎么去找到这个aar文件 (3) 使用aar文件
(4) 点击sync按钮同步代码,如果还是找不到库中的类,那么点击运行按钮,即使运行不起来,只要运行一次就可以找到我们引入的库中的类了。 (5) 好了,到这里就学会了跳过maven依赖,直接使用aar文件的方法,是不是很简单呢。搞清楚了原理,gradle的maven依赖其实也就那么回事,用不好反而成了鸡肋 5 其他一些注意事项(1) 尽量删除不用的module,因为每次sync的时候会去同步所有的gradle文件,即使我们的主工程不使用它也会去同步,sync是全局的 (2) 自己下载gradle到本地,然后在Android Studio指定gradle的位置,避免第一次创建项目时去下载gradle,那也是巨慢的一个过程 (3) 减少同步代码的次数,也就是没事别点sync按钮,每次同步代码都是非常消耗资源的过程,次数多了也就卡了 6 总结(1) 网上说的有关解决Android Studio卡顿的方法,诸如:给gradle开启专门的守护线程,增大Android Studio的内存,开启gradle离线模式等,经过实践证明,并没有什么卵用,因为他们并没有找到Android Studio卡的真正原因是gradle同步代码时网速太慢 7 说明博主写这篇文章,主要是因为之前在做项目时,使用了十几个maven依赖的第三方库,结果每次打开Android Studio或者点击sync按钮同步代码时都要超过十分钟时间,十分钟那是必须滴,同步一次都可以喝杯咖啡了,实在忍无可忍了,遂百度解决方法,然而发现网上那些方法并没有什么卵用,于是自己摸索出了解决方法,将所有引入的第三方库全部改为引用aar文件或者jar文件,不再使用maven依赖,哈,瞬间就快了
8 转载请注明来自”梧桐那时雨”的博客:http://blog.csdn.net/fuchaosz/article/details/51146091
|
|