我们最近宣布了 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 可执行文件 (.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 platform 设置为所需的级别。在此示例中,将其设置为 9,对应于 Android 版本 2.3.1。emulator avd 值是您在 AVD Manager 中定义的 AVD(Android 虚拟设备)的名称。在此示例中,AVD 的名称为“9”,但 AVD 的名称可以随意命名,只要与您创建 AVD 时指定的名称匹配即可。这是构建和运行 Android 应用程序所需插件的基本配置...