Kotlin语法学习(一)_程序的逻辑控制

发布时间:2022-11-28 KOTLIN 安卓
Kotlin语法学习(一) 变量和函数 变量 在Kotlin中定义变量的方式和java有很大的区别,在java中有很多的基本类型和一些引用类型,但是在Kotlin中定义一个变量只允许在变量前面声明两个关键字:val和varval(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后再也不能重新赋值,相当于java当中的final修饰的变量var(variable的简写)用来声明一个可变的变量,这种变量在初始赋值之后还是可以随意修改的 那么我们什么时候使用val什么时候使用var呢? 永...

Kotlin语法学习(二)_面向对象编程

发布时间:2022-11-28 KOTLIN 安卓
Kotlin语法学习(二) 面向对象编程 类和对象 创建一个Person类 open class Person { /** * 姓名 */ var name = /** * 年龄 */ var age = 0 /** * 人的吃饭方法 */ fun eat() { print(name + is eating. He is + age +years old.) }} 在main函数中创建Pers...

Android 串口通信 原来如此简单

发布时间:2022-11-27 ANDROID KOTLIN ANDROID STUDIO 安卓 SERIALPORT
一、前言 如果你的项目需要使用串口通信,并且项目使用了kotlin,那么这个SDK是你不能错过的;如果你使用过串口通信,那么这个SDK最吸引你的地方应当是可在写入时同步阻塞等待数据返回,并且我们支持超时设置;如果你没有使用过串口通信,这个SDK也可以让你快熟的进行串口通信;此SDK用于Android端的串口通信,此项目的C代码移植于谷歌官方串口库android-serialport-api ,以及GeekBugs-Android-SerialPort ;在此基础上,我进行了封装,目的是让开发者可以...

二叉搜索树、红黑树详解、红黑树高的应用、TreeMap的应用(图文详解)-Kotlin版本代码

发布时间:2022-11-27 数据结构 算法 MY KOTLIN JAVA
二叉搜索树 何为二叉搜索树? 二叉搜索树是一种特殊的二叉树,它的左子节点总是小于或等于根节点,而右子节点 总是大于或等于根节点。 如下图,即是一颗二叉搜索树。 对于二叉搜索树来说,中序遍历可以遍历按照节点值递增的顺序遍历二叉搜索树的每个节点。比如上述中序遍历的顺序为节点4、节点5、节点6、节点7、节点8、节点9和节点10。 查找 对于普通的二叉树来说,查找一个值需要遍历整颗二叉树,因此需要O(n)的时间。但是对于二叉搜索树来说,则完全不需要如此麻烦,如果当前节点小于要查找的值,则往其右节点继续查找;如果...

Android Kotlin 文件工具类 - 沙盒内文件和图像的读写和删除

发布时间:2022-11-23 ANDROID KOTLIN
Kotlin 文件工具类 沙盒内文件和图像的读写和删除。 Context 使用 应用全局上下文 ApplicationContext,在示例代码中为顶层属性 appContext 。 获取 应用全局上下文 ApplicationContext 的方法,请参考 Android(Kotlin)获取应用全局上下文 ApplicationContext_宋冠巡的博客-CSDN博客 代码 package com.example.fileio.utilimport android.graphics.Bit...

Kotlin 开发Android app(七)下:Kotlin中的Lambda表达式和高阶函数

编程语言的发展,通过需求,不断的变化出新的特性,而这些特性就会使得编程变得更加的简洁。 Lambda表达式 Lambda表达式的出现,一定程度上使得函数和变量慢慢的融为一体,这样做的好处大大的方便了回调函数的使用。 在很多的情况下,其实我们的函数就只有简单的几行代码,用fun就感觉有点重了,而且有的时候这么大的函数结构用起来,并不是非常的方便。 Lambda表达式,其表达式为: {变量定义 -> 代码块} 其中: lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值...

Kotlin 开发Android app(六):Kotlin 中的空判断 问号和感叹号

发布时间:2022-12-01 JAVA KOTLIN 开发ANDROID APP ANDROID KOTLIN
如果有人对程序的崩溃原因做下统计的话,那么由于对象为空,但是又访问了对象的某个属性而导致的崩溃,也许会是程序崩溃的第一大原因了。 比如我们在使用字符串的时候,变量字符串为空的时候,我们去访问了这个字符串变量的长度,结果就导致了程序的崩溃。 后来我们有经验了,在访问对象的属性时,我们都得先做一层对象是否为空的判断,这样我们的程序就变成了这样: if (str!=null && str.length()>0 && str.trim().length()>...

Kotlin 中 泛型 out--in -- *

发布时间:2022-11-30 ANDROID # JAVA KOTLIN # KOTLIN JAVA
泛型到底是什么 类比函数/方法,定义时指定参数类型(形参),调用时传入具体参数实例(实参) 泛型也是如此, 定义时指定数据类型(形参),调用时传入具体数据类型(实参) 那泛型的作用是什么呢 泛型 可以 做 约束 指定 参数类型 可以在编译期提前发现类型转换问题(限定在 哪个类型之下) 否则 需要做 类型判定和强转代码,可能存在类型转换问题 java 泛型 Java 中的 ? extends 限定了上界 List<? extends TextView> textViews = new Array...

Flutter高仿微信-第1篇-注册

发布时间:2022-11-28 FLUTTER高仿微信 微信 KOTLIN FLUTTER
Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 Flutter高仿微信-项目实践59篇,点击查看详情 效果图: 实现代码: /** * Author : wangning * Email : maoning20080809@163.com * Date : 2022/9/23 22:51 * Description : 注册 */class Register extends St...

Transform+ASM插桩系列(3)——Transform+ASM的实战

发布时间:2022-11-24 ASM ANDROID KOTLIN
回顾 在上一章讲到创建完buildSrc之后,实现了项目的plugin之后,就可以在plugin注册我们的Transform。这期文章将正式进入重头戏,今天的学习内容有【认识Transform】、【认识AMS】、【插桩实战】 前言 插桩的技巧中,我们要知道 Transform的作用:是用来替换(或转换)ClassAMS的作用:是用来修改Class字节码 两者配合起来,利用Transform将旧的class文件取出来,再用AMS修改class的字节码,最后替换成我们新的class文件 认识Transform...

KSP - 元编程编译提速的小助手

发布时间:2022-11-23 ANDROID ANDROID开发 KOTLIN
前言 前边一系列的协程文章铺垫了很久,终于要分析Flow了。如果说协程是Kotlin的精华,那么Flow就是协程的精髓。 通过本篇文章,你将了解到: 什么是流?为什么引进Flow?Fow常见的操作为什么说Flow是冷流? 1. 什么是流 自然界的流水,从高到低,从上游到下游流动。 而对于计算机世界的流: 数据的传递过程构成了数据流,简称流 比如想要查找1~1000内的偶数,可以这么写: var i = 0 var list = mutableListOf<Int>(...

Kotlin 开发Android app(十):Android控件绑定ViewBinding

上一节中,我们知道了Android的布局,这种把界面和逻辑控制分开,是编程里很好的分离方式,也大大的解耦了界面和逻辑控制,使得编程的逻辑不在和界面挂钩。 有了界面的布局,我们需要把界面和代码部分进行绑定,这样一来我们就能通过代码来控制界面的空间。 在java之前的代码控制中,是这样进行界面的关联的。 setContentView(R.layout.activity_main) 关联起来非常的简单,但有个问题比较麻烦,对于界面里的空间,每个空间如果在代码中需要使用到,我们需要通过 findViewById...

Kotlin的泛型约束

发布时间:2022-11-23 ANDROID KOTLIN
简介: 泛型:即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。Kotlin 通过 is 关键字来判断类型,并且编译器会自动帮你做类型转换。 (关于泛型,不多整理赘述) 泛型约束 in out 我们可以使用泛型约束来设定一个给定参数允许使用的类型Kotlin 中使用 : 对泛型的类型上限进行约束。最常见的约束是上界(upper bound)型变:Kotlin 中没有通配符类型,它有两个其他的东西:声明处型变(declaration-site variance)与类型投影(type project...

Kotlin当中的小技巧

发布时间:2022-11-28 KOTLIN 安卓
Kotlin当中的小技巧 字符串内嵌表达式 在Kotlin当中支持字符串内嵌表达式的功能,不需要在像Java那样傻傻的嵌套字符串了Koltin当中嵌套字符串的功能 hello, ${obj.name}. niec to meet you 可以看到在Kotlian当中支持${}这种语法结构的表达式,并在运行时使用表达式的结果代替这一部分的内容另外当表达式中只有一个变量的时候,我们可以将两边的大括号进行省略 hello, $name. nice to meet you 函数的默认参数 一个非常有用的小技巧–给...

KAE 将被正式移除,如何无缝迁移?

发布时间:2022-11-23 ANDROID STUDIO ANDROID ANDROID开发 KOTLIN
前言 KAE 插件早在 2020 年就已经被宣布废弃了,并且将在 Kotlin 1.8 中被正式移除:Discontinuing Kotlin synthetics for views 如上图示,移除 KAE 的代码已经被 Merge 了,因此如果我们需要升级到 Kotlin 1.8,则必须要移除 KAE 那么移除 KAE 后,我们该如何迁移呢? 迁移方案 官方的迁移方案如上所示,官方建议我们老项目迁移到 ViewBinding,老项目直接迁移到 Jetpack Compose 对于新代码我们当然可以...

Android Hook View的创建流程

发布时间:2022-11-23 ANDROID基础 ANDROID STUDIO ANDROID KOTLIN
前言 前面我们对setContentView的源码进行了深入的分析Android最全的setContentView源码分析,那了解了View的创建流程,我们可以做些什么呢?答案就是我们可以通过拦截View的创建流程去解析View对应的属性(如textColor、src、background等),然后进行APP的换肤! 具体拦截实现 前面我们分析过View的创建流程会交给Factory2.onCreateView()方法去实现,那我们就通过实现 LayoutInflater.factory2接口进行View...

【Kotlin 协程】协程简介 ( 协程概念 | 协程作用 | 创建 Android 工程并进行协程相关配置开发 | 异步任务与协程对比 )

一、协程概念 协程 Coroutine 是 Kotlin 语言 中新出现的概念 , 在 Java 语言中没有 ; 协程 是 基于 线程 的 , 是 轻量级 线程 ; 二、协程作用 协程主要作用如下 : 处理耗时任务 : 耗时任务 通常需要 阻塞主线程 , 线程量级太重 , 耗时任务 推荐在协程中执行 ;保证主线程安全 : 从主线程中 安全地调用可能会挂起的函数 ; 异步任务 AsyncTask 也可以处理耗时操作 , 避免耗时任务阻塞线程 , 但是在 Android 11 中...

Activity的生命周期

发布时间:2022-11-27 KOTLIN 安卓
Activity的生命周期 一.返回栈 在Android当中Activity是可以进行重叠的,我们每次启动一个新的Activity,就会覆盖在原先的Activity之上,然后点击Back键就会销毁最上面的Activity,下面的Activity就会显示出来.在Android当中使用任务(task)来管理Activity,一个任务就是一组存在栈里的Activity的集合,这个栈也被称作为返回栈(back stack)当我们启动一个新的Acticity的时候,这个Activity就会处于这个返回栈的栈顶,...

Android Kotlin基础学习手册——入门指南+强化实战

发布时间:2022-11-23 学习 ANDROID KOTLIN
前言 Kotlin 是由 JetBrains 设计开发的一种在 Java 虚拟机上运行的静态类型编程语言,其是Google用来替代Java的语言,被称之为 Android 世界的Swift。 现在将Kotlin已成为了Android的官方语言,越来越多的项目开始使用Kotlin。Kotlin凭借其代码简洁高效、Android Jetpack 与其他库中的 Kotlin 支持、可与 Java 的一起使用、空指针安全等优势,深受许多开发人员的喜爱。 当你学过Kotlin之后 ,你就会发现,之前写过那么多的代码...

Kotlin或将超越Go?

发布时间:2022-11-23 RUST ANDROID KOTLIN GOLANG
知名软件行业分析公司 RedMonk 发布了 2022 年 6 月(第三季度)编程语言排行榜。 RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,统计分析后进行排序,其旨在深入了解潜在的语言采用趋势。该榜单一年发布两次,这是今年的第二份榜单。上一次榜单发布是在 3 月份,即第一季度编程语言排行。 目前 RedMonk 对编程语言的排序算法基本思路没有变化,但是具体的数据收集方式改变了。现在使用 GitHub Archive 作为数...

Flutter高仿微信-第17篇-朋友圈-发布作品(小视频)

发布时间:2022-11-23 FLUTTER高仿微信 微信 KOTLIN FLUTTER
 Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: /** * Author : wangning * Email : maoning20080809@163.com * Date : 2022/10/22 21:51 * Description : 朋友圈发布 */class MomentsPublishWidget extends State...

Kotlin协程Channel浅析

发布时间:2022-11-23 开发语言 ANDROID KOTLIN
结论先行 Kotlin协程中的Channel用于处理多个数据组合的流,随用随取,时刻准备着,就像自来水一样,打开开关就有水了。 Channel使用示例 fun main() = runBlocking { logX(开始) val channel = Channel<Int> { } launch { (1..3).forEach{ channel.send(it) logX(发送数据: $it) } ...

Android事件分发机制与核心用法

前言 作为一名移动开发,我们对滑动冲突可以说是屡见不鲜。虽然Android已经提供了诸如NestedScrollView、CoordinatorLayout等支持嵌套滑动的组件,但其实并不能覆盖所有的滑动场景,我们终归会遇到需要自己去解决的滑动冲突。这篇文章将阐述如何处理常见的滑动冲突,而滑动冲突的处理本质上就是处理事件分发,所以我们从事件分发讲起,一步一步斩首滑动冲突。 事件分发 何为事件分发? 事件指的是屏幕触发事件——即Android中的TouchEvent/MotionEvent。每一次我们触摸屏...

记录问题 Error resolving plugin [id: ‘com.android.application‘, version: ‘7.2.1‘

发布时间:2022-11-30 ANDROID 记录问题 KOTLIN ANDROID STUDIO JAVA
新建Kotlin项目来写小Demo,项目建好,编译不通过,但是遇到了Error resolving plugin [id: 'com.android.application', version: '7.2.1', app   这个问题  问题原因: 如上解释,所配置gradle版本在本地配置的gradle仓库里面没找到。 网上搜了一些解决办法: plugins { id 'com.android.application'}  上面加上 buildscript { repositories {...

【深入理解Kotlin协程】Google的工程师们是这样理解Flow的?

发布时间:2022-11-23 ANDROID KOTLIN 开发语言 FLOW KOTLIN协程
Question:why there is a Flow in kotlin? 问这个问题就好比在问为什么那里会有一座山存在,嗯,这貌似是一个哲学问题。当然,对于kotlin中的Flow的理解可能不会上升到这么高的哲学层次,对于Flow相关的Api掌握并使用它并不是什么难事,但是我们需要思考的是为什么会有Flow这样的存在? 其实flow的背后是协程,那么kotlin中的协程框架已经能够做到异步任务问题的解决方案了,为什么还要设计Flow呢?设计这个玩意的最初的目的和构想是为了什么样的意图? 为了搞明白这...

Android Jetpack之LiveData源码分析

LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 如果观察者(由 Observer 类表示)的生命周期处于 STARTED 或 RESUMED 状态,则 LiveData 会认为该观察者处于活跃状态。LiveData 只会将更新通知给活跃的观察者。为观察 LiveData...

【错误记录】Kotlin 报错 ( Some kotlin libraries attached to this project were compiled with a newer kotlin )

发布时间:2022-11-23 ANDROID STUDIO ANDROID KOTLIN 错误记录
解决方案 : 安装最新的 Android Studio 软件 , 本博客内容可以不看 , 没啥用 ; 一、 报错信息 在 Android Studio 中的 Kotlin 代码无法正常使用代码特性 , 在顶部报如下错误 ; Some kotlin libraries attached to this project were compiled with a newer kotlin compiler and can't be read , please update kotlin pl...

Kotlin Essentials: Beyond the Basics

发布时间:2022-11-28 开发语言 JAVA KOTLIN 安卓
一、Pairs package Collectionsfun main() { // Sample Generic Pair val equipment = fishnet to catching println(equipment.first) println(equipment.second) // You can also chain the pairs val chain = A to B to C to D println(chain.first) //...

Android实战基础 - Java、Kotlin 代码互转

在Android现阶段,Kotlin已经成为普遍性使用的语言,而在其使用阶段中Java和Kotlin的混用很常见,为了便于开发,我们需要掌握Java、Kotlin文件的转换 这应该是我以前刚学Kotlin时就想记录的一篇blog,没想到隔了这么久才进行记录(嗯… 主要这俩年好像有点忙…) 个人建议:正常有 Java、Kotlin 转换需求的话,首先将原始文件进行备份,防止转换效果不理想,而造成无法回退的情况;同时如果有原始文件的话,我们也可以更好的对比转换前后的结果,看是否存在一些出入;还有就是...

Python +Appium 实现app自动化测试

发布时间:2022-11-26 ANDROID APP测试 KOTLIN PYTHON
Python +Appium 实现app自动化测试 一、Appium简介 Appium是一款开源工具,用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrome上的Safari或Android上的内置“浏览器”应用)。混合应用程序有一个“webview”的包装,这是一个允许与web内容交互的原生控件。...

Android 关闭全部Activity

发布时间:2022-11-24 ANDROID KOTLIN
在App中依此打开 A→B→C→D 四个Activity,在D Activity finish的同时finish掉其他的全部Activity 不建议使用system(0) 解决方法: 在D中使用以下代码: val intent_finish_all = Intent() intent_finish_all.setClass(this,A::class.java) .setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(...

kotlin 中 default,public,final,open, protected,private,internal 关键字

发布时间:2022-11-24 ANDROID # JAVA KOTLIN # KOTLIN JAVA
default 情况下: 等同于 final,需要声明 open 才可扩展,这是和 Java 相反的扩展约束策略 等同于 public 访问级别,和 Java 默认的包可见不同 正因为此,Kotlin 中 final 和 public 无需显示声明 protected 是类可见外加子类可见,而 Java 则是包可见外加子类可见 private 修饰的内部类成员无法被外部类访问,和 Java 不同 internal 修饰符是模块可见,和 Java 默认的包可见有相似之处,也有区别 ...

SwipeRefreshLayout内嵌套滑动控件会导致进度条的圈圈空白并保留

发布时间:2022-11-24 JAVA ANDROID KOTLIN
前言:准备实现一个刷新获取数据的功能,刷新的时候遇到了空白圈圈保留,于是开始查看SwipeRefreshLayout的源码并想了好几种方式去修复,最终采用反射 (第一次使用反射可能用的很糟糕,还请指点一下...)我的这个刷新比较明显,没有遮挡 (问题如下)   (已解决)   ①:如果内嵌套一个滑动控件,滑动时向上滑动(停止滑动的操作)会保留一个白色的圈圈 即mCricleView (CircleImageView私有类) 可以发现但凡使用官方的SwiperRe...

安卓webview中键盘遮挡输入框如何解决

发布时间:2022-11-23 WEBVIEW ANDROID KOTLIN UNITY JAVA
关键词:安卓原生、unity、webview、键盘遮挡输入框、沉浸式状态栏。 首先是最简单的情况,当我们app有一个比较靠下的输入框时,唤出键盘会遮挡住输入框。 这种情况的对应方式很简单,只需要找到安卓项目清单文件AndroidManifest.xml,对activity进行android:windowSoftInputMode值进行设定就可以了,设定为adjustPan或者adjustResize即可。 <activity ... android:windowSoftInputMode...

Kotlin拿Android本地视频缩略图

发布时间:2022-12-01 ANDROID 视频首帧 缩略图 KOTLIN 图片压缩
        本文主要讨论如下三个问题: 如何拿到本地视频?怎么拿视频缩略图?缩略图如何压缩?1 如何拿到本地视频? 1.1 定义数据结构         先定义媒体信息数据结构MediaInfo,以及视频信息数据结构VideoInfo。 open class MediaInfo( var size: Long = 0L, // 大小 var width: Float = 0f, // 宽 var height: Float = 0f, // 高 var filePath: St...

Kotlin中伴随对象的初始化

发布时间:2022-11-23 开发语言 KOTLIN
  在Java中我们知道静态变量会在类加载时机的“初始化”阶段得到赋值(编译器会收集类中的静态变量及静态代码块,然后在类构造方法<clinit>()中执行,注意:这里不是实例构造方法),也就是真正运行程序中的代码;执行完类构造方法之后才会执行我们熟悉的实例构造方法。   而在Kotlin中有所谓的伴随对象,用过的同学都知道,它的功能类似于Java中的静态变量,那它又是什么时候初始化的呢?来看一个例子,代码如下: package com.zfang.testappclass KConstruct...

android开发,使用kotlin学习Service

发布时间:2022-11-24 学习 ANDROID KOTLIN
服务简介服务是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使用户切到另一应用程序,服务仍可以在后台运行。    2.服务的创建 (1)创建Service子类 class MyService : Service() { override fun onBind(intent: Intent): IBinder { TODO(Return the communication channel to the service.) }} (2)在清单文件中配置 &l...

kotlin的suspend对比csharp的async&await

发布时间:2022-11-24 开发语言 JAVA ANDROID KOTLIN
协程的出现大大降低了异步编程的复杂度,可以让我们像写同步代码一样去写异步代码,如果没有它,那么很多异步的代码都是需要靠回调函数来一层层嵌套,这个在我之前的一篇有介绍 rxjava回调地狱-kotlin协程来帮忙 本篇文章主要介绍 kotlin的suspend函数在编译生成了怎样的代码csharp的async&await在编译生成了怎么样的代码这两者相比较,引发怎样的思考 kotlin的suspend函数demo image 这里针对kotlin的语法以及协程的具体用法细节不过多介绍,就...

深入探究Kotlin的可见性控制,从internal入手

发布时间:2022-11-24 开发语言 JAVA ANDROID KOTLIN
/   今日科技快讯   / 近日,在 Google 亚太区可持续发展大会,Google承诺到2030年,全球所有数据中心和园区使用24/7无碳能源运营。在大会上,Google 工程师介绍了 Google Search 和 Google Maps 新推出的 Air Quality 功能,它使用 AI 技术帮助人们查看当天空气质量状况,了解是异常的大雾弥漫还是危险的浓烟。 /   作者简介   / 本篇文章转自TechMerger的博客,文章主要从 internal 修饰符角度分析 kotlin 可见性...

Kotlin 开发Android app(十一):Android控件RecyclerView

Android 中的控件非常的丰富,我们会陆陆续续的进行介绍,从第九节开始,关于Kotlin 的语法特性就差不多结束,后面如果有发现需要说明的语法,再进行相关的补充。 在Android的控件中,RecyclerView算是一个大控件,基本上所有的大型项目都会使用到。因为他的作用是用列表的方式来展现相关的信息,比如我们是做新闻类的,我们可以用它来展示一条一条的图文信息,我们做商品类的,那么我们可以用来展现商品的重要信息,可以说RecyclerView 就是一个信息展示器。 这里我们也用 原生的Recyc...

Jetpack 支持跨平台了

发布时间:2022-11-25 开发语言 ANDROID JETPACK KOTLIN
Android 官方账号最近发布了一条消息:Jetpack 将要支持 KMM 了,目前已经发布了预览版本。 首批的预览版本中仅支持了 Collections 和 DataStore 两个组件库,并且在 GitHub 上也开源了全新的项目,来帮助大家更好的理解使用 Jetpack Multiplatform。 KMM 由于 Jetpack 的加入,后续的迭代速度应该也会上一个台阶,同时也可能会结束 KMM 三方库百家争鸣的局面。 下面就以 kotlin-multiplatform-samples 新...

kotlin 报错

发布时间:2022-11-25 KOTLIN
fun sum(a:Int,b:Int) = b + a  解决办法:修改sdk版本为1.8 即可   ...

Android结构优化 - Java、Kotlin项目结构分包

随着Android中 Java、Kotlin 的混编开发场景越来越多,其中大多人都会将 java文件 和 kt文件 放在同一个资源文件夹下,在项目越来越大的情况下,我们进行代码查询、项目重构、优化都不太便捷,所以本篇主要记录通过 kotlin分包、java分包 来区分、整合 java类和kotlin类 因为目前项目为多包模块化结构,其内也是Java、Kotlin混编开发,有一天看到项目内做了java文件和kotlin文件的分包整合,所以抽时间记录一下 根据我的分包诉求,顺带学习一下sourceSet...

Kotlin语法学习(三)_Lambda编程

发布时间:2022-11-28 ANDROID KOTLIN 安卓
Lambda编程 集合的创建和遍历方式 集合只要包含List和Set在宽泛一些就包括Map这种键值对类型的数据结构List,Set和Map在java当中都是接口,其中List的主要实现类是ArrayList和LinkedList,Set的主要用的实现类是HashSet,Map主要用的实现类是HashMap现在我们要创建一个水果集合来放水果,在Kotlin当中可以这样写 val list = ArrayList<String>()list.add(苹果)list.add(香蕉)list.add(...

VS Code环境下配置Kotlin语言开发环境

发布时间:2022-11-23 开发语言 ANDROID KOTLIN
目录 一、安装VS Code扩展 1.安装Kotlin Language 2. 安装、配置Code Runner 二、安装Kotlin-compiler 1.下载Kotlin-compiler 2.安装JDK 3.配置环境变量 三、测试代码 一、安装VS Code扩展 1.安装Kotlin Language 2. 安装、配置Code Runner 安装成功后进入Code Runner扩展设置,下滑勾选Code-runner:Run In Terminal 二、安装Kotlin-compiler 1.下...

【Kotlin 协程】协程的挂起和恢复 ① ( 协程的挂起和恢复概念 | 协程的 suspend 挂起函数 )

发布时间:2022-11-24 ANDROID KOTLIN 协程 恢复 挂起 KOTLIN 协程
一、协程的挂起和恢复概念 函数 最基本的操作 是 : 调用 call : 通过 函数名或函数地址 调用函数 ;返回 return : 函数执行完毕后 , 继续执行函数调用的下一行代码 ; 协程 在 调用 call 和 返回 return 基础上 , 又新增了两种 状态 : 挂起 Suspend : 暂停当前执行的协程 , 保存挂起点的局部变量 , 然后执行异步任务 , 后面的代码会得到异步任务执行完毕 , 恢复 Resume 挂起状态后再执行后续代码 ;恢复 Resume : 暂停的协程...

【Kotlin 协程】协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )

发布时间:2022-11-25 阻塞 KOTLIN UI 协程 挂起 KOTLIN 协程
一、协程挂起 和 线程阻塞 对比 挂起是协程中的概念 , 只能在协程中使用 ; 阻塞是线程中的概念 , 可以在主线程和子线程中使用 ; 1、协程挂起 协程 挂起 操作 : 在协程中使用 delay 函数 , 挂起 20 秒时间 , 然后 20 秒后更新 UI ; delay 函数是 挂起 suspend 函数 ; // 创建协程GlobalScope.launch(Dispatchers.Main) { delay(20000) // 主线程更新 UI Log.i(M...