Kotlin 新版来了,支持跨平台!

2024现代Android开发趋势 在当今的Android开发领域,我们看到了许多令人兴奋的技术和趋势,这些技术和趋势正在改变着应用程序的开发方式和用户体验。让我们一起深入探讨2024年现代Android开发的主要方向和关键技术。 阅读详情

点击上方“开发者技术前线”,选择“星标”
来源:开发者技术前线
作者:Tamic | 编辑: 可可

谷歌在今年的 I/O 大会上宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言(谷歌宣布 Kotlin 成为安卓开发首选)。
还有一个好消息, Kotlin 1.3.30 正式发布,做了对apple的支持。离上次发布1.3 时间过去半年。本次的该版本主要覆盖 1.3 版本的问题修复和工具完善。版本更新的主要范围为 Kotlin/Native、KAPT 的性能优化以及对 IntelliJ IDEA 的支持优化。
我们来回顾下 1.3的 新特性
稳定的协程
Kotlin/Native Beta
多平台项目和工具
用于 Kotlin/Native 和多平台的工具
Ktor 1.0 Beta

本次版本带来的牛逼特性主要对1.3完善,并且做了工具上的支持。

KAPT 支持注解处理器增量编译

KAPT 已经支持注解处理器增量编译,该特性仍处灰度实验阶段,你可以通过在gradle.properties中添加以下配置来启用它:
kapt.incremental.apt=true
需要指出的是,在现有版本中引入任何非增量编译的注解处理器或者依赖的变化(截止目前,包括内部声明的修改)都会导致该模块的注解处理过程退化为非增量模式。
KAPT: 其他提升

引入了两个配置来提升编译性能。其一是使用 Gradle workers:

这个版本也对它做了优化。另一个是 1.3.20 引入的,开启 Compile Avoidance,就是说依赖如果只有方法体发生变化,那么就跳过注解处理。只有在所有的注解处理器都显式的在注解处理的 classpath 声明的情况下,Compile Avoidance 才会生效。

无符号数组的扩展方法

从 1.3 开始我们可以在开发模式下使用无符号数值类型。这个版本我们对无符号类型以及其数组做了更多的支持:

需要注意的是,我们之前就可以在无符号数组上使用函数式操作例如 filter 和 map ,这是因为无符号类型的数组实际上是实现了 Collection 接口的,例如 UIntArray 实现了 Collection 接口。 不过这样就涉及到了性能问题,因为在 UIntArray 被当作 Collection的实例使用时会额外 创建 一个对象出来。现在好了,所有新增的扩展函数都使用无符号数组类型作为 receiver 以消除额外的对象创建开销。因此不用担心,现在无符号数组和常规数值类型的数组从使用的角度来讲没有什么两样,不会有任何额外的开销了。

Kotlin/Native

Kotlin/Native 支持的目标平台有: Windows 32 位(mingw_x86)。除此之外,Windows 和 macOS 用户也可以混合编译 Kotlin/Native 程序到 Linux x86-64、arm32 以及 Android 和 Raspberry PI 环境上。
Kotlin/Native 对 Apple 平台的支持

对 Apple 平台的支持也有提升。iOS 上未处理的异常信息会被输出到 iOS 崩溃日志当中,iOS 和 macOS 上的异常堆栈(调试模式)也会包含符号信息。
现在也可以使用命令行参数 -Xstatic-framework 或者以下 Gradle 脚本来构建静态库:
需要注意的一点,现阶段官方表示拉取和编译这些依赖仍然需要一个 Xcode 工程。

Kotlin/Native IDE 支持

接下来我们同步下我们的 IDE 对 Kotlin/Native 的支持工作的进展。
除 IntelliJ IDEA 之外,我们也将发布 Kotlin/Native 插件支持 CLion 2019.1、AppCode 2019.1。C interop 描述文件 (.def) 后续也会得到所有 IDE 的支持,尽管目前代码补全功能还没有上线。
对于 CLion and AppCode, 我们也支持了异常堆栈跳转源码的支持。
IntelliJ IDEA 支持

调试功能的提升

当你在调试协程代码时,你可以看到有一个单独的异步堆栈 “Async stack trace” 显示挂起时的变量。
当程序在 suspend 函数或者 Lambda(例子的第 13行)中的断点停止时, “Async stack trace” 显示了变量在上一次挂起时的状态(12行)。你可以浏览 suspend 函数在当前协程中从上一个挂起点的全部的堆栈 (第12、4行)并确认变量的值:
这会帮助你更方便的理解当前协程的运行状态。
在调试 Kotlin 代码时,可以选择 “Kotlin” 模式来查看变量。
Eclipse IDE 插件更新

