欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

详解Android获取所有依赖库的几种方式

时间:2021-04-29 10:57:07|栏目:Android代码|点击:

当项目越来越大的时候,依赖的库也越来越多,再加上aar的传递依赖,导致dependency的急速膨胀。我们可以通过如下几种方式,查看项目依赖的所有库(包含直接依赖和间接依赖)。

方式一:通过dependencies命令

./gradlew :app:dependencies

该task会显示如下所示的输出:


输出列表展示了所有configuration下的依赖树,依赖关系明显,层次清晰。如果觉得输出的结果太冗长(通常情况下包含几十个configuration),可以通过指定configuration来显示特定的依赖树:

./gradlew :app:dependencies --configuration releaseCompileClasspath

该命令只会显示release模式下编译过程中的依赖树。

方式二: 通过androidDependencies命令

./gradlew :app:androidDependencies

输出结果如下:


如图所示,该task会平铺展示依赖树,并且只展示几个主要的variant,看起来较为清爽,但是缺点是不能像方式一那样指定configuration。

方式三:自定义task获取

project.afterEvaluate {
 project.android.applicationVariants.all { variant ->
  tasks.create(name: "showDependencies${variant.name.capitalize()}",
    description: "展示所有依赖") {
   doLast {
    Configuration configuration
    try {
     // 3.x
     configuration = project.configurations."${variant.name}CompileClasspath"
    } catch (Exception e) {
     // 2.x
     configuration = project.configurations."_${variant.name}Compile"
    }
    configuration.resolvedConfiguration.lenientConfiguration.allModuleDependencies.each {
     def identifier = it.module.id
     println("${identifier.group}:${identifier.name}:${identifier.version}")
    }
   }
  }
 }
}

如上,通过这种自定义task的方式,可以选择打印依赖,也可以选择保存到文件中,灵活度最高。

总结:

方式一:通用task,按层次展示依赖树,可以通过指定configuration来过滤输出。
方式二:android项目特有的task,平铺展示依赖树,不能过滤输出结果。
方式三:自定义task获取依赖,灵活度最高,但是需要对gradle有较深的理解。

上一篇:Android实现手机震动抖动效果的方法

栏    目:Android代码

下一篇:Android自定义View实现左右滑动选择出生年份

本文标题:详解Android获取所有依赖库的几种方式

本文地址:http://www.codeinn.net/misctech/111173.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有