专栏首页肖蕾的博客AndroidStudio中集成使用Kotlin(一)AndroidStudio中集成使用Kotlin(一)

AndroidStudio中集成使用Kotlin(一)AndroidStudio中集成使用Kotlin(一)

AndroidStudio中集成使用Kotlin(一)

在Android开发中,不仅仅可以使用Java作为它的开发语言,好早就开始流行使用Kotlin进行Android开发了,集成这种语言也是相当简单。

一、安装插件

使用AndroidStudio -> File -> Settings -> Plugins -> Browse repositories -> 搜索 kotlin ,然后选择哪个名字为 Kotlin 的安装就好,其他的任何都可以不要。

二、gradle添加依赖

Modulebuild.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'//这里添加
apply plugin: 'kotlin-android-extensions'//这里添加

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.xiaolei.kotlinapp"
        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'])
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"//主要是这两个依赖
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"//主要是这两个依赖
}
repositories {
    //修改成国内阿里云的maven地址,否则某些地方下载不下来
    maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}

Projectbuild.gradle

buildscript {
    ext.kotlin_version = '1.1.0'
    repositories {
        maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
allprojects { 
    repositories {
        maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

三、测试

打开你的MainActivity,AndroidStudio工具栏 -> Code -> Convert Java File to Kotlin File

import android.app.Activity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : Activity()
{
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        textview.text = "hehe"
    }
}

这里你可以看到,我根本没用写什么findViewBtId,但是只要我的XML中有这个ID,我就可以直接拿这个对象,再有一个就是,textview.text = "hehe"直接操作属性,当然Kotlin的优点还有大把,我这里只是提供一个集成的方式。


续:后来发现,在项目中编译时间略慢,一番询问才发现,原来还有一个增量编译的机制,可以加快编译速度 项目根目录的gradle.properties里加

    kotlin.incremental=true

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kotlin1.3.30插件的一个小警告

    Xiaolei123
  • 使用Retrofit打印请求日志,过滤改变服务器返回结果,直接获取String字符串直接获取字符串手动解析查看Retrofit请求网络日志自定义Interceptor实现过滤改变请求返回的数据(可使用

    Xiaolei123
  • Android 自定义Seekbar样式

    Xiaolei123
  • Rxjava 2.x 源码系列 - 线程切换 (下)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/de...

    用户2965908
  • HBase授权 转

    HBase在不开启授权的情况下,任何账号对HBase集群可以进行任何操作,比如disable table/drop table/major compact等等。

    双面人
  • 反向代理华为云OBS实现自定义域名访问

    w候人兮猗
  • python常见问题

    __new__是一个静态方法,__init__是一个实例方法 __new__返回一个创建的实例,__init__什么都不返回 ...

    步履不停凡
  • 物联网时代-跟着Thingsboard学IOT架构-HTTP设备协议及API相关限制

    thingsboard GitHub: https://github.com/thingsboard/thingsboard

    sanshengshui
  • Android 关于GridView那些事

    版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50...

    Hankkin
  • 基础知识 | 每日一练(163)

    小林:有可移植解决方法。下面是一些你可以在你的系统中寻找的函数: clock(), delay(), ftime(), getimeofday(), mslee...

    闫小林

扫码关注云+社区

领取腾讯云代金券