Eclipse 插件 0.8.14 主要包含以下更新:Kotlin 1.3.30 编译器支持, 大量的问题修复和整体稳定性的提升。该版本也增加了对 Gradle 工程的实验性质的支持。你可以用 Eclipse Buildship 导入工程,你会发现 Kotlin 会被正常配置。

指定 JVM 版本

如果你的程序运行在 JVM 9, 10, 11, 或者 12 等版本下,你可以设置 jvmTarget到对应的版本了。这个设置会影响编译的 class 文件的字节码版本,但它们不是后向兼容的。相比之下,新目标版本不会有任何字节码优化也不会有任何新特性,期待后续Kotlin继续更新。
写在最后
无论 Google 对Kotlin 赋予什么期望,总而言之,Google提出新的系统和跨平台方案,意味着Andorid 生态已经向不同领域发力,最近微软的反击也预示者,google的跨端计划已经对微软形成了火力压制,坐等大安卓起飞,移动开发下一春不远了。
于此同时微软也在大力发展自己的.net语言的跨平台,并且也在支持 Pyhon开发语言的各种工具,其实是在对 Flutter和Kotlin 提出了挑战。
大家如何看待 Kotlin 的未来? 欢迎交流

更多原创:

Flutter 1.5 来袭,支持Web , 桌面,嵌入式开发

常学常新:《Attention Is All You Need》万字解读! 阅读详情

相关推荐

迪文DGUSII串口屏中文显示实战:手把手教你制作16x16点阵字库

本文提供了一份迪文DGUSII串口屏16x16点阵中文字库制作的完整实战指南。从显示原理、字体选择与参数设置,到使用FontLib Make工具生成字库文件,再到部署、调用及存储空间优化,手把手教你解决中文显示难题,确保界面文字既美观又稳定。

weixin_29190573的博客 154

Kotlin简介

Kotlin的基本语法

LZW_00007的博客 1385

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

weixin_37584728的博客 2644

kotlin编译版本

请记住,使用较新版本的Kotlin编译器和工具通常会带来性能优化、新功能和重要的bug修复,因此在确保与项目依赖兼容的前提下,更新到最新的稳定版本通常是个好主意。这些资源可以提供关于Kotlin版本使用情况的见解。Kotlin和kapt的流行版本通常随着时间而变化,随着新版本的发布,更多的开发者会迁移到这些新版本。要查看你的项目中使用的Kotlin版本,你可以检查项目的build.gradle(对于Groovy DSL)或build.gradle.kts(对于Kotlin DSL)文件中的插件版本声明。

weixin_45681365的博客 1578

基于python的排课表系统,用python编写排课系统

实现一个具体的课程管理系统。(5) 学生可以查看自己选上的课的成绩,以及各个课程的得分、绩点,并给出其平均绩点,但不允许查看年级其他人的成绩。(2) 学生定制专属课表,可以查看整个学期本人的课程安排,包括课程名称、上课时间、上课地点、任课老师、学分等等。(13) 系主任可以查看整个系的全部学生以及他们的平均绩点,可以对每个班进行排名,或者也可以对整个系进行排名。(15) 系主任可以查看整个学期所开设的所有课程,包括这些课程的全部详细信息。(1) 学生基本信息的查询,学生可以对本人的系统登陆密码进行修改。

yang0728y的博客 1999

【从零开始玩量化7】easyTrader: 自动化(程序化)交易利器

前面的文章,我们介绍了数据获取工具AKShare, 量化回测工具backtrader等,这一篇,介绍程序化交易工具easyTrader。作者网名食灯鬼,目前项目在Github上的star数已经有6.7k。这可能是目前,开源能找到的,最好用的程序化交易库了。本文介绍了easyTrader的简单用法,这个包还有很多功能,后续再继续写文章探究。

量化投资助手的博客 1万+

Kotlin 新版本 1.9.0重要更新预览

对K2编译器进行了进一步的改进,使其更加稳定。K2编译器针对JVM目标现已进入Beta版本,并且也可以在多平台项目中使用。您可以通过将K2配置添加到项目的gradle.properties中,或者将其作为命令行参数传递给Gradle任务来尝试使用它。注意:您可以在开发项目中尝试使用,但请不要在生产代码中使用,因为它仍处于Beta版本。

虎哥LoveDroid 2397

ArcMap安装与配置全攻略:从下载到实战应用

本文提供了ArcMap 10.4.1从系统准备、详细安装到破解激活的完整指南,并包含首次启动的界面介绍与一个实战GIS分析项目。针对初学者,文章强调了在ArcGIS Pro成为趋势的当下,学习经典ArcMap对于理解核心概念和兼容现有工作流仍有重要价值,帮助用户避开安装常见陷阱,快速上手实战应用。

