如何使Android 4.0应用程序向后兼容?

时间:2012-01-25 22:10:15

标签: android android-layout android-ui android-4.0-ice-cream-sandwich

Android 4.0(ICS)有很多new UI guidelines,非常棒。问题是,未来,我不确定如何为Android 4.0构建应用程序,并确保应用程序在运行Android 2.2和2.3的设备上看起来相同/相似。

Android compatibility librarybackwards compatible Action Bar,但我一直在寻找一种更具体的解决方案,用于将ICS后应用移植到ICS之前的手机上。

我是否在正确的轨道上?有人有什么想法吗?

1 个答案:

答案 0 :(得分:21)

以下是一些建议。

首先,要注意新的Android Design guidelines。我相信这是一个好主意,不仅有利于显而易见的设计原因,而且还因为它会使向后兼容更容易。例如,Support Package有助于将推荐的设计元素引入旧平台,此软件包的新版本可能会使其与最新的设计指南更加一致。


其次,使用fragments。即使您认为现在对片段不太需要,它们也是Android设计的未来,大屏幕Androids的数量可能会很快增长。虽然它们增加了一些额外的复杂性,但我认为它们通过将视图与活动分开来鼓励良好的设计。

通过Support Package(也称为兼容性库)启用片段使用。这很简单,我没有遇到任何问题。只需确保您的导入如下所示:

import android.**support.v4**.app.Fragment;

这样您就可以从支持包中获取它们,而不是直接调用本机ICS API。


第三,使用文档中描述的主题启用ICS / HC操作栏。请注意,这不会为您的应用程序提供前Honeycomb平台上的操作栏。为此,您需要使用类似ActionBarSherlockActionBarCompat样本的内容。两者都是很好的解决方案,但它们增加了应用程序的复杂性。当前版本的支持包中没有操作栏,这显然是由于技术问题,但我怀疑他们正试图解决这些问题。

因此,如果您想保持简单,请考虑您的应用在ICS&上设置操作栏是合理的。 HC,早期平台上没有操作栏。实际上,Android Dev blog在过去几天有一个帖子,主要是在这些情况下管理菜单和行动项目。

此外,考虑稍后向您的应用程序添加一个前Honeycomb操作栏(例如,使用ActionBarCompat示例中的代码)将不会那么糟糕 - 在我看来,更容易,然后在以后重新编写代码片段。

最后,请注意,您需要使用最新的SDK,以便可以引用诸如holo主题(对于ICS操作栏)和showAsAction="ifRoom"元素等元素,因此您的清单将包含以下内容:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />