如何使用框架方法和支持库的方法

时间:2012-12-13 18:33:35

标签: android compatibility android-support-library

我正在我的应用中实现片段。为了保持兼容Android版本低于Honeycomb,我正在使用支持库。 但我想知道,Android是如此聪明,当应用程序在Honeycomb或更高版本上运行时,它将使用正确的框架更改支持库方法吗? 如果不是,有没有办法为较低版本使用支持库方法,为更高版本使用框架方法?

1 个答案:

答案 0 :(得分:1)

支持库只不过是原始框架,它与旧版本的Android向后兼容。旧框架上没有新的API可用,因此它总是比较应用程序运行和使用的当前Android版本,具体取决于它,自定义实现或本机实现。支持库的一个例子:

final int version = android.os.Build.VERSION.SDK_INT;
        if (version >= 17) {
            IMPL = new JbMr1ViewCompatImpl();
        } else if (version >= 16) {
            IMPL = new JBViewCompatImpl();
        } else if (version >= 14) {
            IMPL = new ICSViewCompatImpl();
        } else if (version >= 11) {
            IMPL = new HCViewCompatImpl();
        } else if (version >= 9) {
            IMPL = new GBViewCompatImpl();
        } else {
            IMPL = new BaseViewCompatImpl();
        }

支持lib是自定义的,以补偿每个Android版本的缺失API,如您在此屏幕截图中所示:

enter image description here

您可以在Github上找到镜像支持的源代码: https://github.com/android/platform_frameworks_support