Kotlin——初始Kotlin及Android Studio配置環(huán)境開發(fā)HelloKotlin

引言

2017年Google I/O大會(huì)除了展示了Google 強(qiáng)大的人工智能(深度機(jī)器學(xué)習(xí)算法)在他核心產(chǎn)品的應(yīng)用之外,還給我們開發(fā)者帶來了官方認(rèn)證的一種高效的程序語言——Kotlin而且正式成為開發(fā)Android 的第一程序語言,可以預(yù)見這種誕生在很多年前的程序語言在未來的市場有多廣大,至少成為了Android開發(fā)的標(biāo)配吧,所以有必要深入學(xué)習(xí)下。

一、Kotlin概述

Kotlin是JetBrains開發(fā)的基于JVM的語言,而JetBrains因?yàn)閯?chuàng)造了一個(gè)強(qiáng)大的Java開發(fā)IDE——Intellij,Google 官方的Android IDE的Android Studio就是基于Intellij的平臺(tái)的插件,所以Android Studio能夠非常完美地理解、編譯運(yùn)行Kotlin代碼并且完全兼容現(xiàn)有的Java代碼。而且對Java開發(fā)者來說,Kotlin是非常非常容易學(xué)習(xí),語言的大部分內(nèi)容都是與我們熟悉的Java語法元素的非常相似,即使基礎(chǔ)概念不同對比著也能很好的理解迅速地掌握它。

這里寫圖片描述

二、Kotlin相比于Java的優(yōu)勢

  • 它更加易表現(xiàn):這是它最重要的優(yōu)點(diǎn)之一。你可以編寫少得多的代碼。
  • 它更加安全:Kotlin是空安全的,也就是說在我們編譯時(shí)期就處理了各種null的情況,避免了執(zhí)行時(shí)異常。如果一個(gè)對象可以是null,則我們需要明確地指定它,然后在使用它之前檢查它是否是null。你可以節(jié)約很多調(diào)試空指針異常的時(shí)間,解決掉null引發(fā)的bug。
  • 它是函數(shù)式的:Kotlin是基于面向?qū)ο蟮恼Z言。但是就如其他很多現(xiàn)代的語言那樣,它使用了很多函數(shù)式編程的概念,比如,使用lambda表達(dá)式來更方便地解決問題。其中一個(gè)很棒的特性就是Collections的處理方式。
  • 它可以擴(kuò)展函數(shù):這意味著我們可以擴(kuò)展類的更多的特性,甚至我們沒有權(quán)限去訪問這個(gè)類中的代碼。
  • 它是高度互操作性的:你可以繼續(xù)使用所有的你用Java寫的代碼和庫,因?yàn)閮蓚€(gè)語言之間的互操作性是完美的。甚至可以在一個(gè)項(xiàng)目中使用Kotlin和Java兩種語言混合編程。
  • 最后構(gòu)建應(yīng)用程序,無論是在虛擬機(jī)或連接的設(shè)備上運(yùn)行。,所有這些工作與 Java 并無區(qū)別,也采用類似于 Java 編寫的 Android 應(yīng)用程序的方式進(jìn)行簽名。更重要的是Kotlin有著極小的運(yùn)行時(shí)文件體積(整個(gè)庫的大小約 859KB),Kotlin 編譯器所生成的字節(jié)碼看上去也幾乎毫無差異,對 apk 文件大小影響微乎其微。

三、Kotlin環(huán)境的配置

1、安裝Kotlin插件

在Android Studio 3.x以下版本中,Kotlin還未集成到Android Studio中,不過下面團(tuán)隊(duì)也考慮到了這一點(diǎn)我們只要在插件中安裝Kotlin即可(需要注意的是有時(shí)候網(wǎng)絡(luò)不好的話,可能得翻Q,而且在最新版的插件中已經(jīng)把以前的插件都集成到一起了)


這里寫圖片描述

2、引入并配置Kotlin開發(fā)環(huán)境

引入Kotlin庫,在Android Studio 中有兩種操作方式:圖形界面自己編輯Gradle腳本,本質(zhì)都是一樣的都是通過Gradle來引用,圖形界面操作只不過是自動(dòng)編輯Gradle腳本。

2.1、通過Android Studio 的圖形界面配置

這里寫圖片描述

2.2、通過編輯Gradle腳本配置

  • 在Project目錄下的build.gradle腳本引入
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.0.0'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"http://引入Kotlin

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
這里寫圖片描述
  • 在Module目錄下的build.gradle腳本引入
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'//引入kotlin
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.crazymo.kotlin"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"http://引入Kotlin
}
這里寫圖片描述

三、Kotlin的開發(fā)

以我的經(jīng)驗(yàn),使用 Kotlin 的最便捷方式,無疑是將 Java 代碼自動(dòng)轉(zhuǎn)換為 Kotlin,先直接使用 Java 編寫代碼,再復(fù)制粘貼到 Kotlin 文件中,Android Studio會(huì)提示需要轉(zhuǎn)換代碼。

1、 Java 代碼轉(zhuǎn)換為 Kotlin

首先打開對應(yīng)的Java文件并選中,使用 Convert Java File to Kotlin File 命令。在Android Studio中使用命令的方式有以下幾種:

  • Find Action ——通過工具菜單欄Help——>Find Action或按下 快捷鍵Ctrl+Shift+A彈出FindAction 窗口

  • 通過工具菜單欄Code——>Convert Java File to Kotlin File

    這里寫圖片描述

2、直接創(chuàng)建Kotlin Activity

在Android Studio 2.3.x下,New ——>Kotlin ActivityKotlin File/Class 即可創(chuàng)建Kotlin 語言的類。

package com.crazymo.kotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

class Main2Activity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
    }
}

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/img_guide_2">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Kotlin !!!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintHorizontal_bias="0.027"
        app:layout_constraintVertical_bias="0.047"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="32sp"/>

</android.support.constraint.ConstraintLayout>
這里寫圖片描述

小結(jié)

Kotlin的配置就是這么簡單,接下來我們正式進(jìn)入Kotlin的世界,去學(xué)習(xí)他的基本語法和用法,待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容