Android工作室项目中Gradle依赖的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强>一、不同类型的图书馆引入方案:强>
<强> 1,本地模块库依赖:强>
通过这种方式依赖的弊端是每次都需要构建模块,当模块比较多时构建非常耗时,建议控制模块的依赖数量,避免构建耗时
//模块需要在项目根目录下的settings.gradle中通过包括引入 implementation 项目(& # 39;:librarydict& # 39;)
<强> 2,本地二进制库依赖:jar和aar: 强>
本地的jar和aar需要放,那在模块的libs文件夹下,通过这种方式依赖的弊端是不知道jar和aar的版本号,如果要按照这种方式依赖,建议将jar/aar的名字加上版本信息,方便确认版本
依赖jar:
//,可以一条依赖引入库下的所有的jar implementation fileTree (dir: & # 39;填词# 39;,,包括:,(& # 39;* . jar # 39;])//,也可以指定依赖某一个或几个jar implementation 文件(& # 39;libs/dict-v120.jar& # 39;,, & # 39; libs/download-v151.jar& # 39;)
依赖aar:
//,在模块的build.gradle中增加如下语句:, repositories { ,flatDir { dirs 才能;& # 39;填词# 39; ,} }//,可以一条依赖引入库下的所有的aar implementation fileTree (dir: & # 39;填词# 39;,,包括:,(& # 39;* . aar # 39;])//,也可以指定依赖某一个aar implementation (名字:& # 39;library-download& # 39;,, ext:, & # 39; aar # 39;)
<强> 3,远程二进制库依赖:强>
为了安全起见,建议搭建公司内部的私有maven仓库,统一管理依赖的图书馆,公司内部的公共图书馆不要使用公共的maven仓库。通过这种方式依赖相比于前两种方案都要更优,且配置灵活,可以根据实际需求调整
//,依赖明确的版,本标明集团名称和版本 组:implementation & # 39; com.android.demo& # 39;,,名字:,& # 39;library-dict& # 39;,,版本:,& # 39;1.2.0& # 39;//,通常按照如下方式简写即可 implementation & # 39; com.android.demo: library-dict: 1.2.0& # 39;//,也可以不指定版本,将改版本为“+”,当远程仓库有更新的版本后,构建时会拉取最新的版本。//,好处是可以始终依赖最新的图书馆;弊端是有可能图书馆的改动导致编译不过或者功能变更不//,稳定,因为每次都需要检查是否有最新版本,所以构建效率会低一些 implementation & # 39; com.android.demo: library-dict: + & # 39;
//,对于有多个应用,依赖内部统一SDK的情况时,可以将gradle文件放在服务器,远程控制统一依//,赖版本,避免因为各个应用依赖的SDK版本不统一导致很难管理和维护//,远程http://172.28.2.93/remote/library-config.gradle ext.libraryBuildConfig =, ( ,deps: [ “dict-library"才能,,,,,,,& # 39;com.android.demo: library-dict: 1.2.0& # 39; “download-library"才能,,,,,,& # 39;com.android.demo: library-download: 1.5.1 # 39; ,) ]//,项目根目录下的build.gradle全局引入: apply “http://172.28.2.93/remote/library-config.gradle" ext { ,dependencies =, ( “才能dict-library",,:,本市libraryBuildConfig.deps # 39; dict-library& # 39; “才能download-library",:,本市libraryBuildConfig.deps # 39; download-library& # 39; ,) }//,在模块的build.gradle中依赖: implementation rootProject.ext.dependencies (“dict-library") implementation rootProject.ext.dependencies (“download-library")
总结如下:
<强>二,不同依赖配置方式的区别:编译实现,api 强>
从Android 3.0 Gradle插件开始,对于依赖包的配置方式,引入了实现和api,使用Android工作室新建项目时,原来用编译的地方全部默认被替换成了实现比如:
dependencies { ,compile fileTree (dir: & # 39;填词# 39;,,包括:,(& # 39;* . jar # 39;]) ,compile & # 39; com.android.support: appcompat-v7:27.1.1& # 39; ,compile & # 39; com.android.support.constraint: constraint-layout: 1.1.3 # 39; }
变成下面的样子:
dependencies { implementation 才能;fileTree (dir: & # 39;填词# 39;,,包括:,(& # 39;* . jar # 39;]) implementation 才能;& # 39;com.android.support: appcompat-v7:27.1.1& # 39; implementation 才能;& # 39;com.android.support.constraint: constraint-layout: 1.1.3 # 39; }Android工作室项目中Gradle依赖的作用是什么