返回博客首页
← 所有文章

使用 Gradle 加速 Android 构建

2015 年 9 月 16 日 — 作者:Todor Totev

NativeScript 1.3 为您的开发工作流程引入了两项重大改进,可以针对 iOS 和 Android

  1. CocoaPods 集成以进行 iOS 开发

  2. 切换到 Gradle 以在针对 Android 时开发 {N} 项目

在这篇博文中,我将介绍我们在针对 Android 时切换到 Gradle 的过程,以及如何更新您的开发环境以支持此更改。

在以前的 NativeScript 版本中,CLI 使用 Apache Ant 来构建针对 Android 的项目。我们觉得需要切换到其他东西,因为我们发现 Ant 有点笨拙,而且缺乏我们想要的灵活性。事实上,Android Studio 正在放弃对 Ant 的支持 也迫使我们探索其他选择。我们四处看了看,最终决定使用 Gradle。

Gradle 集成是 {N} 项目的一项重大进步,它提供了一些比 Ant 更好的优势。我建议您阅读 Benjamin Muschko 的文章,该文章详细比较了 Gradle 与 Ant/Maven。对于针对 NativeScript 1.3 的开发人员来说,切换到 Gradle 提高了构建速度。在 NativeScript 1.2 中,使用 Ant 构建“Hello World”项目在我的机器上花了 24 秒。使用 Gradle 和 NativeScript 1.3,我们开箱即用地获得了增量构建,我们可以看到同一个项目的构建大约在 5 秒内完成,性能提高了近 5 倍。Gradle 还提供了与当前和未来版本原生库的无缝集成。

现在您的代码可以消费依赖于它的 Google 和其他供应商库。最后但同样重要的是,我们的 Telerik UI for NativeScript 将附带以 Gradle 友好 AAR 格式打包的 Android 原生位。

如此巨大的变化移动了一些东西。为了舒适地使用我们的新版本,您需要检查和调整机器的配置。首先,更新您的 Android SDK。启动 Android SDK Manager(提示:只需在命令行中键入 `android`),确保选中下面列表中的所有内容。请记住特定版本,它们很重要

  • 安装 SDK 21 或 22

  • 安装 Android SDK Build-tools 22.0.0 或更高版本

  • 安装 Android Support Repository

  • 安装 Android Support Library 21.0.0

  • 检查 ANDROID_HOME 环境变量是否正确设置为 Android SDK 安装的根目录。对于 Windows,转到开始菜单/屏幕并搜索 `environment`,然后选择“编辑您的帐户的环境变量”。对于 Mac 和 Linux,编辑您的 ~/.bash_profile 文件并添加 `export ANDROID_HOME=<Android SDK 根目录的完整路径>`

  • 下载 Gradle 二进制分发版并解压缩它。)并解压缩它。将它的 bin 目录添加到您的 PATH 中。或者如果您使用的是 Mac 和 Homebrew,只需执行 `brew install gradle` 即可。对于 Windows 用户,我们建议您使用 Chocolatey:`choco install gradle`。没错,如果您想跨平台,您需要自己制作巧克力 :)

  • 安装 Java Development Kit (JDK) - 请注意,JRE 不再足够了。此外,确保将 JAVA_HOME 设置为其根目录,并将它的 bin 目录添加到 PATH。

  • 如果您更改了环境变量,请重新启动您的工作控制台以获取更改。

很多设置需要记住,对吧?我们也想到了这一点,我们有用的 doctor 命令(提示:运行 `tns doctor`)会验证您的机器配置并告诉您需要进行哪些更改。

如果您像我一样,喜欢在命令行中工作,那么这一行代码应该可以帮助您配置 Android SDK(它还会添加一些 Android 模拟器映像,以帮助您更轻松地开发):

echo yes | android update sdk --filter
tools,platform-tools,android-22,android-17,build-tools-22.0.1,sys-img-x86-android-22,extra-android-m2repository,extra-google-m2repository,extra-android-support
--all --no-ui

使用 Homebrew 的 Mac 用户,您应该运行以下命令以正确设置您的环境:

echo "export JAVA_HOME=$(/usr/libexec/java_home)" >>
~/.bash_profile
echo "export ANDROID_HOME=/usr/local/opt/android-sdk" >>
~/.bash_profile

最后,一个重要的通知。从 1.3 版本开始,您不再能够创建基于 Ant 的项目。我们确保在这个版本中构建和开发您的现有项目能够正常工作。但从我们的 1.5 版本(2015 年 11 月初)开始,我们计划完全移除对基于 Ant 的项目的支持。我们认为,随着 Google 和其他供应商转向 Android Studio 和 Gradle,这是前进的方向。然而,我们希望您有充足的时间将您的现有代码更新到新的工具。

要升级您的项目,请参阅我们的 在线文档。如果您正在开发使用 Eclipse 项目的 Android 原生代码的插件,那么您需要做更多的事情。您需要将您的 Eclipse 项目导入 Android Studio 并将其迁移到基于 Gradle 的构建,以生成 AAR 文件。之后,您必须更改插件以包含生成的 aar 文件。最后,在依赖于您插件的项目中,使用 `tns plugin remove <您的插件> && tns plugin add <您的插件>` 删除旧的插件并添加新的插件。

我们希望您能像我们喜欢创建 {N} CLI 1.3 一样喜欢使用它。祝您构建出最棒的应用!