我需要使用Android支持库吗?

24
更新: 现在在使用 Android 几个月后,我明白了支持库的意义,它是将新特性从高 API 级别回移至旧版本。例如,支持库 v4 仅使用 API <= 4 来实现一些新特性。
感谢您的帮助。
4个回答

22
它到底包含什么?使用API级别4模拟的新级别的API吗?
是和不是。它既包含较新API的后移版本(如Fragment),也包含其他在支持库之外不可用的功能。
根据支持库文档(我强调):
Android支持库包是一组代码库,提供向后兼容的Android框架API版本以及仅通过库API可用的功能。每个支持库向后兼容到特定的Android API级别。这种设计意味着您的应用程序可以使用库的功能,并且仍然与运行Android 1.6(API级别4)及以上设备兼容。
支持库有多个版本,每个版本支持不同的最低API级别:
v4支持回到1.6(API级别4)
v7支持回到2.1(API级别7)
v8支持回到2.2(API级别8)

我的最小API级别为15。我需要使用(或关心)support v4吗?

也许需要。请查看Support Library Features documentation。您需要这些功能中的任何一个吗?其中一些,例如DrawerLayout在支持库之外不可用。


每次使用支持库是否会有任何不利影响?为了确保最高的可靠性和向后兼容性,而不冒险让用户的设备没有最新的API,这样做是否更好?而不是每次编写if/else语句? - GONeale
通常使用支持库的影响很小(而且在幕后,支持库API调用通常只是使用if/else)。 - Bryan Herbst

4

这要看情况,比如说像 ViewPager 这样的东西只能在支持库中获得。但如果你的最小 API 版本是 15,你就不需要使用支持库了,因为支持库的作用是帮助旧的 API(< 11)拥有与新的 API 相同的功能。


4

如果您不需要支持库中提供的某些特定功能(如ViewPager),那么如果您只针对所提到的版本进行目标定位,那么您就不需要关心支持库。但是如果您已经决定使用其中一个,那么您应该坚持使用它-例如:

android.app.FragmentManager fm = getFragmentManager(); // returns an instance of the Fragment Manager class
android.support.v4.app.FragmentManager = getSupportFragmentManager(); // returns an instance of the support library class

等等。还要确保您的FragmentActivity属于您正在使用的同一库。


-1

如果您的最低API级别为14或以下,则可能确实需要支持库。 如果您使用的是更高级别的API,则不需要它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接