日期:2014-05-16  浏览次数:20400 次

在 Android 上使用 XML 和 JSON,第 2 部分: 交付混合了 JSON 的 Android 应用程序

?

难以想象还有哪种技术比移动电话更流行。大量的平台在销售和心理份额方面争占此行业的顶级市场。设备是高级的工程样品,真正让它们流行起来的动力在于这些平台上可用的大量应用程序带来的用户体验。具体来说,iPhone 和 Android 平台是最新的设备,点燃了人们的消费欲望。

混合应用程序是用 Android 的 WebView 控件中的 WebKit 引擎构建的。这是一个用户界面小部件,它向 Android 程序员提供 WebKit 的功能。此控件可用于在应用程序中呈现远程 web 页面,以便为开发人员和用户等提供熟悉的用户界面体验,以及在本地 Android 应用程序中利用强大且灵活的 JavaScript 环境。对移动用户可用的大部分应用程序是由移动开发人员通过各平台供应商提供的核心 SDK 编写的。移动设备的流行离不开大量天才的 web 技术程序员,过去十年间,他们在 Web 上大获成功,现在又开创了一种新型的应用程序 —?混合应用程序,即既使用 web 浏览器接口又使用本地移动组件的应用程序。针对 iPhone 和 Android 都存在混合应用程序,不过本文的重点放在 Android 混合应用程序及 JavaScript 和 JSON 的使用上。


首先,我们来看直接在 Android 应用程序中嵌入一个 WebKit 引擎。混合应用程序通常利用 WebView 小部件来为用户界面元素充分利用 WebKit 的优势,但是混合应用程序不仅仅是简单地在小部件中显示一些 HTML。混合应用程序是多才多艺的 — Android SDK 中包含的广泛功能加上 HTML、CSS 和 JavaScript 等 web 技术,使得混合应用程序的功能不可限量。为了实际了解混合应用程序的概念,本文将介绍一个名为 AndroidJSON 的样例应用程序,它实现了 Activity、WebView 和 JSON 之间的很多交互,以交换数据。该应用程序演示了 Activity 和 WebView 宿主的 HTML 及 JavaScript 之间的很多交互,主要特性是一个 JavaScript 计算器。

嵌入在 Android 中的 JavaScript 计算器

大部分基于 SDK 的 Android 应用程序都包含?Activity?类的一个或多个实现。Activity?类本质上是一个屏幕或页面,其中包含由应用程序用户体验的用户界面元素。

Activity?显示一组由程序员定义的用户界面元素,比如按钮、标签、文本输入框、单选按钮列表,等等。所有预期的条目都可在 Android SDK 中找到。除了这些用户界面元素之外,还有一个特殊的小部件,就是?WebView

JavaScript 计算器演示了 Activity 的 Java 环境和 WebView 的 JavaScript 环境之间相辅相成的关系。应用程序不仅仅是要求 WebView 显示 HTML 内容 — 它实际上是连接 Java 环境,以向 JavaScript 环境提供功能,这样可以将两者紧密地集成在一起,从而带来独特的用户体验。一旦两个环境连接起来,就可以 JSON 形式交换数据,以交付各种特性,本文将全面解释这些特性。我们首先来看 JavaScript 计算器如何利用 WebView 小部件。

在深入应用程序是如何构造的细节之前,先花点时间回顾一下应用程序的各种特性。图 1?展示了应用程序屏幕。


图 1. 展示正在工作的 JavaScript 计算器
屏幕截图展示正在工作的 JavaScript 计算器