weixin_29200741的博客 338

[附源码]JAVA计算机毕业设计动漫评论网站(源码+开题)

具体而言,该网站不仅能为动漫迷们提供一个集中展示动漫评论的平台,还能通过用户之间的互动与交流,深化对动漫作品的理解与认识。同时,网站还可以收集和分析用户的评论数据,为动漫制作方提供有价值的反馈和建议,助力动漫作品的优化与创新。然而,现有的动漫平台往往侧重于动漫的播放与分享,对于动漫评论的重视程度不足,导致动漫迷们难以找到一个集中、专业的平台来发表自己的见解和感受。然后,进行网站的开发与实现。这需要我们深入研究动漫的特征和用户的喜好,设计合理的分类体系和推荐算法,以提高用户查找和浏览动漫评论的效率和满意度。

便捷程序设计 697

SAP ABAP OData 的四种开发方式

摘要:SAP开发中CDS视图转OData服务的四种方案演进:1)7.40+版本需手动映射数据源;2)7.50+可直接引用CDS视图自动生成服务;3)7.50+通过@OData.publish注解声明式发布;4)7.54+采用服务定义与绑定实现协议解耦。新版本推荐使用最新方案,旧系统可选传统方式,整体呈现开发简化、架构解耦的技术演进趋势。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 861

AI编程工具到底是初学者的绊脚石还是垫脚石?

现在是AI时代,我们要做的,是学会拥抱AI、使用AI,成为AI的驾驭者,如果你因为害怕使用AI学不到东西,那么大可不必,因为AI必然是今后的趋势,相信会用AI在今后的求职面试中也会有很大的占比。另外我之前写了多篇有关AI编程开发工具Trae的使用技巧和教程,需要的话你可以关注公众号后通过菜单栏获取。另外我也把所有Trae相关的文章整合到了腾讯ima知识库,感兴趣的可以关注公众号以后回复。

cpp加油站的专栏 184

零基础学习网络安全这一块,请问有哪些相关资料可以推荐一下?

不同于Java、C/C++等后端开发岗位有非常明晰的学习路线,网路安全更多是靠自己摸索,要学的东西又杂又多,难成体系。

2201_75719295的博客 436

复现《水化硅铝酸钙微结构和性能的分子动力学模拟研究》的分子动力学模拟

本文详细复现了杨军博士论文中关于水化硅铝酸钙(C-A-S-H)凝胶的分子动力学模拟方法。研究内容包括:1)基于11Å Tobermorite构建C-A-S-H分子模型,通过缺陷引入和Al掺杂调节Ca/Si比;2)使用ReaxFF力场模拟交联C-A-S-H的结构与力学性能;3)采用ClayFF力场研究纳米孔道中水和离子传输行为。研究提供了完整的LAMMPS输入脚本、Python分析代码和力场参数设置,为水泥基材料纳米尺度模拟提供可复现的技术方案。

huanghm88的专栏 106

学习电子,有什么网站可以推荐?

硬件设计,和经验强相关,和具体项目强相关,在网上,会发现极少有人分享硬件设计内容,导致很难入门。 在公司解决一个 EMC 问题,可能形成一个文档,会存在公司服务器上,不会共享出来。 导致优质的硬件资料非常少,诚哥在几年的硬件研发中,收藏了一些经常逛的网站,分享给大家。 中国大学 MOOC(慕课网) MOOC 是在线课程,各个学校的优质课程,平时逃课的,补充理论知识的,都可以在里面找到相关专业的视频。 网址:https://www.icourse163.org/ TI 培训 德州仪器是一家半导体公司,大家都

记得诚 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

推荐一个专利检索的网站

专利文献检索是一项复杂的工作,其过程由多种因素共同制约,如:检索目的、检索方式、检索系统、检索范围、检索入口、以及检索经验等等,同时这些因素也影响专利检索的效果。通常来说我们都会选择专利更新速度快、内容全面的网站检索。网站检索的检索入口一般有:分类号、关键词、申请人(专利权人)、发明人、专利号和其它检索入口(申请号、公开号、发明名称、申请日期等)。...

literature1492的博客 573

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[研发工具箱] 系列3.机电类常用的分类网站

机电类专业网站、资讯、工具分类黄页。是相关从业人员的案头必备。附录A包含一个更小的细分领域PHM的相关资讯黄页。

含光左卫的工作笔记集 1182

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python研发工程师必备工具合集

