我刚看过Android支持包/兼容性库的这个描述......
http://developer.android.com/sdk/compatibility-library.html
......这让我有点困惑!它说v13库是v4的超集,但我认为这是另一种方式?
变得实用:如果我想使用兼容性库,以便我的应用程序构建并适用于运行Android 2.2(API 8)到4.0(API 14)及更高版本的手机,那么v4对我来说是否足够?
答案 0 :(得分:35)
要定位API 8(v2.2),您应该使用v4版本。
v13的大部分内容都可以使用,但是如果您使用其中依赖于平台13 API的任何功能,您的应用程序将会在旧设备上爆炸。
除非有特别令人信服的理由需要v13,否则我建议直接进入v4。
答案 1 :(得分:9)
答案是正确的,但也有点混乱! 目前有3个支持罐:V4,V7和V13。 不幸的是,V7仅适用于gridlayout,因此不是超集。
我们只对支持库中的一个jar感兴趣[除非我们也想要gridlayout(我不知道它是什么!)]。因此,我们正在查看我们的android:minSdkVersion =“8”并检查它与罐子。所以我们想要V4。
V13只是一个超集,因为它复制了V4方法,而不是代码。即在这个例子中,使用V13是不正确的。
答案 2 :(得分:5)
我认为我们不应该使用超集(或子集)来描述这三个库(v4,v7,v13),尽管最简单的含义似乎是向后兼容的版本4,7和13.
Google首先在v4中添加了Fragment,然后在每个新版本发布时更新它。这意味着除非您的应用仅支持最新版本(强烈不推荐),否则我们几乎随时都需要支持-v4 。假设您的minsdk已经是14已经有片段,但是'嵌入片段'仅在17之后支持,所以我们仍然需要v4并在那种情况下使用v4片段。
今年(2013年)谷歌发布了v7,并在其中添加了appcompat-library。这意味着除了第三支持Actionbar(ActionbarSherlock)之前11,官方支持可能更好One ?? 然后,我相信在将来的第7版中每个新版本发布时,我们都会更新所有操作栏功能。
我们仍然需要minsdk = XX(7到10之间)today(2013年11月24日)。我们应该为片段添加support-v4,为actionBar添加support-v7 为了最佳实践。
答案 3 :(得分:1)
我检查了v13的源代码,它只增加了4个类。
FragmentCompat添加了2个静态util方法,这些方法已包含在v4 Fragment中。
FragmentPagerAdapter,FragmentStatePagerAdapter和FragmentTabHost,这三个类在v4中具有相应的相同名称类,并且具有相同的行为。
v13中提供的额外API不是必需的。
因此,通过添加v4,您可以支持比v13更多的平台,与v13具有相同的行为,那么为什么不使用v4?
所以我看不出v13的任何必要性。 我是对的吗?
答案 4 :(得分:0)
v13只有关于Fragment的功能。 主要是如果你的minVersion高于13并且没有使用像:FragmentPagerAdapter,FragmentStatePagerAdapter,FragmentTabHost和嵌套片段这样的函数; 你不需要支持v13。
所以" v4是v13"的一个子集。是不正确的!
答案 5 :(得分:0)
有点晚,但请仔细看看下面的图片。 在JAR文件android-support-v13.jar中,有3个包:
意思是我们只需添加这个jar,我们就会支持v4和v13。由于v7不在编译中,我们需要自己添加JAR。