我正在我的应用中实现片段。为了保持兼容Android版本低于Honeycomb,我正在使用支持库。 但我想知道,Android是如此聪明,当应用程序在Honeycomb或更高版本上运行时,它将使用正确的框架更改支持库方法吗? 如果不是,有没有办法为较低版本使用支持库方法,为更高版本使用框架方法?
答案 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,如您在此屏幕截图中所示:
您可以在Github上找到镜像支持的源代码: https://github.com/android/platform_frameworks_support