做自由与创造的先行者

抽象化新 API

Android开发手册    

假设您希望使用操作栏标签页作为应用中的顶层导航的主要形式。很遗憾,ActionBar API 仅适用于 Android 3.0 或更高版本(API 级别 11 及更高级别)。因此,如果您希望将应用分发到搭载更低版本平台的设备,则需要提供支持较新 API 的实现,同时提供使用较旧 API 的回退机制。

在本课程中,您会构建一个标签页式界面组件,该组件使用具有版本特定实现的抽象类以提供向后兼容性。本节课介绍如何为新标签页 API 创建抽象层,这是构建标签页组件的第一步。

为抽象化做准备

Java 编程语言中的抽象化涉及创建一个或多个接口或抽象类以隐藏实现细节。对于新的 Android API,您可以使用抽象化来构建版本感知组件,以在新设备上使用新的 API,而在旧设备上回退到更兼容的旧 API。

使用此方法时,首先要确定要以向后兼容的方式使用哪些新类,然后根据新类的公共接口创建抽象类。在定义抽象接口时,应尽可能镜像新 API。这可以最大限度地提高向前兼容性,并且在未来不再需要抽象层时,也更容易将其丢弃。

在为这些新 API 创建抽象类之后,可以在运行时创建和选择任意数量的实现。为了确保向后兼容性,这些实现可能会因所需的 API 级别而异。因此,一种实现可能使用最近发布的 API,而其他实现可能使用旧 API。

创建抽象标签页接口

要创建标签页的向后兼容版本,应首先确定您的应用需要哪些功能和特定的 API。对于顶部的标签页,假设您具有以下功能要求:

标签页标识应显示文本和图标。

标签页可以与 fragment 实例关联。

Activity 应该能够监听标签页更改。

提前准备好这些要求可让您控制抽象层的范围。这意味着您可以花更少的时间创建抽象层的多个实现,并更快开始使用新的向后兼容实现。

标签页的主要 API 位于 ActionBar 和 ActionBar.Tab 中。这些是为了使标签页能够感知版本而抽象化的 API。此示例项目的要求是向后兼容 Eclair(API 级别 5),同时充分利用 Honeycomb(API 级别 11)中的新标签页功能。

网站建设开发|APP设计开发|小程序建设开发
下一篇:用新版 API 代理
上一篇:Android构建离线优先应用