使用Groovy 2.4创建Android应用

本文介绍了如何使用Groovy 2.4为Android开发应用程序,包括设置Android Studio、配置Gradle,以及Groovy在Android开发中的优势和注意事项。Groovy的动态特性减少了代码量,简化了如数据适配器更新和事件监听等任务,但可能增加运行时错误。

几天前, Groovy 2.4发布了 。 主要新闻之一是Groovy现在正式支持Android应用程序开发。 为了了解其工作原理,我使用了Groovy为Android创建一个小的ToDo列表示例应用程序。 在本文中,我将展示使用Groovy创建Android应用程序所需的步骤以及Groovy如何简化Android应用程序的开发。

以下屏幕显示了用Groovy编写的示例应用程序。 您可以在GitHub上找到完整的源代码。

groovy-android-app_s

在Android上运行Groovy

首先,我们需要已经包含最新版本的Android SDK的Android Studio 。 去年,默认的Android环境从Eclipse和Ant更改为Android Studio(基于IntelliJ构建)和Gradle。

要在Android上运行Groovy,我们将需要Gradle插件,因此请确保您没有使用基于Eclipse / Ant的旧开发工具。

我们在Android Studio中创建一个新的Android项目,并将以下行添加到我们的构建文件中:

顶级构建文件( <project> /build.gradle ):

buildscript {
  ..
  dependencies {
    ..
    classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.5'
  }
}

应用程序构建文件( <project> /app/build.gradle ):

apply plugin: 'com.android.application'

// apply Groovy Android plugin after the standard Android plugin
apply plugin: 'groovyx.grooid.groovy-android'

dependencies {
  ..
  compile 'org.codehaus.groovy:groovy:2.4.0:grooid'
}

Groovy Android Gradle插件的源代码和文档可在GitHub找到

这就是我们需要的所有配置,现在我们可以直接转到Groovy代码。

请注意,Groovy代码文件需要放置在src / main / groovy中,而不是src / main / java中。 将Groovy文件添加到src / main / java将不起作用!

用Groovy开发Android应用程序的方式与使用Java完全相同。 由于Groovy具有Java互操作性,因此您可以像使用Java一样使用和扩展Android类。

改善Android Studio中的Groovy体验

Android Studio已经包含Groovy插件。 因此,您可以立即获得Groovy语法支持。

但是,您可能会错过从上下文菜单创建新Groovy类的选项。 幸运的是,这可以在Android Studio中轻松配置。 您只需要创建一个新的文件模板( 设置>文件和代码模板 ),然后添加以下模板代码:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
class ${NAME} {
}

文件模板

现在,您可以使用上下文菜单快速创建新的Groovy类:

文件模板新

您可能还需要研究此插件该插件可以解决在Groovy中重写超类方法时无法自动完成的问题。 感谢@ arasthel92 ,他告诉了我这个插件。

运行Groovy应用程序

运行Groovy应用程序与运行Java应用程序相同。 我们可以简单地按一下Android Studio中的运行 (或调试 )按钮,然后将应用程序部署到连接(或仿真)的设备上。

很棒的事情是Groovy调试器可以直接使用。 我们可以从Android Studio调试正在运行的Groovy应用程序。

调试

伟大的部分

Groovy的好处是它减少了您需要编写大量代码的行。 它的动态特性还使您摆脱了使用Android时通常需要进行的所有类型转换。

一个示例可以在ToDoListActivity.onResume()中找到。 在这种方法中,Android ListAdapter的数据被修改。 使用Java,它看起来像这样:

ArrayAdapter<ToDo> adapter = (ArrayAdapter<ToDo>) getListAdapter();
ToDoApplication application = (ToDoApplication) getApplication()
adapter.clear()
adapter.addAll(application.getToDos());
adapter.notifyDataSetChanged()

使用Groovy,我们可以像这样简单地重写它:

listAdapter.clear()
listAdapter.addAll(application.toDos)
listAdapter.notifyDataSetChanged()

Groovy的闭包是使用Android时非常方便的另一个功能。

要将点击侦听器添加到按钮,您需要在Java中编写类似的内容

Button button = (Button) findViewById(R.id.newTodoButton);
button.setOnClickListener(new View.OnClickListener() {
  @Override
  void onClick(View v) {
    ...
  }
});

使用Groovy只是

def button = findViewById(R.id.newTodoButton)
button.onClickListener = {
  ...
}

有关完整的示例,请参见CreateNewTodoActivity

注意运行时错误

动态语言通常会增加您在运行时发现的错误数量。 根据要构建的应用程序,这可能是一个严重的问题。 较大的应用程序可能需要大量的部署时间(该应用程序需要打包,通过USB复制到设备,在设备上安装和启动)。

Groovy的@CompileStatic批注可用于解决此问题。 它可以用来静态编译您的Groovy代码的一部分,以减少运行时错误:

@CompileStatic
class ToDoListActivity extends ListActivity {
  ..
}

@CompileStatic的缺点是(显然)您不能再使用Groovy的动态功能。

快速总结

使Groovy在Android上运行非常容易。 由于Groovy与Java具有互操作性,因此在同一应用程序中混合Groovy和Java也非常容易。 实际上,Android Studio中的Groovy集成比我预期的要好(但是,仍然需要一些手动调整)。

翻译自: https://www.javacodegeeks.com/2015/02/creating-android-apps-groovy-2-4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值