是否有可能“优雅地降级”Android应用程序?

时间:2012-10-25 16:34:07

标签: android graceful-degradation

我想知道是否可以在Android应用程序中使用优雅降级方法。即,使用API​​ 15的某些功能,但如果不支持,则使用API​​ 10。

具体来说,我在Android 4中使用“滑动标签”而不是Android 2.x中缺少对此功能的支持(因此使用普通标签),但问题相当笼统。

我想在支持它的设备上使用高级功能但是当它不受支持时,我想使用替代方案。我似乎无法在Android 2项目中使用Android 4库,而Android 4项目将无法在Android 2设备上启动。

任何解决方案?或者,至少在目前,Android 2上的“滑动标签”的解决方案是什么?

3 个答案:

答案 0 :(得分:5)

第1部分:为了能够为更新的API使用功能,请确保您的清单将android:minSdkVersion声明为最低版本(在您的情况下为10),但将android:targetSdkVersion设置为带有API的较新版本想用(15)。在您的代码中,您可以执行类似

的操作
if ( Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH ) {
    // Use the new APIs
} else {
    // Use the old APIs
}

您必须添加注释以指示新的API使用情况。

第2部分:滑动选项卡 - 我使用了Jake Wharton的ViewPagerIndicator和Android支持库中的ViewPager功能来实现滑动选项卡。这很简单。 ViewPagerIndicator页面上有更多信息

希望这有帮助。

答案 1 :(得分:1)

确保在类或函数上方使用@TargetApi指令 仅适用于较新版本的API。例如

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
void foo() {

  /* function called only on ice cream sandwich (API level 14) and greater */

}

答案 2 :(得分:1)

我知道你已经标记了你的答案,但是maby this可以帮助你,它是一个名为actionbar sherlock的android库,它将4.x功能向后移植到2.x.包括片段,寻呼机,标签和3.0中引入的Actionbar