android-support-v7-appcompat和android-support-v4之间的区别


147

我想知道android-support-v4.jarandroid-support-v7-appcompat.jar之间的区别。如果要在应用程序中添加appcompat操作栏,则需要添加android-support-v7-appcompat.jarandroid-support-v4.jar或仅添加android-support-v7-appcompat.jar

另外,android-support-v13.jar是否具有appcompat?

Answers:


170

更新

自回答此问题以来,对支持库进行了许多更改。好东西是,它的文档也非常好。因此,您必须阅读支持库文档以了解更多详细信息和更多可用的支持库。

从支持库版本26.0.0(2017年7月)开始,大多数支持包的最低支持API级别已提高到Android 4.0(API级别14)。


以下是与支持库软件包的区别:

v4支持库

该库旨在与Android 1.6(API级别4), Android 2.3(API级别9), Android 4.0(API级别14)及更高版本一起使用。与其他库相比,它包含最大的API集,包括对应用程序组件,用户界面功能,可访问性,数据处理,网络连接和编程实用程序的支持。

v7库

有多个库设计用于Android 2.1(API级别7), Android 2.3(API级别9), Android 4.0(API级别14)及更高版本。这些库提供特定的功能集,并且可以彼此独立地包含在您的应用程序中。

v7 appcompat库

该库增加了对操作栏用户界面设计模式的支持。

注意: 此库取决于v4支持库。如果您使用的是Ant或Eclipse,请确保将v4支持库作为该库的类路径的一部分包括在内。

所以是的,如果要使用v7,则需要两个jar。


android-support-v13.jar的更新

v13支持库

API级别27.1.0中已弃用此接口。使用Fragment而不是Framework Fragment。

v13支持库

该库旨在用于Android 3.2(API级别13)及更高版本。它使用(FragmentCompat)类和其他片段支持类添加了对Fragment用户界面模式的支持

当您看到软件包详细信息时,它具有定义中给出的FragmentCompat类。因此,它没有appcompat库的所有类。


2
如果您要使用Min api 19开发应用程序,是否需要这些?

2
v4支持库 –这些库旨在与 Android 2.3(API级别9)及更高版本一起使用。
Vadik

1
v7支持库 –有多个库旨在与Android 2.3(API级别9)及更高版本一起使用。
Vadik

@ user5366495可能是的。大多数优点是有目的的API21 and above ,如果您想在较低级别使用它,则应为此使用支持库。因此,您可能仍然需要它API19
Mahdi-Malv

48

什么是支持库?

支持库是代码库(类的集合),它提供了新添加的功能以与较旧的设备一起使用。
例如,材料设计在API 21中引入(是Android 5.0 -棒棒糖),但是
V7支持库使其可用于API 7(的Android 2.1.x的-Eclair)和更高。

有哪些不同的支持库?

一些主要的支持库是

  • V4支持库

  • V7支持库

  • V8支持库

  • v13支持库

v7支持库中7代表什么?

这意味着该库具有旨在与API级别7或更高版本配合使用的功能。V4也是如此(包含适用于API 4和更高版本的功能)等等。

v7支持库和v7 appcompat库之间有何区别?

包括我在内的很少有人对这两个术语感到困惑。实际上,v7 appcompat库是v7支持库的一部分。v7支持库主要是为了支持API 7和更高版本的Material design和ActionBar设计模式而开发的。
V7可以分为更多子类别

  • v7 appcompat库

  • v7 cardView库

  • v7 recyclerView库

  • v7托盘库等

v7 appcompat库具有以下关键类ActionBar,ActionBarActivity,ShareActionProvider。

所以加上

com.android.support:appcompat-v7:21.0.+

在gradle文件中的依赖项,导入上述类。

奖金

其他支持库

Multidex支持库(用于创建具有超过65k方法的应用程序)
v17 Leanback支持库(一个支持库,为Android TV提供重要的小部件)

相关连结


6
这应该是公认的答案,用简单的语言清楚地解释所有内容。
gegobyte

44

仅当您的最低sdk版本低于API Level 11时才需要支持库。否则,您无需为Api Level 11或更高版本的项目添加支持库。

android-support-v4.jar: 支持android.app类,可协助开发适用于android API级别4或更高版本的应用程序。这样您就可以使您的应用程序Backword兼容,

