我们最近宣布了 Spring Android 的 M1 版本发布,随之而来的是一些关于如何利用 Spring Android Rest Template 和 Spring Android Commons Logging 库构建 Android 应用程序的问题。Google 提供了几种编译 Android 应用程序的方法,包括 SDK 命令行工具和用于 Eclipse 的 ADT(Android 开发工具)插件。遗憾的是,这两种方法都不包含集成的依赖管理支持。
概览
作为 Java 开发者,我们已经开始重视像 Maven 和 Gradle 这样的外部依赖管理工具。传统的 Java 应用程序运行在 JVM 上,而 Android 应用程序运行在 Dalvik 虚拟机上。 Dalvik VM 执行 Dalvik Executable (.dex) 格式的文件。 它运行经过 Java 语言编译器编译并转换为 .dex 格式的类。 构建工具需要支持此过程,才能编译包含依赖项的兼容 Android 应用程序。
将外部库包含在 Android 应用程序中基本上有两种选择。第一种是手动将 jar 文件复制到项目内的 libs 目录中,并在 Eclipse 中更新 classpath。这是最简单的解决方案,也是 ADT 插件最支持的方法。缺点是您必须手动管理依赖项。另一种方法是利用第三方插件,例如 Maven Android Plugin,它能自动从 Maven 仓库中包含依赖项。
在本文中,我将详细介绍如何使用 Android 命令行工具、Maven、Maven Android Plugin 和 Android Maven artifacts 来编译一个使用 Spring Android 库的示例应用程序,并将其部署到 Android 模拟器。配置好 Maven 后,就可以轻松创建构建、将其部署到模拟器、运行测试以及打包应用程序以便部署到 Android Market。在运行示例代码之前,我们将首先重点介绍 pom.xml 中必要的配置设置。此示例中使用的组件如下所示。
Maven 配置
本节介绍使用 Spring Android 和 Maven Android Plugin 进行开发所需的 pom.xml 部分。
Maven Android Plugin
为了使用 Maven 构建 Android 应用程序,您需要在 pom.xml 文件中配置 Maven Android Plugin。Android 应用程序以 apk 文件而非 jar 文件部署到设备上。您必须在 packaging 配置中指定这一点。
<packaging>apk</packaging>
要在构建任务中配置 Maven Android 和 Maven Compiler 插件,请将 sdk 平台设置为所需级别。在此示例中,它设置为 9,对应于 Android 2.3.1 版本。模拟器 avd 值是您在 AVD Manager 中定义的 AVD(Android Virtual Device)的名称。在此示例中,AVD 的名称为“9”,但您可以随意命名 AVD,只要与您创建 AVD 时指定的名称一致即可。这是构建和运行 Android 应用程序所需的插件基本配置...