博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin 之旅8 实际应用
阅读量:6038 次
发布时间:2019-06-20

本文共 2653 字,大约阅读时间需要 8 分钟。

###Kotlin的应用领域

  • Kotlin Script,例如编写Gradle脚本
  • Java虚拟机应用,例如Web应用、JavaFx
  • 前端开发,Kotlin1.1开始正式支持Kotlin-JavaScript
  • Android开发,Kotlin的主要应用
  • Native程序,直接编译成机器码,不依赖于JVM,支持与C代码交互
  • IOS开发,最近Kotlin已经开始支持IOS开发了

可见,Kotlin的目标是全栈语言。

###Kotlin脚本

例如我们写一个hello.kts:

import java.io.Fileprintln("hello kotlin script")//列出当前目录文件File(".").list().forEach(::println)复制代码

然后我们可以直接在IDEA中运行,也可以通过下面的命令执行(需要安装Kotlin编译器):

kotlinc -scrit hello.kts复制代码

####Kotlin脚本运行原理

首先会编译成一个类,代码会加到构造方法中,然后被Kotlinc加载,加载构造的时候就执行了我们脚本代码。

###Kotlin Android开发

####项目转换

创建一个Android项目,然后点击Tools->Kotlin->Configure Kotlin in Project,即可完成项目的转换,实际上是修改了Gradle脚本:

顶层的Gradle脚本(只给出变化的部分):

buildscript {    ext.kotlin_version = '1.1.4-2'    dependencies {        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"    }}复制代码

Module的Gradle脚本(只给出变化的部分):

apply plugin: 'kotlin-android'dependencies {    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"}复制代码

####代码转换

接下来将Java代码转换成Kotlin代码,打开一个Java类,选择Code->Convert Java File to Kotlin File

例如,转换后的Activity是这样的:

class MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)    }}复制代码

####不用findView

在Gradle脚本中加入这个插件:

apply plugin: "kotlin-android-extensions"复制代码

在布局文件中定义的控件:

复制代码

可以直接这样使用:

tvHello.text = "hello"复制代码

####使用anko

首先引入依赖:

compile 'org.jetbrains.anko:anko-sdk15:0.9.1'复制代码

anko这个库扩展了很多方法,比如:

监听与吐司:

fun android.view.View.onClick(l: (v: android.view.View?) -> Unit) {    setOnClickListener(l)}fun Context.toast(message: Int) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show()//实际使用tvHello.onClick { view ->    toast(view!!.id)}复制代码

startActivity方法:

//不传参数startActivity
()//传参数startActivity
("key" to "value")//获取参数intent.extras["key"]?.let { toast(it.toString())}复制代码

书写界面:

relativeLayout {    textView("hello") {    }.lparams {        width = wrapContent        height = wrapContent    }}复制代码

###Kotlin前端开发

例如创建一个Kotlin-JavaScript项目,创建一个.kt文件:

import kotlin.browser.documentfun main(args: Array
) { println("控制台输出") document.writeln("页面输出")}复制代码

然后写一个测试页面:

    
Title
复制代码

自己写的Kotlin代码会被编译成“out/production/KotlinJs/项目名.js”文件,只需要在HTML中导入Kotlin官方的库以及自己生成的库即可使用。

Kotlin调用JavaScript代码:

例如我们有一个Test.js文件:

function test() {    alert("haha")}复制代码

Kotlin中是这样调用的:

js("test()")复制代码

HTML代码中只需要添加js库即可:

    
Title
复制代码

######Tips:由于这里是Kotlin调用JS,因此JS需要先加载,这涉及到前段端的知识。

###关于更多的应用,将后续更新,敬请期待。

如果觉得我的文字对你有所帮助的话,欢迎关注我的公众号:

我的群欢迎大家进来探讨各种技术与非技术的话题,有兴趣的朋友们加我私人微信huannan88,我拉你进群交(♂)流(♀)

转载地址:http://snlhx.baihongyu.com/

你可能感兴趣的文章
小孩的linux
查看>>
SpringMVC、MyBatis声明式事务管理
查看>>
开发者详解:端游及手游服务端的常用架构
查看>>
JavaScript History对象
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>
ListView优化
查看>>
【原创】 PostgreSQL 实现MySQL 的auto_increment 字段
查看>>
vs2015添加vc助手
查看>>
检测点1.1
查看>>
android--------阿里 AndFix 热修复
查看>>
control.add()
查看>>
Sublime text3中配置Github
查看>>
备份软件 FreeFileSync 怎么用
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
CentOS7 睡眠 休眠 关机 电源
查看>>
SqlServer里DateTime转字符串
查看>>
2019-4-23 plan
查看>>
固定弹层叉掉
查看>>
[编解码] 关于base64编码的原理及实现
查看>>