广告
返回顶部
首页 > 资讯 > 移动开发 >Android Kotlin初识
  • 807
分享到

Android Kotlin初识

KotlinAndroid 2022-06-06 13:06:58 807人浏览 独家记忆
摘要

一. Kotlin简介   2017 年,谷歌宣布在其 Android Studio IDE 中支持 Kotlin,Kotlin 开始成为 An

一. Kotlin简介

  2017 年,谷歌宣布在其 Android Studio IDE 中支持 Kotlin,Kotlin 开始成为 Android 开发的一级语言,当时业界并不太看好,因为 Java 在安卓的发展过程中做出了巨大的贡献,其作为安卓开发语言的观念已经根深蒂固,而且它也一直在不断完善。
然而仅仅几年时间,Kotlin 因其相比 Java 更安全与简洁等优越性,很快占领市场,谷歌 Android 首席布道师 Chet Haase 表示:“在过去的两年中,Kotlin 受欢迎程度一直在提高,超过 50% 的专业 Android 开发人员现在使用 Kotlin 开发他们的应用”。从今年 Stack Overflow 年度开发者调查的数据中也能看到这一点,如下图所示,报告中指出,在开发者最喜爱的编程语言中,Kotlin 得到了 72.6% 正面反馈。

1.1. Java的辉煌与阴影

  1995年,当年如日中天的Sun公司发布了Java语言,引起了巨大的轰动,与当时主流的C语言和Basic语言比起来,Java语言简单、面向对象、稳定、与平台无关、解释型、多线程、动态等特点,就像是打开了一个新的世界,一时间风靡全球,云集者众,微软为了模仿Java搞出C#语言,Netscape为了赶时髦硬塞出一个javascript语言,IBM则捏着鼻子做了Java IDE Eclipse(日蚀,呵呵)。直到现在,Java在编程世界里还占据着举足轻重的地位,Andy Rubin在开发Android系统时,也很自然地采用了Java和c++(C++负责NDK开发)作为开发语言。
  但是,Java毕竟是20多年前的语言了,虽然有不断扩展更新,但是底层设计思想是很难改动的,这就导致它很难实现一些新的语言特性,例如函数式编程、Lambda 表达式、流式api、高阶函数、空指针安全等(虽然Java8实现了部分特性,但是Android还不怎么支持Java8),这些新的语言特性大受好评,可以说解放了编程的生产力,这其实也说明了一个事实:开发效率/时间是软件公司真正的瓶颈,任何能压缩代码量,提高开发效率的举措,都应该受到重视。
  而且,Android还存在Java版权危机的问题,收购了Sun公司的oracle曾向Google索要巨额的Java版权费,这可能也加快了Google寻找Android开发替代语言的动作。
  苹果公司已经在用Swift语言替代Object-C语言,Google也找到了替代Java的语言,也就是JetBrains公司(Android Studio也是用该公司的Intelli J改的)主推的Kotlin。
  其实,Swift和Kotlin还挺相似的,有一篇Swift is like Kotlin对这两种语言做过简单的对比。

1.2. Kotlin的出现

  Kotlin也是基于JVM设计的编程语言,算是对Java的温和改良,她是一个开源项目的成果,拥有很高的声望,很多公司、组织、业界大犇都很喜欢她,Square公司的Jake大神(Dagger、ButterKnife、Retrofit、OkHttp…之父)就专门写了篇Using Project Kotlin for Android为Kotlin站台。
相对Java来说,Kotlin在编写代码时有如下优势:代码简洁高效、函数式编程、空指针安全、支持lambda表达式、流式API等。
  在执行效率上,Kotlin和Java具有同样的理论速度(都是编译成JVM字节码)。
  另外,新语言必须考虑兼容性,为了与存量项目代码和谐共处,Kotlin和Java是互相完美兼容的,两种代码文件可以并存,代码可以互相调用、文件可以互相转换,库文件也可以无障碍地互相调用,据说使用Kotlin基本不会带来额外的成本负担。

二. Kotlin布局

  Kotlin作为Java的改良,在Android开发中有很多优势,我们先从相对直观的界面绘制开始了解,然后看看Kotlin的语法特点,再慢慢去接触更深层次的编程思想。

2.1. 简化findViewById

  我们知道,Android的架构里,xml布局文件和Activity是松耦合的,Activity中要使用界面元素,必须借助R文件对xml控件的记录,用findViewById找到这个元素。
在Kotlin中我们可继续使用findViewById去绑定xml布局中的控件:(TextView)findViewById(R.id.hello);Kotlin提供一种更激进的方法,彻底取消findViewById这个函数,直接使用控件Id,其他用法和java使用一样。

2.1.1.布局文件

2.1.2.逻辑代码
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tv_main_txt.setText("kotlin文档")
        tv_main_txt.setTextColor(
            ContextCompat.getColor(this, R.color.blue)
        )
        iv_main_img.setImageResource(R.drawable.icon_img)
    }
}
2.1.3.效果图

在这里插入图片描述


作者:雪芽蓝域zzs


--结束END--

本文标题: Android Kotlin初识

