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