Android第一开发语言—初探Kotlin

来源:互联网 发布:mac 标志发亮 编辑:程序博客网 时间:2024/05/01 05:10

我的简书:简书

前言

众所周知,2017Google I/O大会刚开完没几天,可能对于Android开发者来说最关注的内容就是Google将Kotlin作为Android的第一开发语言。在Android Studio2.3版本之前要使用Kotlin开发的话,需要安装Kotlin plugin,在大会进行的同时,官方也发布了Android Studio3.0预览版,称3.0包含开箱即用的Kotlin支持。

有了当初eclipse切换到Android Studio的前例,现在Kotlin的出现,所以个人觉得要想继续开发Android的话,必须学学Kotlin了。毕竟要跟着Google的步伐走才行,不过短期内Kotlin肯定暂时不会取代Java。

一、Kotlin是什么?

  • 简介:Kotlin 是一个由 JetBrains(作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言)开发的基于JVM的编程语言,它可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。

  • Kotlin的设计目标

    • 创建一种兼容Java的语言;

    • 让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针;

    • 让它比Java更简洁,通过支持variable type inference,higher-order functions (closures) extension functions,mixins and first-class delegation等实现;

    • 让它比最成熟的竞争对手Scala语言更加简单。

二、Kotlin的特性及为什么使用Kotlin?

Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制:

  • 良好的兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以在较旧的 Android 设备上运行而无任何问题。Kotlin 工具在 Android Studio 中会完全支持,并且兼容 Android 构建系统。

  • 完美支持:由于非常相似的字节码结构,Kotlin 应用程序的运行速度与 Java 类似。 随着 Kotlin 对内联函数的支持,使用 lambda 表达式的代码通常比用 Java 写的代码运行得更快。

  • 支持互操作:Kotlin 可与 Java 进行 100% 的互操作,允许在 Kotlin 应用程序中使用所有现有的 Android 库 。这包括注解处理,所以数据绑定和 Dagger 也是一样。

  • 轻量级:Kotlin 具有非常紧凑的运行时库,可以通过使用 ProGuard 进一步减少。 在实际应用程序中,Kotlin 运行时 只增加几百个方法以及 .apk 文件不到 100K 大小。

  • 高效编译:Kotlin 支持高效的增量编译,所以对于 清理构建会有额外的开销,增量构建通常与 Java 一样快或者更快。

  • 容易入门:对于 Java 开发人员,Kotlin 入门很容易。包含在 Kotlin 插件中的自动 Java 到 Kotlin 的转换器 有助于迈出第一步。Kotlin 心印 通过一系列互动练习提供了语言主要功能的指南。

三、Kotlin在Android Studio2.3之前的环境搭建

  • 1、安装Kotlin插件
    a、打开Android Studio, File -> Settings -> Plugins:点击Browse Repositories:

打开Plugins

b、搜索Kotlin,点击install:

搜索安装Kotlin

c、重启Android Studio即可生效

重启Android Studio

  • 2、将Java代码转换为Kotlin
    安装插件后,可以将java代码直接转换为Kotlin代码,快捷键:Ctrl+Alt+Shift+K

代码转换

转换前:

package com.shawpoo.app.kotlin;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

转换后:

package com.shawpoo.app.kotlinimport android.support.v7.app.AppCompatActivityimport android.os.Bundleclass MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)    }}
  • 3、工程中配置Kotlin

打开Tools-> Kotlin-> Configure Kotlin in Project:

配置Kotlin

选择配置时有如下对话框,选择已安装的最新版本即可:

选择安装最新版本

Kotlin 配置完成后,应用程序的 build.gradle 文件会更新。 点击同步gradle之后可以看到新增了 apply plugin: ‘kotlin-android’ 及其依赖。

  • 4、构建和发布用于 Android 的 Kotlin 应用程序

最后构建应用程序,在虚拟机或连接的设备上运行。 所有这些工作与 Java 并无区别。 你可以发布应用程序,并以类似于使用 Java 编写的 Android 应用程序的方式进行签名。

Kotlin有着极小的运行时文件体积:整个库的大小约 859KB(1.1.2-2 版本)。这意味着 Kotlin 对 apk 文件大小影响微乎其微。

就对比 Kotlin与Java所编写的程序而言,Kotlin 编译器所生成的字节码看上去几乎毫无差异。

四、拓展

用于 Android 开发的工具

Kotlin 团队为 Android 开发提供了一套超越标准语言功能的工具:

  • Kotlin Android 扩展是一个编译器扩展, 可以让你摆脱代码中的 findViewById()
    调用,并将其替换为合成的编译器生成的 属性。

  • Anko 是一个提供围绕 Android API 的 Kotlin 友好的包装器的库 ,以及一个可以用 Kotlin 代码替换布局 .xml 文件的 DSL。

扩展阅读

Kotlin中文文档

Kotlin在线工具

Kotlin官方在Github的资料