本文链接: https://www.lsjlt.com/news/29415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android Kotlin初识
    一. Kotlin简介   2017 年,谷歌宣布在其 Android Studio IDE 中支持 Kotlin,Kotlin 开始成为 An...
    99+
    2022-06-06
    Kotlin Android
  • Android Studio初识
    一、根据Android Studio创建一个新工程项目,创建之后的常用页面如下: 1、Android Studio下面的Android页面 2...
    99+
    2022-06-06
    Android Studio studio Android
  • Android初学之android studio运行java/kotlin程序
    第一步骤:File—>New—>New Module,然后弹出一个框,(左边)选择Java or Kotlin Library,(右边)编辑自己的图书馆名、包名、类名,选择Java一个语言,然后Fin...
    99+
    2023-09-13
    android android studio java
  • Android 初识 Helloworld 详解
    HelloWorld的目录结构有: src:存放应用程序的逻辑代码,这里面的代码是人工写的gen:存放资源代码,这里面的代码是自动生成的assets:存放mp3等视频资源b...
    99+
    2022-06-06
    helloworld Android
  • Android开发教程之初识Android App
    一、认识Android操作系统 Android最早由安迪•罗宾(Andy Rubin)创办,2007年被Google公司收购,Google公司凭借Android操作...
    99+
    2022-06-06
    android开发 程之 app 教程 Android
  • Android指纹识别API初试
    在android6.0之后谷歌对指纹识别进行了官方支持,今天还在放假,所以就随意尝试了一下这个api,但是遇到了各种各样的问题  ①在使用FingerPrintMan...
    99+
    2022-06-06
    api Android
  • 初识Android PowerManagerService省电模式
    目录前言功能介绍环境结束前言 最近遇到一些关于省电模式、电量消耗、Doze模式,等等相关问题。于是,我决定对它们进行彻底分析,那就先从省电模式开启。 功能介绍 可以在 Setting...
    99+
    2022-11-13
  • Kotlin初学者指南
    你好,世界Kotlin是一种静态类型语言,在JVM上运行,并且与现有Java代码具有100%的互操作性。对于大多数Java开发人员来说,下面的程序应该非常熟悉:包 com。bugsnag。科特林 ;公共 课&n...
    99+
    2023-06-06
  • Android图片缓存之初识Glide(三)
    前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存...
    99+
    2022-06-06
    glide 缓存 Android
  • Kotlin + Flow 实现Android 应用初始化任务启动库
    目录特性 引入依赖 使用 特性 Kotlin + Flow 实现的 Android 应用初始化任务启动库。 支持模块化,按模块加载任务 可指定工作进程名称,main 表示...
    99+
    2022-11-12
  • Android智能指针轻量级LightPointer初识
    目录引言java判断该对象是否为垃圾1、引用计数法2、可达性分析法垃圾回收的具体算法C++轻量级指针(Light Pointer)引言 相信有很多小伙伴跟我一样,一直从事Androi...
    99+
    2022-12-09
    Android轻量级指针Light Pointer Android Light Pointer
  • Android触摸事件传递机制初识
    前言今天总结的一个知识点是Andorid中View事件传递机制,也是核心知识点,相信很多开发者在面对这个问题时候会觉得困惑,另外,View的另外一个难题滑动冲突,比如在ScrollView中嵌套ListView,都是上下滑动,这该如何解决呢...
    99+
    2023-05-31
    android 触摸 roi
  • 初识Java
    一、Java语言概述 1.1 Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署...
    99+
    2023-10-24
    java 开发语言
  • 初识 Python
    1.源码安装 ipython 1.2.1[root@Client-1]# tar -xf ipython 1.2.1.tar.gz[root@Client-1]cd ipython 1.2.1[root@Client-1 ipython-1...
    99+
    2023-01-31
    Python
  • 初识MySQL
    💕与其抱怨生活的不公,不如积极行动改变它。💕 🐼作者:不能再留遗憾了🐼 🎆专栏:MySQL学习🎆 &...
    99+
    2023-09-01
    mysql 数据库 postgresql
  • 初识Redis
    初识Redis NoSQL是什么? 数据库: 用来存储数据的仓库 NoSQL: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库 为什么需要NoSQL? 解决了高并发的读写问题 解决了海量数据的高效率存储和...
    99+
    2019-03-22
    初识Redis
  • 初识Android.bp
               初识Android.bp 前言    最近在捣鼓Android 9 和10的build系统,看到一篇比较好的博...
    99+
    2022-06-06
    Android
  • redis初识
    redis介绍 redis是什么 redis是一种基于键值对的NOsql数据库,与很多键值对数据库不同,redis中的值string,hash,list,set,zset,geo等多种数据机构和算法组成,因为redis会将所有的数...
    99+
    2015-08-13
    redis初识
  • 初识EXPDP
    EXPDP介绍 使用dump文件集导入数据和元数据的工具。dump文件集只能被IMPDP导入。dump文件集是由表数据,数据库对象元数据,控制信息组成。由专用的二进制格式编写。这些dump文件由server...
    99+
    2022-10-18
  • 初识Node.js
    1、Node.js是什么 [1]Node是一个服务器端 JavaScript 解释器,可是真的以为JavaScript不错的同学学习Node就能轻松拿下,那么你就错了,总结:水深不深我还不知道,不过确实不浅...
    99+
    2022-06-04
    Node js
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作