Android支持库、Google仓库、Google Play服务之间有何区别?

62
请问有人能解释一下Android Support Repository、Android Support Library、Google Repository和Google Play Services之间的区别吗?
我的理解是,Google Repository与Google Play Services是相同的,只是将所有的API分开了(相较于传统的Play Services是一个包含所有API的大型jar文件),因此更适合在Android Studio中使用,现在您可以精确选择要编译的API(例如“com.google.android.gms:play-services-ads:+”),而不是依靠Proguard在构建时删除不需要的API。
我理解正确吗?
那么Android Support Repository与Android Support Library呢?

1
这主要涉及构建系统。如果你使用ant,你需要将库/服务包复制到你的项目中。如果你使用Gradle,它会自动使用存储库来定位你在构建文件中输入的依赖项。 - Barend
3个回答

40

谷歌在末尾使用术语 存储库 来指定这些是 Maven 存储库,您应该像这样使用 Gradle 依赖项导入它们:

dependencies {
   compile "com.google.android.gms:play-services-gcm:8.4.0"
}

但是 Gradle 构建系统只支持在 Android Studio 中使用,而 Eclipse 使用较旧的 Ant 构建系统。

这也在谷歌文档中 提到了

  1. 选择 Android Support Library 项目。

    注意:如果您正在使用 Android Studio,请选择并安装 Android Support Repository 项目。

所以,如果您正在使用 Eclipse IDE,请使用以下库:

  • Android Support Library
  • Google Play Services

如果您正在使用 Android Studio,则应改用以下库:

  • Android Support Repository(新名称:用于支持库的本地 Maven 仓库
  • Google Repository

16

通过SDK管理器: 这里输入图片描述

  • Android支持库存储库:用于存储android.support.*的库的本地Maven存储库(包括所有版本)。 这里输入图片描述

  • Android支持库:与上述相同的库,用于android.support.*,只有一个版本,以android项目的形式存在。它已不再从SDK管理器中提供!!! 这里输入图片描述

  • Google存储库:用于一些Google库google.*的Maven存储库。 这里输入图片描述

  • Google Play服务:这是用于在Android设备上运行的GooglePlay服务(一种应用程序或运行时)的文档和示例。 这里输入图片描述


14

Android支持库和Google Play服务是该库本身(jar + src),而Android支持库和Google仓库是相应的本地Maven仓库(aar文件)。

巧合的是它们都扩展了API,但这不是关键点。

官方页面:

添加SDK包


为什么要分开这两个呢?为什么不让支持库变成过时,转而使用支持存储库? - powder366
3
这就是关键所在,这两件事不一样。Support Repository是获取Support Library的新方式(使用gradle + maven)。 - Herrbert74

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接