Android Support Library 和 Support Repository 的区别

结论:

Android Support Library:Eclipse 使用
Android Support Repository:Android Studio 使用

在 SDK Manager 的 extra 分类中,Google 提供了两个 Support 库:
Android Support LibraryAndroid Support Repository

如下图:
SDK Manager

之前一直搞不懂,所以一直以来都是两个都安装的。今天升级 SDK 时,又发现两个都有更新,觉得有必要搞清楚一下,毕竟作为一个 Android 开发者,连 SDK 都弄不清,很难说得过去。

这两个都是 support 库,到底有什么区别呢?Google 为什么要提供两个 support 库呢?

首先,当然是先看看各自的目录都有些什么文件!在 <sdk>/extra/android/ 目录发现,里面有两个子目录:
m2repositorysupport

m2repository 的目录结构大致如下:
m2repository 目录结构

support 的目录结构大致如下:
support 目录结构

两个目录的都有 support-v4、appcompat-v7、design、recycleview 这些库,但是分类方式不一样,而且 m2repository 更加丰富,各个版本都有,而 support 只提供一个 jar 包。

没看出什么。。。按照惯例,还是 Google 一下吧。

Google 后发现!Library(对应 support 目录)是用于 Eclipse ADT 开发环境的,而 Repository(对应 m2repository 目录)是用于 Android Studio 开发环境的。

本着“实践是检验真理的唯一标准”的折腾精神。赶紧去 Android Studio 中检验检验。

在 AS 中,跟依赖包相关的,就只有 gradle 文件了:

1
2
3
4
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
}

咦?!对哦!这里可以指定版本号!而 m2repository 目录里面的库就是有各个版本的。

再切换到 Project 视图可以查看引用的库:
在 Project 视图中查看 appcompat-v7 的属性
appcompat-v7 属性

果然!使用的是 m2repository 中的库。

Eclipse 就不验证了,自从 Android Studio 发布后,就再也没用过 Eclipse 了。

这下可以删除 Android Support Library 了!

另外备注一下:
m2repository 的含义:

m2:Maven 2(第二版)
repository:仓库

参考资料:

Support Library:英文原版 中文翻译版
Support Library Features:英文原版 中文翻译版
Support Library Setup:英文原版 中文翻译版