AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

Kotlin 成为正式的 Android 编程语言

  • 2017-05-22
  • 本文字数:940 字

    阅读完需:约 3 分钟

在 Google I/O 2017 大会上,Google 正式宣布 Android Studio 3.0 完全支持 Kotlin ,Kotlin 也将从 JetBrain 移交给独立的非盈利组织来进行后续的开发。

Google 正式将 Kotlin 加入到 Android 的开发语言行列,其他为数不多的语言还包括 Java 和 C++。关于为什么选择 Kotlin,Google 说“Kotlin 简洁、表现力强,而且具有类型安全和空值安全(null-safe)的特点,很多 Android 开发者发现 Kotlin 可以让开发变得更快也更有趣”。另一个很重要的原因是 Kotlin 可以与 Java 进行完整的互操作,并且也是运行在 JVM 上。Kotlin 还能调用 C++ 和 Android 代码,因为它可以通过 external 标识符来支持 JNI。Kotlin 的源代码可以被编译成 JVM 的字节码,也可以生成 JavaScript 代码。

在过去,开发人员需要通过 Android Studio 的插件来使用 Kotlin,而现在,他们可以在 Android Stuido 3.0 里直接使用 Kotlin,包括重构、自动完成、lint、调试和其他操作。Android Studio 3.0 也是在 Google I/O 2017 大会上发布的,不过现在只有处于 canary 阶段的预览版本,可能还需要几个月的时间才能发布正式版。

Kotlin 与 Java 之间的互操作性是它被广泛采用的特性之一。Android 的 Java 代码可以被 Kotlin 调用,Kotlin 的代码也可以被 Java 调用,一个 Android 项目里可以包含 Java 文件和 Kotlin 文件,Java 文件还可以被转成 Kotlin 文件。开发人员不一定要全面地学习 Kotlin,他们可以继续使用 Java 开发,然后试试水,看看会不会喜欢上 Kotlin。对于喜欢 Kotlin 简洁性的开发者来说,他们或许会更多地使用 Kotlin。

Kotlin 兼容 JDK 6 及以上版本,它可以运行在大多数 Android 版本上,包括一些比较旧的版本。Android 同时也支持 Kotlin 的 coroutine,不过因为这是一个实验性质的特性,所以 Google 并没有针对这个特性做出任何承若,它完全取决于这门语言自身的发展。

Google 透露,他们正在与 JetBrain 展开合作,将 Kotlin 移交给第三方的非盈利组织进行后续的开发。虽然说 Kotlin 是开源的,不过交给这样的一个组织来看管,可以在一定程度上保证语言的未来不会落入某一家的公司手里。这一举动也意味着 Google 将会介入 Kotlin 的推广工作,这对于 Kotlin 来说是一个利好消息。

查看英文原文: Kotlin Is Now a Supported Android Language

2017-05-22 19:0010371
用户头像

发布了 322 篇内容, 共 139.9 次阅读, 收获喜欢 145 次。

关注

评论

发布
暂无评论
发现更多内容

2022-09-07:给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如,序列 [4,6,16] 的最大公约数是 2 。 数组的一个

福大大架构师每日一题

算法 rust 福大大

纠删码在实时视频流中的应用丨Dev for Dev 专栏

声网

音视频 人工智能’

VUE 如何格式化数字

HoneyMoose

SQL 嵌套 N 层太长太难写怎么办?

jiangxl

微信小程序挖坑汇总

Shine

微信小程序

如何快速的部署一个静态页面到 Web3.0 上?5 分钟解密

掘金安东尼

前端 Web3.0 9月月更

【文本检测与识别-白皮书】第一章:技术背景

合合技术团队

文字识别 文本 人工智能’

openGauss内核分析:SQL by pass & 经典执行器

华为云开发者联盟

数据库 后端 企业号九月金秋榜

Python图像处理丨认识图像锐化和边缘提取的4个算子

华为云开发者联盟

Python 人工智能 图像处理 企业号九月金秋榜

设计模式的艺术 第四章简单工厂设计模式练习(使用简单工厂模式设计一个可以创建不同几何形状(如圆形、方形和三角形等)的绘图工具,每个图形都具有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示UnSupportedShape)

代廉洁

设计模式的艺术

2022年中国新能源汽车用户体验指数(UEI)

易观分析

新能源汽车 UEI

Unity 关于低版本是否可以引用高版本构建内容的可行性验证

CoderZ

C# dll Unity3D 9月月更

如何让百度搜索结果显示网站 logo

源字节1号

网站建设 网站开发

NEO FANTASY:回合制策略游戏在ACGN文化与GameFi中的新探索 09-07

鳄鱼视界

数据治理(十):Atlas案例演示

Lansonli

数据治理 9月月更

每日一R「22」内存:堆与栈

Samson

学习笔记 ​Rust 9月月更

概述大数据技术在智能运维中四大挑战

穿过生命散发芬芳

智能运维 9月月更

当代用电行为大赏:有人心疼电费,有人靠屋顶光伏“理财”

白洞计划

Java进阶(九)正则表达式

No Silver Bullet

Java 正则表达式 9月月更

[Go WebSocket] 单房间的聊天室

HullQin

Go golang 后端 websocket 9月月更

Chrome操作指南——入门篇(一)

Augus

Chrome开发者工具 9月月更

MobTech秒验 Android端如何在授权界面添加短信登录按钮

MobTech袤博科技

android sdk

SD-WAN网络编排原理

阿泽🧸

9月月更 网络编排

C++学习------clocale头文件的源码学习

桑榆

c++ 源码阅读 9月月更

Go vs Python,我该选哪一门语言?

宇宙之一粟

Python 编程语言 Go 语言 9月月更

MySQL不同隔离级别,都使用了什么锁?

Java全栈架构师

Java MySQL 数据库 程序员 程序人生

数据湖统一元数据与权限

阿里云大数据AI技术

大数据 企业号九月金秋榜

NFT开发公司带你了解目前NFT开发属于什么状态

开源直播系统源码

区块链 NFT 数字藏品

Angular tsconfig.json 文件里的 paths 用途

汪子熙

typescript 前端开发 angular SAP UI5 9月月更

一文带你认知定时消息发布RocketMQ

华为云开发者联盟

云计算 后端 华为云 企业号九月金秋榜

【从零开始学docker】一、Docker的安装,启动以及工作原理

泡泡

云计算 容器 云原生 9月月更

Kotlin成为正式的Android编程语言_Java_Abel Avram_InfoQ精选文章