android-support-v7.jar最近更新了最新的支持库。ActionBar允许将操作栏的用户界面设计模式实施回Android 2.1(API级别7)及更高版本。使用此类需要您通过扩展新ActionBarActivity类来实现您的活动。

如果要在应用程序中添加appcompat操作栏,则需要添加android-support-v7-appcompat.jar和android-support-v4.jar或仅添加android-support-v7-appcompat.jar。

是的,如果要使用它们,则需要添加两个库的引用。

android-support-v13.jar是否具有appcompat?

不,它包含FragmentCompat,因此,如果在版本13之后添加了某些Fragment功能,则可以使它与Api级别11兼容。因此,定位到API 11或更高版本的应用程序可以使用在较新版本中添加的功能。


9
DrawerLayout/ NavigationDrawer当前仅存在于支持库中。
Kiran 2015年

3
您可能会在Android应用程序中使用其他基于支持库之一的组件,默认情况下,超过11种的API中未包含这些支持库,例如com.android.support:multidex:1.0.0和com.android。技术支持:设计:23.1.0。请查看以下完整信息:developer.android.com/tools/support-library/features.html
aselims

如google在developer.android.com/topic/libraries/support-library/中所述,…v4支持与v7支持之间没有区别。两者均适用于api 9及更高版本。这是真的?!
马赫迪

贤治,是的,这是真的。Google将最小支持从4更改为9,从7更改为9,并且两个库现在相互复制。
Yaroslav Havrylovych

如果您要使用Min api 19开发应用程序,是否需要这些?

10

首先,我们需要了解什么是Android支持库

Android支持库最初发布于2011年,可以说是Android兼容性库。Android支持库为较旧的版本提供了更新的API。但是,故事还不够。

拥有较高版本号的支持库包括以前库的功能(您可能会认为v7-appcompat在v4的基础上进行了改进并包含了所有功能),这有点令人困惑。在大多数情况下,这是不正确的。但是库本身具有修订号。例如,“ AppCompat v21”实际上是指支持库v7-appcompat,版本21。

Android支持库不是单个库,而是可以大致分为两类:兼容性库和组件库。

1-兼容性库专注于从较新的框架版本向后移植功能,以便运行早期版本的设备可以利用较新的API。主要的兼容性库是v4和v7-appcompat。

v4库:它包含许多功能,并且顾名思义,它支持API4。此外,为了支持Fragment和Loader等主要类的实现(它们都在API 11的框架中引入),您还将找到框架中根本不存在的几个广泛使用的类,例如ViewPager和DrawerLayout。

v7-appcompat:v7-appcompat库提供了对ActionBar(在API 11中引入)和Toolbar(在API 21中引入)的支持实现,以便发布回API7。它需要v4库,但不包括它。因此,任何依赖于v7-appcompat的功能也都依赖于v4。

2组件库 Android支持库还提供了更小,更模块化的组件库,使开发人员能够添加原本不属于标准框架的功能。这些自包含的库可以轻松添加到项目中或从项目中删除,而无需担心依赖项。有几个有价值的组件库需要考虑:

v7-recyclerview:提供RecyclerView组件,该组件可有效显示和动画大量数据,并旨在替代ListView

v7-cardview:提供CardView组件,启用卡UI设计模式

v7-gridlayout:提供GridLayout类,该类可将UI元素组织成一个矩形网格。等等..

其他库 Android支持库还包含一些其他库,这些库的使用频率较低,但仍然值得一提:

v8:为RenderScript(API 11中引入)提供了对API 8的支持。

v13:为Fragment UI模式提供额外的兼容性支持,并捆绑了v4 librar

v17:为构建电视UI提供支持

我什么时候应该使用Android支持库?

当您需要比应用程序的minSdkVersion更新或标准框架中不可用的特定框架功能时,应使用支持库之一。

我参考这个教程


5

此答案与版本大于等于26.0.0的支持库的客户端有关:

警告:从支持库版本26.0.0(2017年7月)开始,大多数支持库的最低支持API级别已提高到Android 4.0(API级别14)

例如,support-v4和support-v7软件包都支持最低API级别14,以支持26.0.0及更高版本的Support Library 。

有关更多信息,请参见支持库-版本支持和程序包名称

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.