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

问题描述 投票:140回答:5

我想知道android-support-v4.jar和android-support-v7-appcompat.jar之间的区别。如果我想在我的应用程序中添加appcompat Action Bar,我需要添加android-support-v7-appcompat.jar和android-support-v4.jar,或者只添加android-support-v7-appcompat.jar。

另外,android-support-v13.jar有appcompat吗?

android android-support-library android-4.0-ice-cream-sandwich android-actionbar-compat android-compatibility
5个回答
168
投票

UPDATE

自从回答这个问题以来,对支持库进行了很多更改。好的是,它也有很好的记录。因此,您必须阅读Support Library Documentation以获取更多详细信息和更多可用的支持库。

从Support Library版本26。0。0(2017年7月)开始,对于大多数库包,大多数支持库中支持的最低API级别已增加到Android 4.0(API级别14)。


以下是与Support Library Packages的区别:

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库

此库添加了对Action Bar用户界面设计模式的支持。

注意:此库取决于v4支持库。如果您使用的是Ant或Eclipse,请确保将v4支持库包含在此库的类路径中。

所以是的,如果你想使用v7,你需要两个罐子。


更新android-support-v13.jar

v13 Support Library

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

v13支持库

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

当你看到package details时,它有一个定义中给出的类FragmentCompat。所以它没有appcompat库的所有类。


44
投票

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

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

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之后添加了一些片段功能添加,则可以使其与Api级别11兼容。因此,应用程序目标API 11或更高版本可以使用在较新版本上添加的功能。


43
投票

什么是支持库?

支持库是代码库(类集合),它使新添加的功能与旧设备一起使用。 例如,Material Design是在API 21(Android 5.0 - Lolipop)中引入的 v7-support库使其可用于API 7(Android 2.1.x -Eclair)及更高版本。

有哪些不同的支持库?

一些主要的支持库是

  • V4支持库
  • V7支持库
  • V8支持库
  • v13支持库

7在v7支持库中代表什么?

这意味着该库具有旨在与API级别7及更高级别一起使用的功能。与V4相同(包含适用于API 4及更高版本的功能),依此类推。

v7支持库和v7 appcompat库之间的区别?

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

  • v7 appcompat库
  • v7 cardView库
  • v7 recyclerView库
  • v7 pallete图书馆等

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

所以添加,

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

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

Bonus

其他支持库

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

Relevant links


9
投票

首先,我们需要了解,What is the Android Support Library

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

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

Android支持库不是一个单独的库,但它可以大致分为两组:兼容性和组件库。

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

v4库:它包含许多功能,顾名思义,支持回到API 4.此外,为了支持像Fragment和Loader这两个主要类的实现(它们都在API 11的框架中引入),你也会找到框架中根本不存在的几个广泛使用的类,例如ViewPager和DrawerLayout。

v7-appcompat:v7-appcompat库为ActionBar(在API 11中引入)和Toolbar(在API 21中引入)提供了对API 7的发布的支持实现。它需要v4库但不包含它。因此,依赖于v7-appcompat的任何特征也依赖于v4。

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

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

v7-cardview:提供CardView组件,实现卡片UI设计模式

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

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

v8:支持RenderScript(在API 11中引入)回到API 8

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

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

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

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

我推荐这个tutorial


5
投票

这个答案与支持库的客户有关,他们的版本> = 26.0.0:

警告:从Support Library版本26。0。0(2017年7月)开始,对于大多数库软件包,大多数支持库中支持的最低API级别已增加到Android 4.0(API级别14)。

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

有关更多信息,请参阅Support Library - Version Support and Package Names

© www.soinside.com 2019 - 2024. All rights reserved.