Kotlin基础(一)android studio中配置Kotlin

2023-05-16

1.   何为Kotlin?

        Kotlin是一门运行在JVM之上的语言。它由Jetbrains创建,而Jetbrains则是诸多强大的工具(如知名的Java IDE IntelliJ IDEA)背后的公司。Kotlin是一门非常简单的语言,其主要目标之一就是提供强大语言的同时又保持简单且精简的语法。其主要特性如下所示:

轻量级:

这一点对于Android来说非常重要。项目所需要的库应该尽可能的小。Android对于方法数量有严格的限制,Kotlin只额外增加了大约6000个方法。

互操作:

Kotlin可与Java语言无缝通信。这意味着我们可以在Kotlin代码中使用任何已有的Java库;因此,即便这门语言还很年轻,但却已经可以使用成百上千的库了。除此之外,Kotlin代码还可以为Java代码所用,这意味着我们可以使用这两种语言来构建软件。你可以使用 Kotlin开发新特性,同时使用Java实现代码基的其他部分。

强类型:

我们很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全。

Null安全:

Java最大的一个问题就是null。如果没有对变量或是参数进行null判断,那么程序当中就有可能抛出大量的 NullPointerException,然而在编码时这些又是难以检测到的。Kotlin使用了显式的null,这会强制我们在必要时进行null检查。

 

l  Kotlin官网

         http://kotlinlang.org

l  Kotlin-jcenter仓库

         http://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler

l  Kotlin-github地址

        https://github.com/JetBrains/kotlin

        

2.   如何在Android开发中使用Kotlin?

2.1下载相关插件

从IDE plugins中下载Kotlin插件

在 Settings -> plugins -> BrowseRepositories中搜索“Kotlin”;需要安装Kotlin 和 Kotlin Extensions for Android



2.2在模块中创建Kotlin类

Kotlin插件安装成功后,new中有两个Kotlin相关选项:

1)“KotlinFile/Class”:一般Kotlin类

2)“Kotlin Activity”:Activity类



2.3配置Kotlin

第一次新建Kotlin类后,会在界面显示“Kotlin not configured”,点击“Configure”,进入Kotlin配置页面,如下图:


        根据需求配置某个模块或 全部的模块,点击OK即可。

        配置完成后,会分别在project的“build.gradle” 和模块的“build.gradle”中配置相关参数:

        1)project的“build.gradle”,注解的为添加的配置项。

buildscript {
   
ext.kotlin_version='1.0.3' //版本
   
… …
    dependencies {
        … …

       
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //
    }
}


      2)  模块的“build.gradle”

