Design Lib CONTAINS support-v7 为什么要同时编译

Design Lib CONTAINS support-v7 Why to compile both

看到这个我震惊了

我在随机网站、热门网站、Whosebug 问答、编码人员编译设计库以及 appcompact-v7 甚至更多的 recyclerview 和 cardview 和支持库,而设计库包含所有这些,我确实使用了所有这些并非常正常地导入它们,没有一个问题。这让我很困惑,请一些专家解释一下,谢谢

while the design lib contains all of them

com.android.support:design 神器没有 "contain" "appcompact-v7 and even more with recyclerview and cardview and suppport lib",至少对于 "contain" 的标准英语定义是这样。如果您在 AAR 中查看 com.android.support:design:23.4.0,您将不会从那些其他工件中找到任何 类。

com.android.support:design 是否 在其他工件上有 transitive dependencies。具体来说,当您依赖 com.android.support:design:23.4.0 时,您还将依赖:

  • com.android.support:appcompat-v7:23.4.0
  • com.android.support:recyclerview-v7:23.4.0
  • com.android.support:support-v4:23.4.0

那些反过来也会拉进来:

  • com.android.support:animated-vector-drawable:23.4.0
  • com.android.support:support-annotations:23.4.0
  • com.android.support:support-vector-drawable:23.4.0

com.android.support:design 依赖于 类 和来自 com.android.support:appcompat-v7 和亲属的资源,这就是它具有这些依赖性的原因。如果您依赖 com.android.support:design,您将间接依赖所有其他工件。 Gradle 会自动将它们拉入。

请注意,com.android.support:design 及其任何依赖项似乎都依赖于 com.android.support:cardview。诚然,我只检查了 23.4.0.