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 条评论
登录 后参与评论

相关文章

来自专栏编程思想之路

Android中应用调用系统权限

现在设备的安全性越来越受到重视,随之而来的便是开发中的各种不便,比如有普通权限,运行时权限,系统权限之分。对于运行时权限的添加可以参考 对于Android中各个...

2396
来自专栏7号代码

Android应用界面开发——Handler(实现倒计时)

当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,所以,主线程通常又被叫做UI线程。

972
来自专栏小鄧子的技术博客专栏

【译】Retrofit 2 - 如何从服务器下载文件

如果你在阅读本文前没有写过任何一行Retrofit请求代码,那么最好看一下前面几篇博客。对于很多Retrofit使用者来说:定义一个下载文件的请求与其他请求几乎...

1021
来自专栏技术小黑屋

Android处理崩溃的一些实践

对于任何程序来说,崩溃都是一件很难避免的事情,当然Android程序也不例外。在Android程序中,引起崩溃的多属于运行时异常或者错误,对于这些异常我们很难做...

642
来自专栏学海无涯

Android开发之DownloadManager的使用

Android 开发中,经常有从服务器下载数据的需求出现,尤其是在线更新App的情形。其基本思路是根据本地的App版本号和服务器的版本号进行比较,如果服务器版本...

3997
来自专栏Android先生

(新瓶旧酒)谷歌官方MVP项目学习--浅入源码

项目的目的是通过展示各种架构app的不同方式来帮助开发者解决架构问题。项目中通过不同的架构概念及方式实现了功能相同的app。你可以用示例来当做参考,或是干脆拿来...

861
来自专栏郭霖

Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

我们的Glide系列文章终于要进入收尾篇了。从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久。 在前面的六篇文章中,我...

4165
来自专栏向治洪

android混淆

为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样prog...

1799
来自专栏三流程序员的挣扎

Navigation 详解三

在 BottomNavigationActivity 中添加 Toolbar,修改主题为 NoActionBar 的。

822
来自专栏Android机动车

用代码手把手教你使用MVVM

网上关于MVVM框架的搭建和使用的文章很少,大多提到MVVM框架,就是在介绍DataBinding的使用。对于MVVM中各模块之间如何划分,如何定义,又是如何配...

842

扫码关注云+社区