从 Java 到 Kotlin,Kotlin 学习之路(1) -- 运行第一个 Kotlin 运行程序

Kotlin 简介

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的 Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

Kotlin 的优点

简洁: 大大减少样板代码的数量。
安全: 避免空指针异常等整个类的错误。
互操作性: 充分利用 JVM、Android 和浏览器的现有库。
工具友好: 可用任何 Java IDE 或者使用命令行构建

使用命令运行 kotlin 文件

我们知道运行 java 文件,需要对 java 文件进行编译并且运行。
同样,kotlin 也需要进行编译并且运行,所以需要下载相关 kotlin 库(类似与 java 库),同时配置相关环境能够编译 kotlin 文件;

Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2 ,使用 1.1.2-2 版本,最新版本可在 git 查找;

下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。

kotlin.png

这里需要注意 bin 中要包括 kotlinc-jvm 等文件,之前本人用最新版本的时候发现没有 kotlin-jvm 相关文件,调试了半天总是报错,换回版本后可正常运行;

以下基于 Windows 操作;

创建一个名为 hello.kt 文件,代码如下:

hello.kt

fun main(args: Array) {
    println("hello kotlin!")
}

使用 Kotlin 编译器编译应用:

kotlinc hello.kt 

编译之后可以看到会生成几个文件,其中有一份 HelloKt.class 文件;

hello.kt.png

此时继续使用命令行:

kotlin HelloKt
HelloKt.png

运行完成第一行代码;

Android Studio 中 Kotlin 环境的搭建

Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。

打开 Settings ,在右侧找到 Plugins 选项,搜索框输入 "Kotlin" 查找,点击 Search in repositories(仓库中搜索),然后安装即可,安装完成之后需要重启 Android Studio。


`})80EL`)ABJLC$`MB8DZD4.png

创建项目,并且配置 Kotlin;

image.png

项目创建一个 Empty Activity ;

image.png

配置 Language 选项为 Kotlin 语言;

image.png

查看项目;

image.png

可以看到,项目的结构和 java 项目类似,而相关 Activity 则运用了 Kotlin 语言进行编写,同时文件命名也以 .kt 结尾;

接下来,继续查看项目和主工程下的 gradle 文件;

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

项目中用到了 Kotlin 插件,其版本号为 1.3.50

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.kotlindemo"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.core:core-ktx:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

同时主工程也使用到了 Kotlin 插件,接下来在项目基础上创建一个 Kotlin 的类;

image.png

创建 TestActivity,补充相关代码;

package com.example.kotlindemo

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

/**
 * ****************************************************************
 * 文件名称 : com.example.kotlindemo
 * 作 者 :   huhaiqiang
 * 邮箱 : [email protected]
 * 创建时间 : 2021-03-13 16:42
 * 文件描述 :`
 * 版权声明 : Copyright (C) 
 * 修改历史 : 2021-03-13  1.00 初始版本
 *****************************************************************
 */
class TestActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test);
    }
}

既然写好了第二个页面,就顺便在第一个页面实现一下相关跳转吧;

首先,对 activity_main 页面增加控件 id;




    


MainActivity 中运用 kotlin 语言实现跳转;

        hello_test.setOnClickListener(View.OnClickListener {
            var intent = Intent(this,TestActivity::class.java)
            startActivity(intent)
        })

这里不用再通过 findViewById 方式获取到 View 再次进行设置监听,直接引用 id 即可。

运行 app ,点击 MaiActivity 中的 TextView 即可实现跳转;

java 转换成 kotlin

这里先创建 Java 类

public class TestSwitchActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_switch);
    }
}

然后在 Code 选项中 选择 转换 java 为 kotlin。转换完成后的效果;

class TestSwitchActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_switch)
    }
}
kotlin转换前.png
kotlin转换后.png

同时也可以看到,转换前和转换后文件属性发生了变化;

你可能感兴趣的:(从 Java 到 Kotlin,Kotlin 学习之路(1) -- 运行第一个 Kotlin 运行程序)