apply plugin: 'kotlin-android'
//
sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}
//
dependencies {
    … …
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin基础(一)android studio中配置Kotlin 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • Kotlin super.finalize()

    当迁移到Kotlin from Java我遇到了一个问题 我覆盖了Object s finalize method Override protected void finalize throws Throwable stopTimer su
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 在 Android 中使用 DataOutputStream 在 POST 正文中发送特殊字符 (ë ä ï)

    我目前正在开发一个具有大量服务器端通信的 Android 应用程序 昨天 我收到一份错误报告 称用户无法发送 简单 特殊字符 例如 我搜索过但没有找到任何有用的东西 可能重复 没有答案 https stackoverflow com que
  • 更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

    这是我的材质按钮代码
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 当手机旋转(方向改变)时如何最好地重新创建标记/折线

    背景 开发一个使用 Android Google Map v2 的本机 Android 应用程序 使用android support v4 app FragmentActivity 在 Android v2 2 上运行 客观的 在更改手机方
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 如何删除因 Google Fitness API 7.5.0 添加的权限

    将我的 play services fitness api 从 7 0 0 更新到 7 5 0 后 我注意到当我将新版本上传到 PlayStore 时 它 告诉我正在添加一个新权限和 2 个新功能 我没有这样做 有没有搞错 在做了一些研究来
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少

随机推荐

  • origin画图——同一图中多组数据

    origin画图 同一图中多组数据 xff08 2维 xff09 导入数据分别确定X Y轴列数据 xff08 选中列 set as X Y xff0c 全选数据 xff0c 点击下方绘图图标
  • pacman用法

    Pacman 是archlinux 下的包管理软件 它将一个简单的二进制包格式和易用的构建系统结合了起来 不管软件包是来自官方的 Arch 库还是用户自己创建 xff0c Pacman 都能方便得管理 pacman Sy abc 和源同步后
  • Spring注解-1-SpringBoot是如何处理注解的

    本文基于Spring 5 2 7 这是个很大的话题 xff0c 但是是个非常实在的话题 xff0c 注解天天用 xff0c 处处用 xff0c 请问你知道他是怎么起作用的吗 xff1f 如果你使用了注解 xff0c 那么一定有代码在什么地方
  • Qt对当前界面进行截图并保存

    Qt提供了对界面截图的功能 xff0c 非常简单 xff0c 只需要2行即可截图并保存下来 xff0c 如下 xff1a QPixmap pixMap 61 QPixmap grabWidget this pixMap save 34 my
  • Qt中通过Qpixmap设置图片透明度

    最近看到美图秀秀的一些功能 xff0c 可以手动设置图片的透明度并显示在其它图片上 xff0c 所以自己动手做了个小Demo xff0c 实际效果如下 xff1a xff08 图片仅供参考使用 xff09 可以看到拖动下方进度条 xff0c
  • QTableWidget中添加QComboBox/QPushButton控件并响应控件点击

    QTableWidget是QT程序中常用的显示数据表格的空间 xff0c 里面不仅仅可以添加文字 xff0c 也可以添加控件 xff0c 图片等等 xff0c 此处以添加QCombobox和QPushButton举例 xff0c 点击选择控
  • QMap的简单使用(增删改查等)

    前言 QMap是Qt提供的容器类 xff0c 是一种由key到value的映射 与C 43 43 中STL提供的map使用方法相同 xff0c 部分使用细节上 xff0c QMap做了优化 插入 QMap lt int QString gt
  • vector<char>与char*相互转换

    最近在做网络通信 xff0c 看到很多人使用vector lt char gt 来存储二进制网络数据 xff0c 而我有时需要用char 数据 xff0c 所以记录下二者的相互转换方法 xff0c 代码如下 xff1a include lt
  • Qt中自定义qDebug打印信息的宏(文件名,行数,时间等等)

    前言 QDebug类提供用于调试信息的输出流 当开发人员需要将调试或跟踪信息写到设备 xff0c 文件 xff0c 字符串或控制台时 xff0c 将使用QDebug 当我们使用qDebug 打印信息时 xff0c 只有我们所需要打印的信息
  • QT实现鼠标右键快捷菜单(QTableWidget)

    对于右键点击事件 xff0c 这里用到的是Qt CustomContextMenu方法 xff0c 本例通过右点QTableWidget xff0c 显示下拉菜单 xff0c 同时获得点击的行号 ui界面如下图 xff1a customCo
  • git使用遇到问题

    文中自己理解的偏多 xff0c 有错误的地方还请指正 xff08 会有很多错误 xff09 commit in detached head 解决办法 xff1a 进入到工程所在路径运行 git branch f master HEAD am
  • 从零开始学写脚本【第一天】

    废话我就不多说了 xff0c 直接开干 新建一个项目 安装 selenium selenium是浏览器自动化测试工具 控制台输入 pip install selenium 下载Chromedriver 浏览器驱动 xff0c 代码打开浏览器
  • 超简单图文并茂基于Linux使用Docker部署Node.js项目

    一看就懂图文并茂基于CentOS Linux release 7 8 2003 Core 安装并Docker化你的Node js应用 64 TOC 基于CentOS Linux release 7 8 2003 Core 安装并使用Dock
  • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that c

    1 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds to your MySQL server version f
  • Android 电量监控、关机、重启功能的实现

    本文主要是介绍Android电量监控 关机 重启功能的实现 xff0c 需要具备的条件是手机需要root过 xff0c 才能实现相关操作 1 MainActivity java import java io IOException impo
  • 拓扑排序1图文详解面试常考算法 —— 拓扑排序

    前言 Topological sort 又称 Topological order xff0c 这个名字有点迷惑性 xff0c 因为拓扑排序并不是一个纯粹的排序算法 xff0c 它只是针对某一类图 xff0c 找到一个可以执行的线性顺序 这个
  • Android签名总结

    一 为什么要签名 开发Android 的人这么多 xff0c 完全有可能大家都把类名 xff0c 包名起成了一个同样的名字 xff0c 这时候如何区分 xff1f 签名这时候就是起区分作用的 由于开发商可能通过使用相同的Package Na
  • 消息队列技术介绍

    一 消息队列概述 消息队列中间件是分布式系统中重要的组件 xff0c 主要解决应用耦合 异步消息 流量削锋等问题 实现高性能 高可用 可伸缩和最终一致性架构 是大型分布式系统不可缺少的中间件 目前在生产环境 xff0c 使用较多的消息队列有
  • Ubuntu 循环登录 解决办法

    Ubuntu 经常出现循环登录的情况 但需要根据不同原因 采用不同的解决方案 已知情况有 Xauthority 权限变为root 修改到自己账户权限即可nvidia 显卡驱动问题 卸载重装即可 Xauthority 权限问题 参考Ubunt
  • Kotlin基础(一)android studio中配置Kotlin

    1 何为Kotlin xff1f Kotlin是一门运行在JVM之上的语言 它由Jetbrains创建 xff0c 而Jetbrains则是诸多强大的工具 xff08 如知名的Java IDE IntelliJ IDEA xff09 背后的