Python研发工程师必备工具合集 1、必备工具 2、常用网站 3、学习路线 4、必备技能 5、书籍推荐 6、进阶学习 一、必备工具: 1.Sublime Text 2.Notepad++ 3.Visual Studio Code 4.Atom 使用说明: 1.功能强大、性能优良、界面美观、多平台兼容,但是收费;不过收费也不是很贵,有条件的还是建议买个正版,省事又方便。 2.国人(台湾人侯金吾)开...

weixin_44908594的博客 3698

基于node.js的旅游推荐网站

基于 node.js 的旅游推荐网站是为旅游爱好者打造的一站式服务平台。 网站拥有丰富的旅游目的地信息,包括世界各地著名景点、小众秘境等,详细介绍其特色、最佳游览时间、当地气候。每个景点都配有精美的图片和游客评价,让用户如临其境。 在旅游攻略板块,整合了多种路线规划,涵盖不同天数、预算和兴趣点。从交通出行、住宿推荐到餐饮选择,都有细致入微的指导。用户还能根据自己的喜好搜索特定类型的攻略,比如亲子游、情侣游等。 网站设有社区功能,用户可以分享自己的旅游经历、上传照片和视频,也能与其他旅行者交流心得。同时,系统

专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝30万+,优快云特邀博主,Java新星计划多届导师,掘金/知乎/华为云/阿里云/51CTO等平台优质创作者。 1095

程序员工具网站推荐

小木屋是一款优秀的网站导航。https://cabin.nilhave.com 收录国外和国内各类实用网站,内容涵盖国外创意、设计、美食、视频、图片、旅游、文化、音乐等多领域站点资源,提供简单便捷的网上导航服务。而且对于喜欢的页面,还可以添加收藏,导入Chrome书签,可以随时随地查看喜欢的页面。 这里可以提交您的网站,让您的网站更容易被用户发现。来申请一波吧!!! 一、网站世界节点检测工具 ...

nilhave的博客 1011

基于Springboot的电影推荐网站

该课题采用的主流的Java语言这种面向对象的语言进行电影推荐网站程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。

namixuezhang11的博客 615

Python基于Django基于智能推荐算法的全屋定制平台网站设计

本文介绍了一个基于智能推荐算法的全屋定制平台,采用Python+Django+MySQL技术栈开发,提供一站式家居定制解决方案。平台包含首页、家装案例、工装项目、设计专区、材料选购、资讯浏览等模块,通过智能算法为用户精准推荐个性化方案。系统采用MVC架构设计,具备高性能与安全性,支持高并发访问和数据加密。前端基于Vue.js开发,后端使用Django框架实现业务逻辑,MySQL存储数据。该平台旨在为用户提供高效便捷的家居定制体验,满足个性化需求。文章还展示了系统界面截图,并提供了技术实现细节和关键代码示例。

z459382737的博客 1232

基于Springboot的电影推荐网站【附源码+文档】

该课题采用的主流的Java语言这种面向对象的语言进行电影推荐网站程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。

程序定制,毕设辅导、论文写作、技术指导! 836

推荐个网站!

咪哥杂谈本篇阅读时间约为 4 分钟。1前言哈喽小伙伴们,又见面啦,今天来给大家自荐一个网站。如果看过我上篇写过的文章,在最后,我说留了一个彩蛋。今天就来分享下这个彩蛋。关于信息如何高效搜...

咪哥杂谈 2万+

基于springboot的智能食谱推荐网站的设计与实现开题报告

同时,智能推荐算法的应用能够深入挖掘用户潜在需求,提高食谱推荐的准确性和满意度,为Web应用的个性化服务提供新的思路和方法。例如,一些企业推出了基于手机应用的健康饮食管理系统,用户可以通过手机拍照或输入食材的方式记录自己的饮食情况,系统会根据用户的个人信息和健康需求提供个性化的饮食建议和营养配餐方案。

2401_86779185的博客 584

研发、运营必备实用工具网站

本文介绍了多个实用网站工具,涵盖搜索引擎、PPT模板、图片处理、程序员题库和办公软件资源。内容包括:小白盘(百度云资源搜索)、优品PPT(高质量免费模板)、Bigjpg(AI图片无损放大)、remove.bg(智能抠图)、TinyPNG(图片压缩)、GIF工具之家(GIF处理)、图片助手(批量下载插件),以及程序员常用的LeetCode和牛客网题库,最后推荐了我爱分享网的软件资源下载。这些工具可满足日常办公、设计、编程等多种需求。

꯭ 瞎꯭扯꯭蛋꯭的博客 3289
上一篇: 白天 996, 我还能晚上669!
下一篇: 面试阿里,面试官问我有没有男朋友?
DevolperFront
博客等级 码龄8年 465粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值