你能解释一下为什么 android 支持 v4 和 v7

Can you explain why support v4 and v7 on android

我正在检查 android 的支持库,但我不明白为什么它们分为 v4 和 v7?

为什么不对所有版本使用一个支持库?甚至支持所有类,正确使用 SDK?

v4 一直兼容到 Android 的第 4 版。 v7 兼容回 v7。由于 Android SDK v4 更受限制,因此更难将某些东西移植回(有些东西甚至可能无法移植回那么远,但可能移植到 7)。 Google 认为增加难度不值得,因为 v4 太过时了(它不到活跃设备的 1%)。

实际上还有更多版本 - v8、v11 和 v13 支持库已存在,只是不太常用。

but i cant understand why they divided into v4 and v7 ?

他们不是 "divided into v4 and v7"。它们按功能划分。 Android支持包有很多,比如:

compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.android.support:gridlayout-v7:21.0.0'
compile 'com.android.support:leanback-v17:21.0.0'
compile 'com.android.support:mediarouter-v7:21.0.0'
compile 'com.android.support:palette-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:support-annotations:21.0.0'
compile 'com.android.support:support-v13:21.0.0'
compile 'com.android.support:support-v4:21.0.0'

其中唯一替代另一个的是 support-v4support-v13support-v13 包含 support-v4 中的所有内容,外加一些仅与 运行ning API 13 级或更高级别设备相关的附加 类。

工件名称中的 -vNN 符号只是为了帮助提醒您该库中的代码返回到 Android API 级别。

Why just dont use one support library for all versions?

出于同样的原因,我们没有在人类历史上编写的每一行代码中进行编译:我们不需要它。例如,appcompat-v7leanback-v17 的一个独立库——它们与我的一个库的相关性差不多。

Or even all classes on support, be on SDK properly?

在某些情况下,这是因为我们还没有发明时间机器,所以我们不能 "retcon" 旧版本的 Android 有不同的 类 和方法。例如,appcompat-v7 存在的部分原因是允许操作栏模式在返回到 API 级别 7 的设备上使用;本机操作栏仅出现在 API 级别 11。

制造商也施加压力,要求减小 OS 的大小,尤其是框架 类,以减少构建 Android 所需的 RAM 和闪存量设备。因此,有些东西(例如 leanback-v17,用于 Android 电视风格的体验)不是 OS 的一部分,因为它们并不是到处都需要的。

此外,通过将内容放入库中,您的应用可以更加独立于底层设备。例如,一些开发人员会在 support-v4support-v13 中使用片段的反向移植,而不是因为他们想 运行 在早于 API 级别 11 的设备上(当原生片段是引入),但因为他们想要一个在所有 Android 版本中都工作相同的片段的实现。本机片段实现将因 Android OS 版本而异。

v4支持库v7支持库都支持android版本2.3(API 级别 9) 及更高级别,并且需要向后兼容旧设备。

差异

v4 比应用程序组件、用户界面功能、数据处理、网络连接和实用程序等其他组件拥有最大的 API 集。

v7 提供了可以独立包含在您的应用程序中的特定功能集。

还有 v7 AppCompactv13 SupportLbrary :

v7 AppCompact - 用于 ActionBar 用户界面和设计。它也需要 v4。

v13 SupportLbrary - android 3.2 版(API 级别 13)及更高版本并支持片段用户界面模式