我刚读了Android支持包/兼容库的描述......Android支持包/兼容性库 - 使用v4还是v13?
http://developer.android.com/sdk/compatibility-library.html
...并且它给我留下了小迷糊!它说v13库是v4的超集,但我认为这是另一种方式?实用:如果我想使用兼容性库,以便我的应用程序能够在运行Android 2.2(API 8)至4.0(API 14)及更高版本的手机上生成并正常工作,那么v4是否足以满足我的需求?
我刚读了Android支持包/兼容库的描述......Android支持包/兼容性库 - 使用v4还是v13?
http://developer.android.com/sdk/compatibility-library.html
...并且它给我留下了小迷糊!它说v13库是v4的超集,但我认为这是另一种方式?实用:如果我想使用兼容性库,以便我的应用程序能够在运行Android 2.2(API 8)至4.0(API 14)及更高版本的手机上生成并正常工作,那么v4是否足以满足我的需求?
要定位API 8(v2.2),您应该使用v4版本。
v13的大部分内容都可以使用,但如果您使用依赖于平台13 API的任何功能,则您的应用将在旧设备上爆炸。
除非有特别令人信服的理由需要v13,否则我建议直接v4。
答案是正确的,但也有点混淆! 目前有3个支持罐:V4,V7和V13。 不幸的是,V7仅适用于gridlayout,因此不是超集。
我们只对支持库中的一个jar感兴趣[除非我们也想gridlayout(我不知道它是什么!)]。因此,我们正在查看我们的android:minSdkVersion =“8”并对照罐子进行检查。所以我们想要V4。
V13只是一个超集,它重复V4方法,而不是代码。即在这个例子中,V13的使用是不正确的。
我不认为我们应该用超(或子集)来描述这三个库(V4,V7,V13)虽然最简单的意义似乎向后兼容的版本4,7和13
加入谷歌这意味着除非你的应用只支持最新版本(强烈推荐),我们几乎需要support-v4。假设你的minsdk有14个片段已经可以,但'嵌入式片段'仅支持17位以后,所以我们仍然需要v4和v4片段。
今年(2013)google发布了v7,并在其中添加了appcompat-library。 这意味着除了第三次支持Actionbar(ActionbarSherlock)之前11,官方支持可能更好One?然后,我相信当每个新版本将来在v7中发布时,我们都会更新每个操作栏功能。
我们仍然需要minsdk = XX today(Nov.24,2013)(7和10之间)。我们应该添加支持-V4的片段和支持-V7的动作条都为最佳实践。
你的回答很好地解释了大多数人相信这些库之间没有子集超集关系。 – thedarkpassenger 2017-09-27 14:50:53
v13只是有关于片段的功能。大多数情况下,如果minVersion大于13并且不使用以下功能:FragmentPagerAdapter,FragmentStatePagerAdapter,FragmentTabHost和嵌套片段; 你不需要支持v13。
所以“v4是v13的一个子集”是不正确的!
我检查V13的源代码,它增加了只有4个类。
FragmentCompat增加被包括在V4片段已经2种静态util的方法。
FragmentPagerAdapter,FragmentStatePagerAdapter和FragmentTabHost,所有这些3类有相应的V4相同名称的类,并且有相同的行为。
在V13提供额外的API是没有必要的。加入V4
因此,可以支持更多的平台比V13,与V13相同的行为,那么为什么不使用V4?
,所以我不能看到任何V13 neccessarity。 我说得对不对?
晚了一点,但请有下面的图片很好看。 在JAR文件Android的支持,v13.jar,有3包:
这意味着我们只需要添加这一个罐子,我们会支持v4和v13。由于v7不在编译中,因此我们需要自行添加该JAR。
澄清:我在我的清单中指定 'targetSdkVersion' 为 “14” 和 '的minSdkVersion' 为 “8”。那么v4仍然是我想要的吗? – 2012-03-29 13:56:36
如果您使用v13,并且您使用的功能依赖于平台13 API,则您的应用程序将会崩溃。仅仅因为它编译,并不意味着它可以在所有设备上运行。 – 2012-03-29 14:07:08
我仍然不明白,如果v13需要13+设备为什么它是v4的超集... – Olivier 2012-07-19 22:55:37