Android支持包/兼容性库 – 使用v4或v13?

我刚刚阅读了Android支持包/兼容性库的描述…

http://developer.android.com/sdk/compatibility-library.html

…让我有点困惑! 它说v13库是v4的超集,但我认为这是另一回事?

实用:如果我想使用兼容性库,以便我的应用程序可以在运行Android 2.2(API 8)到4.0(API 14)以及更高版本的手机上正常工作并且正常工作,那么v4是否足以满足我的需求?

Solutions Collecting From Web of "Android支持包/兼容性库 – 使用v4或v13?"

要定位API 8(v2.2),您应该使用v4版本。

v13的大部分function都能正常工作,但是如果您使用依赖于平台13 API的任何function,您的应用将会在旧设备上爆炸。

除非有特别令人信服的理由需要v13,否则我build议直接v4。

答案是正确的,但也有点混乱! 目前有3个支持jar:V4,V7和V13。 不幸的是,V7只专门用于网格布局,因此不是超集。

我们只对支持库中的一个jar感兴趣[除非我们也想gridlayout(我不知道它是什么!)]。 因此,我们正在看我们的android:minSdkVersion =“8”,并检查它对jar子。 所以我们想要V4。

V13只是一个超集,它复制了V4方法,而不是代码。 即在这个例子中,V13的使用是不正确的。

尽pipe最简单的含义似乎是向后兼容的版本4,7和13,但我认为我们不应该使用超集(或子集)来描述这三个库(v4,v7,v13)。

Google首先在v4中添加了Fragment,然后在每个新版本发布时进行更新。这意味着除非您的应用程序仅支持最新版本(强烈不build议),否则我们几乎需要support-v4。假设您的minsdk是14已经可以了,但是“embedded式片段”只支持17位以后,所以我们还是需要v4和v4片段。

今年(2013年)google发布了v7,并在其中添加了appcompat-library。 这意味着除了第三次支持Actionbar(ActionbarSherlock)11之前,官方支持也许会更好一个 ? 然后,我相信在将来的v7中,每个新版本都会发布时,我们将会更新每个动作栏function。

今天 (2013年11月24日)我们仍然需要minsdk = XX(7到10之间)。我们应该 actionBar 添加support-v4 for fragment和support-v7,以获得最佳实践。

我检查了v13的源代码,它只增加了4个类。

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

FragmentCompat添加了2个静态实用方法,已经包含在v4 Fragment中。

FragmentPagerAdapter,FragmentStatePagerAdapter和FragmentTabHost,所有这三个类在v4中都有相同的名称类,并且具有相同的行为。

v13中提供的额外API不是必需的。

所以通过添加v4,您可以支持比v13更多的平台,与v13具有相同的行为,那么为什么不使用v4呢?

所以我看不到v13的任何不足之处。 我对吗?

v13只是有关于片段的function。 大多数情况下,如果你的minVersion大于13并且不使用像FragmentPagerAdapter,FragmentStatePagerAdapter,FragmentTabHost和嵌套片段的函数; 你不需要支持v13。

所以“v4是v13的一个子集”是不正确的!

有点晚了,但请仔细看下面的图片。 在JAR文件android-support-v13.jar中,有3个包:

  • 注解
  • V4
  • V13

这意味着我们只需要添加这个jar,我们就可以同时支持v4和v13。 由于v7不在编译中,因此我们需要自行添加该JAR。

在这里输入图像说明