2.4 Android版的HelloWorld

2017谷歌I/O大会:宣布 Kotlin 成 Android 开发一级语言。

Kotlin极简教程

2017谷歌I/O大会上,谷歌宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java100%互通,并具备诸多Java尚不支持的新特性。谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。

JetBrains在2010年首次推出Kotlin编程语言,并在次年将之开源。下一版的AndroidStudio(3.0)也将提供支持。

下面我们简要介绍如何在Android上开始一个Kotlin的HelloWorld程序。

对于我们程序员来说,我们正处于一个美好的时代。得益于互联网的发展、工具的进步,我们现在学习一门新技术的成本和难度都比过去低了很多。

假设你之前没有使用过Kotlin,那么从头开始写一个HelloWorld的app也只需要这么几步:

  1. 首先,你要有一个Android Studio。
    本节中,我们用的是2.2.3版本,其它版本应该也大同小异。
  1. Android Studio 2.3.1
  2. Build #AI-162.3871768, built on April 1, 2017
  3. JRE: 1.8.0_112-release-b06 x86_64
  4. JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
  1. 其次,安装一个Kotlin的插件。

依次打开:Android Studio > Preferences > Plugins,

Kotlin极简教程

然后选择『Browse repositories』,在搜索框中搜索Kotlin,结果列表中的『Kotlin』插件,如下图

Kotlin极简教程

点击安装,安装完成之后,重启Android Studio。

  1. 新建一个Android项目

重新打开Android Studio,新建一个Android项目吧,添加一个默认的MainActivity——像以前一样即可。

  1. 转换Java to Kotlin

安装完插件的AndroidStudio现在已经拥有开发Kotlin的功能。我们先来尝试它的转换功能:Java -> Kotlin,可以把现有的java文件翻译成Kotlin文件。

打开MainActivity文件,在Code菜单下面可以看到一个新的功能:Convert Java File to Kotlin File。

Kotlin极简教程

点击转换,

Kotlin极简教程

可以看到转换后的Kotlin文件:MainActivity.kt

  1. package com.kotlin.easy.kotlinandroid
  2. import android.support.v7.app.AppCompatActivity
  3. import android.os.Bundle
  4. class MainActivity : AppCompatActivity() {
  5. override fun onCreate(savedInstanceState: Bundle?) {
  6. super.onCreate(savedInstanceState)
  7. setContentView(R.layout.activity_main)
  8. }
  9. }

这个转换功能,对我们Java程序员在学习Kotlin是十分实用。我们可以基于我们之前的Java编码的经验来迅速学习Kotlin编程。

  1. 配置gradle文件

MainActivity已经被转换成了Kotlin实现,但是项目目前gradle编译、构建、运行还不能执行,还需要进一步配置一下,让项目支持grade的编译、运行。当然,这一步也不需要我们做太多工作——IDEA都已经帮我们做好了。

在Java代码转换成Kotlin代码之后,打开MainActivity.kt文件,编译器会提示”Kotlin not configured”,点击一下Configure按钮,IDEA就会自动帮我们把配置文件写好了。

我们可以看出,主要的依赖项是:

  1. kotlin-gradle-plugin
  2. plugin: 'kotlin-android'
  3. kotlin-stdlib-jre7

完整的配置文件如下:

Project build.gradle

  1. // Top-level build file where you can add configuration options common to all sub-projects/modules.
  2. buildscript {
  3. ext.kotlin_version = '1.1.2-4'
  4. repositories {
  5. jcenter()
  6. }
  7. dependencies {
  8. classpath 'com.android.tools.build:gradle:2.3.1'
  9. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  10. // NOTE: Do not place your application dependencies here; they belong
  11. // in the individual module build.gradle files
  12. }
  13. }
  14. allprojects {
  15. repositories {
  16. jcenter()
  17. }
  18. }
  19. task clean(type: Delete) {
  20. delete rootProject.buildDir
  21. }

Module build.gradle

  1. apply plugin: 'com.android.application'
  2. apply plugin: 'kotlin-android'
  3. android {
  4. compileSdkVersion 25
  5. buildToolsVersion "25.0.2"
  6. defaultConfig {
  7. applicationId "com.kotlin.easy.kotlinandroid"
  8. minSdkVersion 14
  9. targetSdkVersion 25
  10. versionCode 1
  11. versionName "1.0"
  12. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  13. }
  14. buildTypes {
  15. release {
  16. minifyEnabled false
  17. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  18. }
  19. }
  20. }
  21. dependencies {
  22. compile fileTree(dir: 'libs', include: ['*.jar'])
  23. androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
  24. exclude group: 'com.android.support', module: 'support-annotations'
  25. })
  26. compile 'com.android.support:appcompat-v7:25.3.1'
  27. compile 'com.android.support.constraint:constraint-layout:1.0.2'
  28. testCompile 'junit:junit:4.12'
  29. compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
  30. }
  31. repositories {
  32. mavenCentral()
  33. }

所以说使用IDEA来写Kotlin代码,这工具的完美集成会让你用起来如丝般润滑。毕竟Kotlin的亲爸爸JetBrains是专门做工具的,而且Intelli IDEA又是那么敏捷、智能。

配置之后,等Gradle Sync完成,即可运行。

6.运行

运行结果如下

Kotlin极简教程

工程源码:https://github.com/EasyKotlin/KotlinAndroid