1

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

4

1 回答 1

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();
        }

支持库经过定制,以补偿每个 Android 版本缺少的 API,如您在此屏幕截图中所见:

在此处输入图像描述

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

于 2012-12-13T18:53:40.247 回答