kotlin

2024/4/11 14:39:39

Kotlin 中的 inline 和nonline 和crossinline

inline /*** 内联 递归函数无法内联,编译不通过* 函数的 参数 没有 lambda 无需内联--只是减少了方法调用层级 对性能没大影响* 函数的 参数 有 lambda 内联 * 1 不使用内联 在调用端,会生成 Function 对象 完成 lambda的 调用(性能损耗,for 循环 或…

Kotlin--Sealed Class Sealed Interface

Sealed class 1 其子类可以出现在定义 sealed class 的不同文件中,但不允许出现在与不同的 module 中,且需要保证 package 一致 2 sealed class 是抽象类,可以拥有抽象方法,无法直接实例化。 3 sealed class 的实例&#xff0c…

Coroutine--协程笔记

MainScope.launch{ } coroutine coroutine coroutine coroutine coroutine coroutine coroutine coroutine coroutine coroutine

Kotlin中的字符串基本操作

字符串定义: val str: String "Hello World"val str1 "Hello World"获取字符串的长度: println(str.length)通过索引方式访问某个字符,索引从0开始: println(str[4])通过for循环迭代字符串: for…

Kotlin 33. CompileSdkVersion 和 targetSdkVersion 有什么区别?

CompileSdkVersion 和 targetSdkVersion 有什么区别? 在 build.gradle (Module) 文件中,我们通常会看到 CompileSdkVersion 和 targetSdkVersion 的使用,比如下面是一个完整的 build.gradle (Module) 文件: plugins {id com.and…

Jetpack Compose中使用MD样式组件Scaffold及导航底部菜单的实现

Compose给我们提供了一个Material Design样式的首页组件(Scaffold),我们可以直接套用从而完成一个APP的首页界面 由于Scaffold中还包含有其他的组件,所以讲解Scaffold先讲解前置的一些组件 TopAppBar 首先,便是TopAppBar,其本质就是我们Android原生常见的Toolbar,不过其封装的…

Kotlin内置函数let、run、apply的区别

序、慢慢来才是最快的方法。 Kotlin 中的 let、run 和 apply 都是 Scope Functions(作用域函数),用于限定一个代码块的作用域。它们的区别在于返回值和使用场景上。 let函数 源码: kotlin.internal.InlineOnly public inline …

开源库MusicPlayManager - 封装StarrySky音乐库

开源库MusicPlayManager - 封装StarrySky音乐库关于效果图使用Java版初始化Kotlin版初始化java版权限检查工具使用方法:kotlin权限检查工具使用方法:java使用打印日志kotlin使用打印日志java防恶意点击kotlin防恶意点击使用还有好对方法,如设置音量大小、倍速、更新…

安卓与串口通信-校验篇

前言 一些闲话 时隔好几个月,终于又继续更新安卓与串口通信系列了。 这几个月太颓废了,每天不是在睡觉就是虚度光阴,最近准备重新开始上进了,所以将会继续填坑。 今天这篇文章,我们来说说串口通信常用的几种校验方…

Dagger2 kotlin中使用@Named总是编译报错

报错写法: Named("key1")Injectlateinit var httpObject: HttpObjectNamed("key2")Injectlateinit var httpObject2: HttpObject正确写法需要使用field:Named(""): field:Named("key1")Injectlateinit var http…

Android kotlin 使用Dagger2报错 InvocationTargetException 不能生成DaggerXXComponent

官方/网络示例: implementation com.google.dagger:dagger:2.x kapt com.google.dagger:dagger-compiler:2.x错误提示: Execution failed for task :app:kaptDebugKotlin. > A failure occurred while executing org.jetbrains.kotlin.gradle.inter…

Android resource/drawable转换成Uri,Kotlin

Android resource/drawable转换成Uri,Kotlin private fun convertResource2Uri(resId: Int): Uri {return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE "://" resources.getResourcePackageName(resId) / resources.getResourceTypeName(resI…

[译] Kotlin 标准方法备忘,一文搞懂JVM架构

校对者:phxnirvana 上周我在推特上谈到了 Kotlin 标准方法备忘的新内容,我发现它们比传统的方法更好。它并不关注每个方法的工作原理,而是根据开发人员想要实现的目标来提供指导: [外链图片转存失败,源站可能有防盗链机制,建议将…

kotlin协程、线程切换,函数方法委托

kotlin协程、线程切换,函数方法委托 一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可…

Java new T() 创建泛型的实例

fun <T> getClassInstance(clazz: Class<T>): T{var constructor clazz.getConstructor()return constructor.newInstance() }

Android手柄数据全解析

前言 功能需要&#xff0c;获取物理手柄数据(本文章只针对处于Android模式的手柄)&#xff0c;然后转换成云需要的数据。手柄数据主要分为两款&#xff0c;一个是轴数据&#xff0c;一个是按键数据&#xff0c;下面分别来说明。 判断是否是手柄设备 public static boolean is…

【8】Kotlin学习之集合关键词all ,any,count,find,findlast

all 与any all 集合内的所有成员都满足某条件。any 集合内的任意一成员满足某条件 代码 fun main() {var a A("a",3)var a1 A("a",55)var b a.copy(b 20)var list arrayListOf(a,a1,b)println(list)println(list.all { a:A -> a.b 3 })println(…

kotlin实现单例模式

kotlin实现单例模式&#xff0c;大体分为两种方式&#xff0c;一种饿汉式单例模式&#xff0c;一种懒汉式单例模式。 1.饿汉式单例模式 在类前面加上object关键字&#xff0c;就实现了饿汉式单例模式&#xff1a; object singletonDemo { }在kotlin中&#xff0c;使用这种方式…

Kotlin多平台响应式框架reaktive

Kotlin多平台响应式框架reaktive Kotlin跨平台Reactive Extensions实现。 安装配置 这里有几个已经发布到 Maven Central 的模块&#xff1a; reaktive&#xff1a;Reaktive 的主要库&#xff08;多平台&#xff09;reaktive-annotations&#xff1a;注解集合&#xff08;…

\结构化并发原理解析

前言 这篇文章来介绍一下协程结构化并发的原理。 正文 在开始之前&#xff0c;我们可以回忆一下&#xff0c;协程的结构化并发就是带有层级和结构的并发&#xff0c;而这个层次和结构&#xff0c;在前面有篇文章&#xff1a; 这里有介绍&#xff0c;简单来说就是协程存在父…

Kotlin 中 泛型 out--in -- *

泛型到底是什么 类比函数/方法&#xff0c;定义时指定参数类型&#xff08;形参&#xff09;&#xff0c;调用时传入具体参数实例&#xff08;实参&#xff09; 泛型也是如此&#xff0c; 定义时指定数据类型&#xff08;形参&#xff09;&#xff0c;调用时传入具体数据类型…

Kotlin中 for in 是有序的吗?forEach呢?

我们要遍历一个数组、一个列表&#xff0c;经常会用到kotlin的 for in 语法&#xff0c;但是 for in 是不是有序的呢&#xff1f;forEach是不是有序的呢&#xff1f;这就需要看一下它们的本质了。 数组的 for in // 调用&#xff1a; val arr arrayOf(1, 2, 3) for (ele in …

LayoutInflater中inflate()参数解析

1、关于LayoutInflater&#xff0c;它是如何通过 inflate 方法获取到具体View的&#xff1f; 获得LayoutInflater实例的方式有以下三种&#xff1a; LayoutInflater inflater getLayoutInflater();LayoutInflater inflater LayoutInflater.from(this);LayoutInflater infla…

springboot启动报错:Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary

springboot启动报错&#xff1a;Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary 报错内容&#xff1a; Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary 解决方法&#xff1a; build --> …

(原创)不小心禁用或者卸载Kotlin插件的解决方法

问题 之前因为kotlin版本的一些问题&#xff0c;不小心禁用了kotlin插件 等到再重启Android Studio&#xff0c;就发现进不去了 后来在网上找到方法解决了&#xff0c;但是某一天 又脑子一热&#xff0c;直接把Kotlin插件给卸载了&#xff0c;这下直接玩大发了 花了一点时间才…

Kotlin关键字二——constructor和init

在关键字一——var和val中最后提到了构造函数&#xff0c;这里就学习下构造函数相关的关键字: constructor和init。 主要构造(primary constructor) kotlin和java一样&#xff0c;在定义类时就自动生成了无参构造 // 会生成默认的无参构造函数 class Person{ }与java不同的是…

kotlin 防范竞态

当你调用成员&#xff0c;这个成员可能为null&#xff0c;可能为空值&#xff0c;就必须采用防范竞态条件&#xff0c;这个是 KT 编程的规范化 下面举例&#xff1a; 防范竞态条件【尽量使用 &#xff1f; 内置函数 空合并操作符】 fun test(){val info: String ? "&q…

Kotlin的作用域函数 let、also、with、run、apply

作用域函数主要有下面这几种&#xff0c;apply &#xff0c;with 、run 、let 、以及 also 。这些函数非常类似&#xff0c;它们的主要区别&#xff1a; 引⽤上下⽂对象的⽅式 &#xff08;this / it&#xff09;返回值 他们在开发中的使用场景主要有两个&#xff0c;一是非空…

Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了&#xff0c;而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力 作为一个在Android开发领域积累了不少经验的开发者&#xff0c;自己也看了不少书&#xff0c;也和不少前辈交流过&#xff0c;在这里分享一…

kotlin+Spring Boot + JPA的一些tips

最近开始使用kotlin开发基于spring boot的web应用&#xff0c;踩了不少坑&#xff0c;也有不少思考&#xff0c;简单记录下。这篇算是一个开坑汇总&#xff0c;里面的每个主题都放到单独的文章里来讨论。 1. maven插件 maven插件主要是三个点&#xff1a;-Xjsr305strict、no-…

Kotlin注解

文章参考 1、概念 注解可以对 类、函数、函数参数、属性等 做标注 注解信息可用于 源码级、编译期、运行时 示例 Retention(AnnotationRetention.RUNTIME) //作用于运行时 Target(AnnotationTarget.CLASS) //限定作用于类 annotation class Api(val url: String)/*** Rete…

kotlin:list的for循环

代码&#xff1a; var list { "a", "b", "c" } for (i in list.indices) {print("app"i""list[i]) }

【第三阶段】kotlin语言的takeUnless内置函数

1.takeUnless和takeif功能是相反的 username.takeif{true/false} true:返回username本身 false:返回null username.takeUnless{true/false} false:返回username本身 true:返回nullpackage Stage3 class Manager{private var info:String?nullfun getInfo()infofun setI…

Jetpack:009-kotlin中的lambda、匿名函数和闭包

文章目录 1. 概念介绍2. 使用方法2.1 函数类型的变量2.2 高阶函数 3. 内容总结4.经验分享 我们在上一章回中介绍了Jetpack中Icon和Imamg相关的内容&#xff0c;本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&…

Kotlin零基础入门教程,查漏补缺来一手~~~

数据类型 Kotlin跟 java 相同&#xff0c;基本数据类型有八种 boolean&#xff0c;char&#xff0c;int&#xff0c;short&#xff0c;long&#xff0c;float&#xff0c;double&#xff0c;byte 类型位宽最小值最大值Short16-3276832767Int32(-2^31)(2^31-1)Long64(-2^63)(2…

Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(下))

文章目录flow的扁平化flatMapConcatflatMapMergeflatMapLatestFlow exceptions使用try-catch捕获collector的异常flow中的任何异常都可以被捕获Exception transparencyFlow completionLaunching flowFlow and Reactive Streamsflow的扁平化 假设现在有这样一个调用&#xff1a…

Kotlin协程最佳实践

文章目录 转自官方文档一 注入调度程序二 挂起函数应该能够安全地从主线程调用三 ViewModel 应创建协程四 不要公开可变类型五 数据层和业务层应公开挂起函数和数据流在业务层和数据层中创建协程 六 在测试中注入 TestDispatcher七 避免使用 GlobalScope八 将协程设为可取消九 …

2 Kotlin常用集合类型

1 常用集合类型 集合类型特性和用途List有序集合&#xff0c;可以包含重复元素。可变列表是可修改的&#xff0c;不可变列表是只读的。Set不包含重复元素的无序集合。可变集合是可修改的&#xff0c;不可变集合是只读的。Map键值对的无序集合。可变映射是可修改的&#xff0c;…

Kotlin中特性、数据类、伴生对象、顶层函数

Kotlin中的函数参数和属性声明 在 Kotlin 中&#xff0c;函数参数和属性有不同的声明方式和行为。这些特性使得 Kotlin 代码更加安全、易于理解和维护。 函数参数的只读性 fun sum(a: Int, b: Int): Int {var modifiedA aif (modifiedA > 0) {modifiedA 1}//三元表达式v…

Kotlin学习之03

nonLocalReturn返回调用的方法&#xff0c;下面直接返回main方法 inline fun nonLocalReturn(block:() -> Unit) { block() } fun main() { nonLocalReturn { return } } 禁止non-local-return&#xff0c;使用crossinline关键字 public inline fun IntArray.forEach(…

Android Studio插件实现语言国际化

第一步&#xff1a; 首先要先下载AndroidStudioPlugin https://github.com/Airsaid/AndroidLocalizePlugin 第二步&#xff1a; 通过 点击AndroidStudio菜单下Preference找到Plugin通过目录方式安装 选择install plugin from Disk 第三步&#xff1a; 选中下载存放在硬盘…

Python--使用布林线设计均值回归策略

在本教程中,我们将探讨均值回归的概念以及如何使用 Python 中的布林线设计交易策略。均值回归是一种流行的交易策略,它基于这样的假设:随着时间的推移,资产价格往往会恢复到历史平均水平。布林线 (Bollinger Bands) 由约翰布林格 (John Bollinger) 开发,是一种技术分析工具…

Kotlin 核心语法,为什么选择Kotlin ?

Kotlin 是一个基于 JVM 的新的编程语言&#xff0c;由 JetBrains 开发。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的&#xff0c;Intellij作为它主要的开发IDE。对于 Android开发者&#…

5:kotlin 类(Classes )

kotlin支持面向对象编程&#xff0c;也有雷和对象的概念 要声明一个类需要使用class关键字 class Customer属性&#xff08;Properties&#xfeff;&#xff09; 可以在类名后边添加()&#xff0c;在()里边声明属性 class Contact(val id: Int, var email: String)声明了不…

8:kotlin 类型检查和转换(Type checks and casts)

在运行时可以执行类型检查以检查对象的类型。类型转换将对象强制转换为不同的类型 is 和 !is 可以使用is或者!is来判断实例是不是指定的类型 fun main() {var obj : Any "cast"if (obj is String) {println(obj.length) // 4}obj 123if (obj !is String) { pr…

kotlin如何设置转盘上的文字,减少卡顿

一、需求 1.设置转盘上的文字 2.减少卡顿 二、实现步骤 设置转盘上的文字 1.首先把写文字的笔设置好 mPaint!!.color Color.BLACKmPaint!!.textAlign Paint.Align.CENTER mPaint!!.textSize 35f2.计算文本的高度 //计算text文本的高度 val fm mPaint!!.fontMetrics val tex…

swift语言下SurfGen库做的爬虫是什么样的 ?

Swift语言并没有内置的爬虫库&#xff0c;但是你可以使用第三方库来实现爬虫功能。其中比较常用的是Alamofire和SwiftyJSON。Alamofire是一个基于Swift语言的HTTP网络库&#xff0c;可以用来发送HTTP请求和接收HTTP响应。而SwiftyJSON则是一个用于处理JSON数据的Swift库&#x…

ExoPlayer的基本使用,播本地raw,播网络,缓存, 旋转

基于版本 api com.google.android.exoplayer:exoplayer:2.17.0xml中使用布局 <com.google.android.exoplayer2.ui.PlayerViewandroid:id"id/playerView"android:layout_width"match_parent"android:layout_height"match_parent"app:surface_t…

kotlin retrofit

参考博客 【Android】【Kotlin】使用【Retrofit】基本使用 如何在kotlin中正确使用retrofit 将kotlin协程用于网络请求—完整实例&#xff0c;看这一篇就够了 Kotlin协程Retorfit网络请求框架封装

Kotlin实现,MediaExtractor+MediaCodec+AudioTrack音视频播放

属性介绍 videoExtractor &#xff1a;视频源audioExtractor &#xff1a;音频源mediaCodecVideo &#xff1a;视频解码mediaCodecAudio &#xff1a; 音频解码audioTrack &#xff1a; 音频播放VideoInPutThread &#xff1a; 解码注入VideoOutPutThread &#xff1a; 视频解…

C++编写的多线程自动爬虫程序

以下是一个使用C编写的爬虫程序&#xff0c;用于爬取Python进行多线程跑数据的内容。本示例使用了Python的requests库来发送HTTP请求&#xff0c;并使用cheeseboy的爬虫ipIP库来设置爬虫ip信息。以下是详细代码和步骤&#xff1a; #include <iostream> #include <stri…

Kotlin 使用@BindingAdapter编译出错

在 Kotlin 中使用 BindingAdapter 注解时&#xff0c;需要确保你的项目正确配置了 Data Binding。 首先&#xff0c;请确保在项目的 build.gradle 文件中启用了 Data Binding&#xff1a; android {// ...dataBinding {enabled true} }接下来&#xff0c;请确保你在正确的地…

Android类似微信聊天页面教程(Kotlin)四——数据本地化

前提条件 安装并配置好Android Studio Android Studio Electric Eel | 2022.1.1 Patch 2 Build #AI-221.6008.13.2211.9619390, built on February 17, 2023 Runtime version: 11.0.150-b2043.56-9505619 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 11 …

Kotlin中 ? 和 !! 的区别,?和?:使用

Kotlin中 ? 和 !! 的区别 前言&#xff1a; 很早就听说Kotlin对java NullPointerException有一定的管理&#xff0c;而在Kotlin中 ? 和 !! 均是和 NullPointerException有关系&#xff0c;对于刚接触Kotlin的初学者了来说就有一点蒙&#xff0c;就比如我&#xff0c;经常能看…

这个坑我都说了很多遍了,怎么还有人踩?Kotlin可能带来的一个深坑(最后一次提醒)

写在前面 去年&#xff0c;哦不&#xff0c;前年五月的时候&#xff0c;谷歌宣布了Kotlin-First 这一重要概念&#xff0c;主张Kotlin 是 Android 开发者的首选语言。 消息发出去后&#xff0c;很多人心中都有了一个疑问&#xff1a;那我一个搞Android开发的&#xff0c;我现…

Fragment 要你何用?2.0版本

前言 在之前的文章里有分析过Activity、Fragment、View之间的关联&#xff0c;也简单分析了Fragment的原理。 本篇将对Fragment被高频使用的场景以及一些坑点作分析&#xff0c;通过本篇文章&#xff0c;你将了解到&#xff1a; 老生常谈&#xff1a;为什么需要Fragment?Frag…

ViewPager添加删除数据后刷新页面方法

覆写PagerAdapter的getItemPosition方法 /*** 覆写此函数&#xff0c;才能使得删除数据后UI及时刷新*/override fun getItemPosition(obj: Any): Int {return POSITION_NONE} Overridepublic void destroyItem(ViewGroup container, int position, Object object) {View view …

Kotlin 中的协变与逆变

在 Kotlin 中&#xff0c;协变&#xff08;covariance&#xff09;和逆变&#xff08;contravariance&#xff09;是与类型参数相关的重要概念。它们允许我们在泛型类型的继承关系中更灵活地处理类型转换。本文将介绍协变和逆变的概念&#xff0c;并通过示例代码来说明它们的用…

JetpackCompose从入门到实战学习笔记14——Coli的简单使用

JetpackCompose从入门到实战学习笔记14——Coli的简单使用 1.简介&#xff1a; Coil 是一个 Android官方出的配合Jetpack的图片加载库&#xff0c;通过 Kotlin 协程的方式加载图片。 优点如下&#xff1a; 更快: Coil 在性能上有很多优化&#xff0c;包括内存缓存和磁盘缓存…

你写过的最蠢的代码是?

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

【项目实战】从零开始设计并实现一个接口异常链路分析器

这不是马上要到1024了吗&#xff0c;这不得弄个什么工具给部门项目提提效&#x1f62f;&#xff1f; 1. 背景 在我们服务端应用当中&#xff0c;我们往往会要求更高的性能和更高的稳定性&#xff0c;但实际开发的过程中&#xff0c;可能会出现很多赶时间的情况&#xff08;也…

分析一次Groovy的接口、布尔判断、操作符重载

Groovy接口 Groovy 不需要显示的通过new创建匿名内部类的实例。 //Button对象 class Button { ​void addOnClickListener(OnClickListener listener) {listener.onClick()} ​void addOnLongClickListener(OnLongClickListener listener) {listener.onLongClick()} ​ } ​ …

Android开发之NDK 编译Pjsip

Android开发之NDK 编译Pjsip 前言一、环境资源准备二、安装JDK三、安装SDK四、安装NDK五、编译openh264六、编译PjSip七、我们导入PjSip的example apk程序,编译生成apk放到手机中测试。八、其实编译PjSip和生成example apk都比较快,但是在测试example apk时,碰到了问题。前言…

[Android Material Design]组件18 - BottomAppBar

文章目录效果图关键代码源码地址效果图 BottomAppBar底部栏是在屏幕底部展示出导航和关键动作按钮的一个控件&#xff0c;该组件最多可以放置4个菜单项&#xff0c;抽屉导航、悬浮按钮和另两个。示例图中抽屉导航右侧的画板图标不是按钮&#xff0c;而是抽屉导航的logo图标&…

Android BottomSheetDialog最大展开高度问题

修改界面的时候遇到了这个问题,这个问题比较简单,网上解决方案也很多,这是 peekHeight 半展开高度,毕竟只是 dialog,全铺满就我们不必考虑 dialog 了 方法是在DialogFragment初始化dialog时处理 companion object {/*** 设置弹窗高度 默认展开无折叠情况 */ const val …

Kotlin 协程

Kotlin 协程&#xff08;Coroutines&#xff09;是一种轻量级的并发编程解决方案&#xff0c;旨在简化异步操作和多线程编程。它提供了一种顺序和非阻塞的方式来处理并发任务&#xff0c;使得代码可以更加简洁和易于理解。Kotlin 协程通过提供一套高级 API&#xff0c;使并发代…

Eyepetizer-in-Kotlin:一款简约的小视频app,带你走进kotlin

Google在今年的IO大会上宣布&#xff0c;将Kotlin作为Android开发的一级语言。作为紧跟潮流的弄潮儿&#xff0c;对kotlin稍做了解后&#xff0c;发现其有优秀的特性&#xff0c;所以就开始了学习&#xff0c;而Eyepetizer-in-Kotlin便是对kotlin进行学习后的阶段性成果。 一、…

Kotlin学习之旅(D12)-第一个App之功能实现

Kotlin学习之旅第十二天 今天主要是Koltin编写代码&#xff0c;进行功能实现 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学习…

Kotlin学习之旅(D14)-学习资料汇总

首先祝所有程序员1024节日快乐 我们也来到了Kotlin学习之旅的最后一天 今天的主题是&#xff1a;学习资料汇总 文章目录前言官方文档文档类在线编程书籍《Kotlin in Action》《Kotlin for Android Developers》《Programming Kotlin》总结视频Youtube - Kotlin TutorialB站- …

Google 拥抱的 Kotlin 是否为 Android 应用开发的最佳选择?

原文&#xff1a;Authenticating Android Apps Developed in Kotlin 作者&#xff1a;Bruno Krebs 翻译&#xff1a;陈云龙 审校&#xff1a;苏宓&#xff0c;欢迎技术投稿、约稿、给文章纠错&#xff0c;请发送邮件至tumincsdn.net。 本文中&#xff0c;我们将学习使用 JWT…

使用android studio开发中 出现报错“你的主机中的软件中止了一个已建立的连接”

碰到这种错误有时候就不太好排错&#xff0c;各种clean项目重启电脑啥的&#xff0c;最终发现解决办法是关掉笔记本开的移动热点就好了。 因为拿了一个没有插卡的测试手机&#xff08;一加5&#xff09;测试&#xff0c;所以会使用笔记本电脑建立的移动热点进行连接&#xff0…

Kotlin学习中

Kotlin学习资料汇总&#xff1a; 官网&#xff1a; https://www.kotlincn.net/ https://www.kotlincn.net/docs/reference/kotlin 官方文档翻译 http://www.kotlindoc.cn/ https://github.com/huanglizhuo/kotlin-in-chinese 菜鸟 http://www.runoob.com/kotlin/kotlin…

Android修行手册-一个滑动旋转的弧形菜单

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列

Android RecyclerView点击宫格处于选择态外框变方框线,Kotlin

Android RecyclerView点击宫格处于选择态外框变方框线&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_MEDIA_IMAGES" /> implementa…

Kotlin中循环语句

在Kotlin中&#xff0c;循环语句有多种形式&#xff0c;包括while循环、do-while循环、for循环等。下面将逐个说明每种形式的使用。 while循环&#xff1a; var n: Int 5 while (n > 0) {println("n$n")n-- }上述代码中&#xff0c;使用while循环打印n的值&…

使用 Kotlin 委托,拆分比较复杂的 ViewModel

需求背景 在实际的开发场景中&#xff0c;一个页面的数据&#xff0c;可能是由多个业务的数据来组成的。使用 MVVM 架构进行实现&#xff0c;在 ViewModel 中存放和处理多个业务的数据&#xff0c;通知 View 层刷新 UI。 传统实现 比如上面的例子&#xff0c;页面由3 个模块数…

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap&#xff0c;Kotlin fun getOriginalBitmap(resId: Int): Bitmap {val options BitmapFactory.Options()options.inJustDecodeBounds true //只解析原始图片的宽高&#xff0c;不decode原始文件装载到内…

手摸手带你走进Kotlin Coroutine

参考文章 kotlin官网 kotlin github Roman Elizarov 视频&#xff08;基于1.3之前的&#xff0c;一些用法已经改变&#xff0c;但是主要看原理和思想&#xff09; Roman Elizarov 视频深入&#xff08;基于1.3之前的&#xff0c;一些用法已经改变&#xff0c;但是主要看原理…

Kotlin学习之旅(D8)-From Java to Kotlin

Kotlin学习之旅第八天 今天的主题是&#xff1a;From Java to Kotlin 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学习之旅(…

设计模式 -- 策略模式(Strategy Pattern)

策略模式&#xff1a;一种行为型模式&#xff0c;这些设计模式特别关注对象之间的通信。在策略模式中&#xff0c;我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图&#xff1a;定义一系列的算…

2022年 超详细的Android(安卓)入门编程教程

前言 对于 Android 新手入门&#xff0c;很容易会遇到学习瓶颈和困难。 没有一个好学的学习方向&#xff0c;学习规划&#xff0c;学习教程&#xff0c;这都是新手会面临的问题。 很多人会在百度上搜索&#xff0c;查阅相关资料。但是网上搜索的很多资料&#xff0c;都是断片…

Kotlin第4篇 【Kotlin】进阶视频课程-关东升-专题视频课程

Kotlin第4篇 【Kotlin】进阶视频课程—376人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第四部分&#xff0c;主要内容包括&#xff1a;反射机制、异常处理、线程、协程、Kotlin与Java混合编程、Kotlin I/O与文件管理、网络编程、图形用户…

Android 性能监控之——消息调度启动优化方案实践

作者&#xff1a;卓修武K 模拟劣化场景 我们首先模拟一个会影响冷启动的耗时消息场景, 在demo中&#xff0c;插入一个耗时消息到 startActivity对应的消息之前。 package com.knightboost.appoptimizeframeworkimport android.content.Intent import androidx.appcompat.app.…

ViewModel的使用

前言 作为一个android开发的人&#xff0c;听的最多的就是MVX设计模式&#xff0c;比如MVC啊&#xff0c;还有以前比较火的MVP&#xff0c;但是现在最流行的应该就是MVVM了&#xff0c;MVVM拆解开就是&#xff1a;M–model类&#xff0c;V–view&#xff0c;VM–ViewModel&…

AndroidStudio报错:A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptEx

AndroidStudio报错 Execution failed for task :app:kaptTqxwDebugKotlin. A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution java.lang.reflect.InbocationTargetException&#xff08;no error message&#xff09; 解决方案 把ext.…

kotlin map和Json转换,Json解析

分享一下平时使用的简单转换 1.当后台需要json数组作为入参时&#xff1a; val body toRequestBody("name" to name, "version" to 1)这样使用我感觉还比较方便&#xff0c;下面看看toRequestBody的实现 fun toRequestBody(vararg params: Pair<Stri…

Kotlin 之 协程(四)协程并发

认识channel channel是一个并发安全的队列&#xff0c;可以连接协程&#xff0c;实现不同协程的通信。 Library中定义了几种类型的Channel。 它们在内部能够存储多种元素,只是在send调用是否能够挂起方面有所不一样。 对于全部通道类型&#xff0c;receive调用的行为方式相同…

劝官方早点修复:Kotlin里面一个神奇的BUG(移动开发注意)

人无完人&#xff0c;金无足赤&#xff0c;哪怕是官方&#xff0c;也免不了出现BUG。上次就和大家分享给过一篇关于Kotlin可能带来的一个深坑&#xff08;最后一次提醒&#xff09; 今天要和大家分享的是Kotlin里面一个神奇的BUG 原文地址&#xff1a;https://blog.csdn.net/m0…

kotlin基础语法学习网址

网址&#xff1a;https://www.runoob.com/kotlin/kotlin-basic-syntax.html

Kotlin新手教程二(Kotlin基本数据类型及基础语法)

一、基本数据类型 1.数字 由于Kotlin支持类型推断&#xff0c;所以在使用时若超出Int的范围则会被认定为其它类型&#xff1b;若需要显式指定Long型值&#xff0c;则需要在值后添加L后缀。 2.浮点数 3.比较两个数&#xff08; 和 &#xff09; Kotlin 中没有基础数据类型&a…

Rust语言抓取在线考试平台的专业试题数据

不管你是学车也好&#xff0c;还是考各类证书&#xff0c;都离不开刷题&#xff0c;有些题库都是需要收费的&#xff0c;而且市面平台那么多&#xff0c;想要刷更多的题只能下载很多不同APP&#xff0c;因此&#xff0c;我写了一个Rust爬取试题的爬虫&#xff0c;将更多的分散的…

哆啦百宝箱APP

专门为年轻人设计的APP&#xff0c;主打的免费、无恶心广告、不获取任何个人信息。 哆啦百宝箱 ● 永久免费 ● 无恶心广告 ● 种类巨多 ● 全民参与 ● 爆款功能 ● 用心创造 哆啦百宝箱 提供了从日常、图片、查询、设备、趣味、娱乐等多方面的功能&#xff0c; 操作简单&a…

Kotlin重载Android父类方法出现崩溃异常

问题描述&#xff1a; java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter contextkotlin里重载的父类代码&#xff1a; override fun onActivityResult(requestCode…

颠覆Android开发行业未来,让Kotlin成为您的新宠

会Java还要学习kotlin吗&#xff1f; 看看这位老哥的回答&#xff1a; kotlin语言有前景吗&#xff1f; 看看在职高级开发怎么说的&#xff1a; Kotlin是什么&#xff1f; Kotlin是一种基于Java虚拟机&#xff08;JVM&#xff09;的静态类型编程语言&#xff0c;可以与Java代…

《Kotlin从零到精通Android开发》欧阳燊(二)

第六章 Kotlin使用简单控件 6.1使用按钮控件 按钮button 按钮事件三种Kotlin编码方式&#xff1a;匿名函数&#xff0c;内部类&#xff0c;接口实现 1.匿名函数方式 btn_click_anonymos.setOnClickListener { v -> //Kotlin变量类型转换使用as toast("${(v as But…

Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin

Android Glide判断图像资源是否缓存onlyRetrieveFromCache&#xff0c;使用缓存数据&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity…

Try-with-resources in Kotlin

java中有个很好用的语法Try-with-resources kotlin中有没有类似的呢&#xff1f; 当然有啊&#xff01; 在kotlin stdlib包中有个use方法&#xff0c;用法如下&#xff1a; OutputStreamWriter(r.getOutputStream()).use {// by it value you can get your OutputStreamWriter…

在 Android 10 中访问/proc/net/route权限被拒绝

在 Android 10 中访问/proc/net/route权限被拒绝 问题分析完整代码问题 FileReader fr = new FileReader(“/proc/net/route”);在 Android 10 中访问/proc/net/route权限被拒绝 分析 运行/proc/net/route命令并处理其输出: val runtime = Runtime.getRuntime() val proc …

《Android App开发进阶与项目实战》资源下载和内容勘误

资源下载 下面是《Android App开发进阶与项目实战》一书用到的工具和代码资源&#xff1a; 1、本书使用的Android Studio版本为4.2&#xff0c;最新的安装包可前往Android官网页面下载。 2、本书提供所有示例源码的demo工程下载&#xff0c;源码&#xff08;适配Android4.4到A…

记录使用阿里 ARoute 遇到的坑

1.按照官方一个配置好之后 尝试使用 跳转出现 Aroute Theres no route matched path"" 我这边遇到的坑是配置问题 kotiln 使用了 Java的配置 plugins {id("com.android.application")id("org.jetbrains.kotlin.android")id("kotlin-kapt&…

使用 ResourceUtil.getReader()时提示没有找到指定文件

错误原因 其中getReader(NotNull String resource, java.nio.charset.Charset charset) 对resource的位置先进行绝对路径判断&#xff0c;如果没找到会进行相对路径查找。 &#xff08;是kotlin格式写的&#xff09; ResourceUtil.getReader("/${if (tplName.toLowerCa…

必须要懂的Kotlin开发技巧

string.xml资源id快速转换String 定义如下扩展属性&#xff1a; val Int.resToString: Stringget() MainApp.mApplication.getString()使用起来就很方便了:R.string.xxx.resToString View隐现设置 平常设置View显隐的方式this.visibility View.xxx有点麻烦&#xff0c;封…

学习Kotlin~函数式编程

函数式编程 高阶函数&#xff1a;以函数为参数或返回函数函数式编程范式主要依赖于高阶函数返回的数据&#xff0c;这些高阶函数专用于处理各种集合这些高阶函数可方便的联合多个同类函数构建链式操作以创建复杂的计算行为 函数类别 一个函数式应用通常由三大类构成&#xf…

kotlin静态变量和静态方法的定义和使用

目录静态变量和静态方法的定义静态变量和静态方法的使用kotlin中调用kotlin定义的静态变量和方法java中调用kotlin定义的静态变量和方法疑问怎么样可以使得java中调用kotlin的静态变量和方法像kotlin里那样更简便&#xff1f;静态变量和静态方法的定义 //Define.kt文件 class …

重学Kotlin(一) 控制流:if、when、for、while

If 表达式 用if替代Java中的三元运算符 // 作为表达式 val max if (a > b) a else bif 的分支可以是代码块&#xff0c;最后的表达式作为该块的值&#xff1a; val max if (a > b) {print("Choose a")a } else {print("Choose b")b }When 表达式…

落地 Kotlin 代码规范,DeteKt 了解一下~

前言 各个团队多少都有一些自己的代码规范&#xff0c;但制定代码规范简单&#xff0c;困难的是如何落地。如果完全依赖人力Code Review难免有所遗漏。 这个时候就需要通过静态代码检查工具在每次提交代码时自动检查&#xff0c;本文主要介绍如何使用DeteKt落地Kotlin代码规范…

肢解LeakCanary:精通BackgroundTrigger的“狠活”

本篇文章主要是分析LeakCanary一个不起眼的类&#xff1a;BackgroundTrigger。当出现内存泄漏时&#xff0c;这个类可以帮助我们当应用处于后台状态时再执行相关的dump heap操作。 依赖如下&#xff1a; implementation com.squareup.leakcanary:leakcanary-android-release:2…

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

前言 KAE 插件早在 2020 年就已经被宣布废弃了&#xff0c;并且将在 Kotlin 1.8 中被正式移除&#xff1a;Discontinuing Kotlin synthetics for views 如上图示&#xff0c;移除 KAE 的代码已经被 Merge 了&#xff0c;因此如果我们需要升级到 Kotlin 1.8&#xff0c;则必须要…

Kotlin数据流概览

文章目录 一 什么是数据流二 创建数据流三 修改数据流四 从数据流中进行收集五 数据流捕获异常六 在不同 CoroutineContext 中执行七 Jetpack 库中的数据流八 将基于回调的 API 转换为数据流 一 什么是数据流 数据流以协程为基础构建&#xff0c;可提供多个值。从概念上来讲&a…

【KRouter】一个简单且轻量级的Kotlin Routing框架

【KRouter】一个简单且轻量级的Kotlin Routing框架 KRouter&#xff08;Kotlin-Router&#xff09;是一个简单而轻量级的Kotlin路由框架。 具体来说&#xff0c;KRouter是一个通过URI来发现接口实现类的框架。它的使用方式如下&#xff1a; val homeScreen KRouter.route&l…

Android6.0以上动态申请权限方式

Android6.0以上动态申请权限方式&#xff1a; //申请权限 //1、首先声明一个数组permissions&#xff0c;将需要的权限都放在里面 String[] permissions new String[]{ Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_CO…

【第三阶段】kotlin语言内置函数with

1.with基本上和run一样&#xff0c;只是使用方式不一致 info.run、with(info) 2.with函数返回类型是根据匿名函数最后一行的类型变化而变化 with 函数里面持有的是this 3.具名操作 package Stage3fun main() {val info"kotlin"//具名操作//thisinfo 等价info传入…

kotlin 过滤集合中的特定的元素

kotlin提供了过滤集合很方便过滤集合中特定的元素 1 如果是同一种类型的操作&#xff0c;建议使用filter 或者是partition 例如过滤出字符长度大于3的元素 使用partition val numbers listOf("one", "two", "three", "four")val …

Kotlin 密封类与接口

密封的类和接口表示受限制的类层次结构&#xff0c;这些层次结构提供了对继承的更多控制&#xff1b;在定义密封类的模块和包之外&#xff0c;不能出现其他子类&#xff1b;密封类的每个实例都有一个来自有限集的类型&#xff0c;该类型在编译此类时是已知的&#xff1b;一旦编…

android button 按钮,设置左/右小图标,与文字居中距离

参考博客地址 功能点 支持自定义图标与文字的距离支持小图标宽高自定义支持左右自定义小图标 maven { url https://jitpack.io } implementation com.github.CMzhizhe:AppCompatButtonProject:1.0.0<com.gxx.buttonlibrary.DrawableCenterButtonandroid:layout_marginTop&…

Kotlin学习之旅(D6)-Kotlin Idioms part 1

Kotlin学习之旅第六天 今天的主题是&#xff1a;Kotlin中的习惯用法-第一部分 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 习惯用法…

Kotlin学习之旅(D7)-Kotlin Idioms part 2

Kotlin学习之旅第七天 今天的主题是&#xff1a;Kotlin中的习惯用法-第二部分 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学…

Kotlin 之 集合

集合概述 List 是一个有序集合&#xff0c;可通过索引&#xff08;反映元素位置的整数&#xff09;访问元素。 元素顺序很重要并且可以重复。Set 是唯一元素的集合。元素无顺序不可重复。Map&#xff08;或者字典&#xff09;是一组键值对。键是唯一的&#xff0c;值可以重复。…

Kotlin学习之旅(D9)-Android Extensions

Kotlin学习之旅第九天 今天的主题是 - -Android Extensions 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学习之旅(D6)-Kotli…

Android Jetpack(四) 行为

1、CameraX - 轻松地向应用中添加相机功能 CameraX 是一个 Jetpack 支持库&#xff0c;旨在帮助您简化相机应用的开发工作。它提供一致且易于使用的 API 界面&#xff0c;适用于大多数 Android 设备&#xff0c;并可向后兼容至 Android 5.0&#xff08;API 级别 21&#xff09…

Android Jetpack(五) 界面

1、动画和过渡 略 2、表情符号 - 在旧版平台上启用最新的表情符号字体 EmojiCompat 支持库旨在让 Android 设备及时兼容最新的表情符号。它可防止您的应用以 ☐ 的形式显示缺少的表情符号字符&#xff0c;该符号表示您的设备没有用于显示文字的相应字体。通过使用 EmojiComp…

自定义注解获取类,属性变量,方法,方法参数上注解的值(Kotlin)

先看下效果 我们先来看一下kotlin中的注解Annotation.kt&#xff1a; package kotlin.annotationimport kotlin.annotation.AnnotationTarget.*public enum class AnnotationTarget {/** 类、接口或对象 */CLASS,/** 仅注释类 */ANNOTATION_CLASS,/** 泛型类型参数&#xff08…

重学Kotlin(五) 泛型 类型别名 委托

泛型 定义泛型 class Box<E, T, W>(e: E, t: T, w: W) {var ee evar tt tvar ww w }使用泛型&#xff1a; //指定类型进行调用 val box: Box<Int, Double, String> Box(1, 1.0, "张飞")out和in 在java中 class Ani {}class Animal extends Ani …

Kotlin 学习之被我一直用错的“return@forEachIndexed/return@forEach”

目录一、集合遍历二、样例问题场景三、原因四、如何实现 Kotlin forEach 与 forEachIndexed 循环中的 break 与 continue五、心得一、集合遍历 1. Java 集合遍历方式 在 Java 中我们在遍历一个集合的时候常常使用的是以下两种方式&#xff1a; for (int i 0; i < list.s…

Kotlin 之 协程

初识协程&#xff0c;启动取消协程&#xff0c;Flow异步流&#xff0c;协程并发 目录&#xff08;一&#xff09;初识协程协程是什么&#xff1f;Android中协程解决了什么问题&#xff1f;协程的挂起与恢复挂起和阻塞协程的调度器 Dispatchers任务泄露结构化并发MainScope使用案…

Android Jetpack(三) 架构

1、数据绑定 - 以声明方式将可观察数据绑定到界面元素 数据绑定库是一种支持库&#xff0c;借助该库&#xff0c;您可以使用声明性格式&#xff08;而非程序化地&#xff09;将布局中的界面组件绑定到应用中的数据源。 一般调用 findViewById() 来查找 TextView 并将其绑定到…

Kotlin简易聊天室(Java赋值表达式转为Kotlin)

先看下效果&#xff1a; 基本原理&#xff1a; 1.客户端初始化socket&#xff0c;服务端初始化ServerSocket&#xff0c;定义IP和端口 2.服务端开启一个死循环&#xff0c;通过accept阻塞线程输入流不断的接收客户端的数据 3.客户端通过输出流发送数据给服务端 4.服务端通过输…

【Kotlin】高阶函数和Lambda

文章目录 高阶函数抽象和高阶函数方法引用表达式使用场景 Lambda表达式lambda表达式类型Lambda开销 闭包Java实现闭包Kotlin中的闭包 高阶函数 Kotlin天然支持了部分函数式特性。我们可以在一个函数内部定义一个局部函数。 fun foo(x: Int) {fun double(y: Int): Int {return…

Kotlin 之 协程(三)Flow异步流

flow介绍 挂起函数可以异步返回单个值&#xff0c;那如何异步多次返回多个值呢&#xff1f; 使用flow&#xff0c;flow的特点&#xff1a; flow{…}块中的代码可以挂起使用flow&#xff0c;suspend修饰符可以省略流使用emit函数发射值流使用collect的函数收集值flow类似冷流&…

重学Kotlin(二)继承 属性 接口

类与继承 在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。 如果主构造函数没有任何注解或者可见性修饰符&#xff0c;可以省略这个 constructor 关键字。 class Person(val firstName: String,val lastName: String "默认值",var age: Int, …

spring+kotlin项目注入失败

在kotlinspring项目中遇到一个问题&#xff0c;有时候在service中注入的repository为null。 后来看了下发现都是因为类里用到了Async和Transactional注解&#xff0c;并且调用的方法没有用“open”关键字修饰。 这里把报空指针的方法加上“open”就行。 具体为什么会这样&#…

【第四阶段】kotlin语言集合转换与快捷转换学习

1.list可以通过转换为set进行去重 2.list转set在转list也能去重 3.使用快捷函数distinct进行去重 package Kotlin.Stage4fun main() {val list mutableListOf("java", "ktolin", "c", "java", "ktolin", "c")pr…

【kotlin】递归和尾递归

文章目录递归尾递归优化递归 递归&#xff08;Recursive&#xff09;是指自己方法内部调用自己 我们来算一下5的阶乘 fun main(args: Array<String>) {//5的阶乘&#xff1a;5*4*3*2*1var num 5println(fact(num)) }fun fact(num:Int):Int{if(num 1){return 1}else{…

NestedScrollView默认不在最上方

android.support.v4.widget.NestedScrollView嵌套RecyclerView时&#xff0c;会遇到不显示最顶端内容&#xff0c;需要给NestedScrollView的子控件设置属性 android:descendantFocusability"blocksDescendants"<androidx.core.widget.NestedScrollViewandroid:lay…

ARouter跳转失败

因为module是kotlin语言&#xff0c;所以需要使用kapt依赖&#xff0c;不能使用annotationProcessor&#xff0c;至此问题解决。 // 可以参考 module-kotlin 模块中的写法 apply plugin: kotlin-kaptkapt {arguments {arg("AROUTER_MODULE_NAME", project.getName())…

null是你的朋友,不是一个错误(译Null is your friend, not a mistake)

哎&#xff0c;本来想翻译一波的&#xff0c;搜了下发现有人翻译过了&#xff0c;真是遗憾。 Roman Elizarov原文 简书网友译文 这篇文章是身为Team Lead for Kotlin libraries的Roman Elizarov写的。 不同网上火热的“十亿美元的错误”&#xff0c;作者认为Null是一个不错的发…

Kotlin 为何能比 Java 做得更好?这里有你想要的答案

简评&#xff1a;Pinterest 已经开始用 Kotlin 来进行开发了&#xff0c;并且看样子用得还挺开心。 虽然最近 Kotlin 变得越来越火热&#xff0c;但你仍然可能问自己为什么要用 Kotlin。难道有什么是 Kotlin 能做而 Java 不能做的吗&#xff1f;虽然两者能做的事没有本质的区别…

Kotlin——函数

一、函数头 使用了 fun 关键字来定义函数&#xff1b;函数名称&#xff0c;使用的是驼峰命名法&#xff08;大部分情况下&#xff09;&#xff1b;函数参数&#xff0c;是以 (name: String) 这样的形式传递的&#xff0c;这代表了参数类型为 String 类型&#xff1b;返回值类型…

kotlin 编码规范

Kotlin编码规范 源代码组织 【强制】kotlin源文件命名必须使用首字母大写的驼峰风格 【强制】在实现一个接口时,实现成员的顺序应该与该接口的成员顺序相同 【强制】在类中总是将重载放在一起 【建议】避免在文件名中使用诸如“Util”之类的无意义词语 【建议】在源文件保持合…

Android 开发Java调用Kotlin提示包不存在

在kotlin代码所在module的build.gradle设置 plugins {id org.jetbrains.kotlin.android }

如何实现折起来的效果

如何实现范围裁剪和旋转效果。 日常 我还是希望自己的博客能够存在一些温度&#xff0c;而不是冷冰冰的技术分享&#xff0c;我希望留下专属于我自己的个性&#xff0c;就像鸿洋和郭霖的公众号一样。他们会在自己的博客顶端随便写一下最近的新闻什么的&#xff0c;而我不同&a…

Android14 Beta 5

Beta 5&#xff0c;这是 Android 14 Beta 计划中的最后一次计划更新。这是确保您的应用程序已准备就绪并在非 Beta 用户开始获取 Android 14 之前提供反馈的最后机会。为了使您能够在跨多种外形尺寸的设备上测试您的应用程序&#xff0c;Beta 5 适用于 Pixel Tablet 和 Pixel F…

RecyclerView 数据更新方法 notifyItemChanged/notifyItemInsert/notifyIteRemoved

RecyclerView 数据更新方法 notifyItemChanged/notifyItemInsert/notifyIteRemoved notifyItemInsertednotifyItemRemovednotifyItemChanged notifyItemInserted java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHol…

【kotlin】扩展函数和运算符重载

文章目录扩展函数运算符重载扩展函数 扩展函数表示即使在不修改某个类的源码的情况下&#xff0c;仍然可以打开这个类&#xff0c;向该类添加新的函数 如果想统计字符串中字母的数量&#xff0c;你可能会写出如下函数&#xff1a; object StringUtil {fun letterCount(strin…

Kotlin 操作集合的高阶函数

Kotlin 提供了很多高阶函数用于对集合进行操作和转换。以下是一些常用的高阶函数&#xff1a; forEach{}&#xff1a;对集合中的每个元素执行指定的操作&#xff0c;无返回值。map{}&#xff1a;对集合中的每个元素执行指定的操作&#xff0c;返回操作后的集合filter{}&#x…

单例模式----读书笔记

单例模式—读书笔记 单例模式&#xff0c;顾名思义&#xff0c;就是用来创建一个独一无二的&#xff0c;只能有一个实例的对象的入场券。因为在实际应用中&#xff0c;有些对象我们只需要一个&#xff0c;比如说&#xff0c;线程池、缓存、对话框、注册表等。 当然&#xff0c…

[Android Material Design]组件03 - Palette

文章目录效果图关键代码源码地址效果图 关键代码 kotlin // 将图片转换为bitmap对象 val bitmap BitmapFactory.decodeResource(resources, R.drawable.pg) // 根据bitmap对象生成palette Palette.from(bitmap).generate { palette ->// 获取palette的六种颜色//有活力的…

Kotlin ArrayList类型toTypedArray转换Array

Kotlin ArrayList类型toTypedArray转换Array data class Point(val x: Float, val y: Float)fun array_test(points: ArrayList<Array<Point>>) {points.forEachIndexed { idx, ap ->ap.forEach {print("$idx $it ")}println()} }fun main(args: Arra…

在 Android 上测试 Kotlin 协程

文章目录 官方文档在测试中调用挂起函数TestDispatchersStandardTestDispatcherUnconfinedTestDispatcher 注入测试调度程序设置主调度程序在测试之外创建调度程序创建您自己的 TestScope注入作用域 官方文档 https://developer.android.google.cn/kotlin/coroutines/test?hl…

【Kotlin精简】第4章 函数

1 简介 函数是用来运行代码的载体&#xff0c;可以在一个函数里编写很多行代码&#xff0c;当运行这个函数时&#xff0c;函数中的所有代码会全部运行。 Kotlin中的函数同Java完全面向对象的规则不太一样&#xff0c;在Kotlin的世界里&#xff0c;函数也是准C位的&#xff0c;…

【Kotlin】坦克大战9:大本营绘制

文章目录大本营绘制大本营特性显示爆炸物细节处理子弹对消灭大本营绘制 大本营的位置如图所示&#xff1a; 中间有一只老鹰的图标&#xff0c;左&#xff0c;上&#xff0c;右都有砖墙 新建Camp /*** 大本营*/ class Camp(override val x: Int, override val y: Int) : Vie…

Kotlin 1.2 里程碑版本正式发布,编译器和标准库日趋稳定

原文&#xff1a;Kotlin 1.2 M2 is out 作者&#xff1a;Alexey Sedunov 翻译&#xff1a;顾浩鑫 审校&#xff1a;苏宓&#xff0c;欢迎技术投稿、约稿、给文章纠错&#xff0c;请发送邮件至tumincsdn.net。 近日&#xff0c;JetBrains 开发者 Alexey Sedunov 在其官方博客…

【kotlin】List、Map、集合的函数式API

List 声明一个list并打印 var lists listOf("化学","物理","数学")for(list in lists){println(list)}打印list下标和值 var lists listOf("化学","物理","数学")for((i,e) in lists.withIndex()){println(&qu…

kotlin - ViewBinding

前言 为什么用ViewBinding&#xff0c;而不用findViewById()&#xff0c;这个有很多优秀的博主都做了讲解&#xff0c;就不再列出了。 可参考下列博主的文章&#xff1a; kotlin ViewBinding的使用 文章里也给出了如何在gradle中做出相应的配置。 &#xff08;我建议先看这位博…

一篇文章搞定《WebView的优化及封装》

一篇文章搞定《WebView的优化及封装》 前言WebView的过程分析确定优化方案一、预加载&#xff0c;复用缓冲池&#xff08;初始化优化&#xff09;优化的解析说明具体的实现 二、预置模版&#xff08;请求、渲染优化&#xff09;优化的解析说明具体的实现1、离线包2、预获取数据…

Android描边外框stroke边线、rotate旋转、circle圆形图的简洁通用方案,基于Glide与ShapeableImageView,Kotlin

Android描边外框stroke边线、rotate旋转、circle圆形图的简洁通用方案&#xff0c;基于Glide与ShapeableImageView&#xff0c;Kotlin 利用ShapeableImageView专门处理圆形和外框边线的特性&#xff0c;通过Glide加载图片装载到ShapeableImageView。注意&#xff0c;因为要描边…

Kotlin学习之函数

原文链接 Understanding Kotlin Functions 函数对于编程语言来说是极其重要的一个组成部分&#xff0c;函数可以视为是程序的执行&#xff0c;是真正活的代码&#xff0c;为啥呢&#xff1f;因为运行的时候你必须要执行一个函数&#xff0c;一般从主函数入口&#xff0c;开始一…

Android 开发之核心技术点——性能优化篇(带面试题)~

性能优化对于Android开发的重要性非常大。随着Android设备的不断升级&#xff0c;用户对应用的要求也越来越高&#xff0c;包括应用的运行速度、响应速度、流畅度等方面。如果应用的性能不能满足用户的需求&#xff0c;很可能会导致用户流失、差评以及应用被卸载等情况。 另外…

Android Room数据库升级Migration解决方案

一、介绍 Android Room 是 Android 官方提供的一个轻量级数据库框架&#xff0c;用于在 Android 应用程序中管理数据持久性。它简化了数据库访问&#xff0c;提供了更安全、更快速的数据存储方式&#xff0c;并使得数据操作更加便捷。 二、Room的特点(八股文可以参考) 以下是…

Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)

Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder&#xff0c;Kotlin&#xff08;2&#xff09; import android.graphics.Canvas import android.graphics.Point import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.util…

【Kotlin】高阶函数

文章目录函数式编程举个栗子&#xff1a;forEach传统写法的缺点高阶函数maxBy、minByfiltermapanycountfindgroupByDSL扩展函数函数式编程 举个栗子&#xff1a;forEach var print fun (name:String):Unit{println(name) }fun main(args: Array<String>) {var names l…

feign自定义ErrorDecoder 错误时返回统一的错误对象

曾经的接口开发&#xff0c;大家都习惯返回200状态码&#xff0c;然后在响应体中使用以下形式 {code:200data:{name:zhangsanage:18}msg:msg }这时候feign的接收对象可以使用该对象。 现在接口都追求rest风格&#xff0c;接口在正常流程时会返回请求的数据&#xff0c;错误时…

Kotlin中使用ViewBinding绑定控件并添加点击事件

文章目录 1、加入依赖2、与控件进行绑定在 Activity 中使用视图绑定 3、监听控件 1、加入依赖 在app 的 build.gradle 文件下的 android 标签下加入下面的代码 可以在Java / Kotlin语言中均可以使用&#xff0c;配置&#xff1a; android {.......buildFeatures {viewBinding…

Kotlin 扩展

Kotlin 可以对一个类的属性和方法进行扩展&#xff0c;且不需要继承或使用 Decorator 模式。 扩展是一种静态行为&#xff0c;对被扩展的类代码本身不会造成任何影响。 扩展函数 扩展函数可以在已有类中添加新的方法&#xff0c;不会对原类做修改&#xff0c;扩展函数定义形…

Class ‘com.xxxx.Log‘ was compiled with an incompatible version of Kotlin.

Class com.xxxx.Log was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1. 原因&#xff1a;在build.gradle中使用了1.5.30版本的kotlin插件&#xff0c;与第三方库中的kotlin插件版本不同&#…

使用Kotlin与Unirest库抓取音频文件的技术实践

目录 摘要 一、Kotlin与Unirest库概述 二、使用Kotlin和Unirest抓取音频文件 1、添加Unirest依赖 2、发送HTTP请求获取音频文件 3、保存音频文件 三、完整代码示例 四、注意事项 结论 摘要 本文详细阐述了如何使用Kotlin编程语言与Unirest库抓取网络上的音频文件。首…

Error:Kotlin: Module was compiled with an incompatible version of Kotlin

后端idea项目运行时出现错误&#xff1a;Error:Kotlin: Module was compiled with an incompatible version of Kotlin&#xff0c;原因是项目中用的Kolin和idea中内置的Kotlin版本不一致。试过Invalidate Caches / Restart&#xff08;清缓存重启&#xff09;以及clean-->c…

安卓毕业设计各种app项目,Android毕设设计,Android课程设计,毕业论文

作为一位从事软件开发多年的专业人士&#xff0c;您积累了丰富的经验和技能&#xff0c;解决了许多不同类型的问题。除了开发原创项目&#xff0c;您还愿意分享您的知识&#xff0c;指导实习生和在校生。这种乐于助人的行为对于行业的发展和新一代软件开发者的成长都起着积极的…

Android Fragment 要你何用?2.0版本

作者&#xff1a;小鱼人爱编程 1. 老生常谈&#xff1a;为什么需要Fragment? 先看Activity、Fragment、View三者的关系&#xff1a; Activity 拥有生命周期&#xff0c;但是需要和AMS通信(跨进程)&#xff0c;比较臃肿。 View 不需要和AMS通信&#xff0c;但没有生命周期&…

Kotlin~Bridge桥接模式

概念 抽象和现实之间搭建桥梁&#xff0c;分离实现和抽象。 抽象&#xff08;What&#xff09;实现&#xff08;How&#xff09;用户可见系统正常工作的底层代码产品付款方式定义数据类型的类。处理数据存储和检索的类 角色介绍 Abstraction&#xff1a;抽象 定义抽象接口&…

android使用Tablayout+viewpager2

android使用Tablayoutviewpager2关于效果&#xff08;垂直滑动切换&#xff09;添加引用与布局文件修改布局对应的实例代码关于 公司半新项目开发&#xff0c;最近也在学习kotlin语言&#xff0c;所以项目是java和kotlin混合开发&#xff0c;所以在build文件上使用了apply plug…

Android使用MQTT订阅及发布消息((一)初步了解Mqtt以及实现Android操作mqtt服务)

Android使用MQTT订阅及发布消息&#xff08;&#xff08;一&#xff09;初步了解Mqtt以及实现Android操作mqtt服务&#xff09;关于MQTT介绍MQTT协议实现方式MQTT服务器MQTT协议中的订阅、主题、会话MQTT协议中的方法MQTT服务质量 (QoS)MQTT服务端&#xff08;Broker&#xff0…

【kotlin】Eclipse和kotlin插件安装

文章目录下载安装最新版本下载其他版本下载kotlin插件安装第一个Kotlin程序对刚才代码的解释下载安装 最新版本下载 Eclipse官网下载地址 如果直接点击Download 64 bit&#xff0c;会下载到一个类似于下载器的exe&#xff0c;在安装时不能选择镜像&#xff0c;安装会非常慢&…

LitePal在Kotlin中使用的一个小问题

Android App需要使用本地数据库&#xff0c;以前都是自己用android Sqlite原生代码实现。 前不久看同事使用LitePal库&#xff0c;发现挺好用的&#xff0c;就直接拿过来用&#xff0c;懒得自己再写代码了。 然后使用LitePal.where方法查询时&#xff0c;抛出异常&#xff1a…

Kotlin 之 协程(二)启动取消协程

协程的构建器 launch和async构建器都用来启动新协程 launch&#xff0c;返回一个job并且不附带任何结果值 async&#xff0c;返回一个Deferred&#xff0c;Deferred也是一个job&#xff0c;可以使用.await()在一个延期的值上得到它的最终结果 //等待一个作业:join与awaitpriva…

【第三阶段】kotlin语言中的==与===比较操作

"" 内容的比较 相当于Java的equals() "" 引用的比较 1. fun main() {val str1"kotlin"val str2"kotlin"//java写法println(str1.equals(str2))//kt写法println(str1str2)//结论 str1.equals(str2)等价于str1str2 }执行结果 2. fu…

Kotlin学习之旅(D3)-类与继承

Day 3 Kotlin学习之旅-第三天 今天的主题是&#xff1a;类与继承 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 今日目标 今天空闲的时候 baidu一下&#xff0c;发现简书&#xff0c;掘金上有很多Kotlin学习总结&#xff0c;但是基本上都…

最新Android Kotlin开发指南,从入门到实战,一战通关

想必在读此文的各位对Koltin并不陌生&#xff0c;其是一门可以运行在Java虚拟机、Android、浏览器上的静态语言&#xff0c;具有简洁、安全、务实等特征&#xff0c;最主要的是其专注于与Java代码的互操作性&#xff0c;可与Java 100%兼容。 Kotlin可以很好地和所有现存的Java…

系统Android开发工程师进阶指南,三个月学完,稳拿大厂offer

Android工程师想要成为架构师或想突破20~30K薪资范畴&#xff0c;拓宽技术的深度与广度是必经之路。我们千万不要局限在编码&#xff0c;业务&#xff0c;要会选型、扩展&#xff0c;提升编程思维。此外&#xff0c;良好的职业规划与学习习惯也很重要&#xff0c;但是最重要的还…

Kotlin 协程 知识点

Android 上的 Kotlin 协程 | Android Developers (google.cn) 官方网址 1.什么是协程&#xff1f; 我觉得协程就是kotlin中一种优雅的实现异步请求 协程&#xff08;Coroutines&#xff09;是一种轻量级的并发编程概念&#xff0c;旨在简化异步编程和并发任务的处理。它是…

Android使用kotlin开发入门 (学习一)

Android使用kotlin开发入门 &#xff08;学习一&#xff09; 关于效果图新建一个Android项目修改Activity_main.xml文件修改MainActivity.kt文件关于 南京又是持续下雨的季节&#xff0c;下午在学习郭霖老师和鸿洋老师的博客文章的时候&#xff0c;看到了郭老师讲解的Jetpack新…

Android 压缩字符串 方便二维码传输

客户端中通过二维码传输数据的情况较多&#xff0c;但是直接传输可能因为数据过长导致二维码生成的太密不好扫描。 可以使用GZIP把字符串缩短进行传输&#xff0c;下面直接看代码 public class GZipUtils {public static String compress(String str) {if (str null || str.…

第2章 探究新语言,快速入门Kotlin编程 2.7空指针检查

2.7.1可空类型系统 这一部分讲的是变量如果可空则后面加&#xff1f;相应的函数里也要有对空指针处理的代码&#xff0c; 所谓空指针&#xff0c;我的感觉就是一种不可描述的状态&#xff0c;就像人一样&#xff0c;生下来要么男&#xff0c;要么女&#xff0c;但在怀孕前就是空…

kotlin 基本语法

const val INFO "ZZZ is Success Result" fun main(){ var name: String? "zzz" name null name?.capitalize() //?问号的意思是如果name是null ,后面的方法不执行&#xff0c;如果name不是null&#xff0c;后面方法执行 var name: String? &q…

Kotlin笔记6-Object Expressions and Declarations 对象表达式和声明

目录 1. Object Expressions 对象表达式 2. Object declarations--Kotlin中的单例模式 3. Companion Objects 伴生对象 1. Object Expressions 对象表达式 在Java中&#xff0c;有时候需创建一个已有的类的对象&#xff0c;但是需要对该类做一点修改&#xff0c;又不希望明确…

LiveData与Rxjava结合

项目之前使用的是MVP结构&#xff0c;现在想改成MVVM。原先的项目里使用的是Rxjava来处理网络请求。 ViewModel中常使用LiveData来封装数据 学习MVVM阶段想轻量的改动&#xff0c;保持原有的Rxjava又用上LiveData 在保持原先MVP的Model层代码不变的情况下 在返回的Observable…

Kotlin抛出UndeclaredThrowableException而不是原始异常

在Kotlin中你可能会遇到这种情况&#xff0c;莫名其妙catch到一个UndeclaredThrowableException&#xff0c;可是自己抛出的明明是另一个异常&#xff01; 如果想要拿到原来的异常&#xff0c;这里先介绍三种解决办法&#xff0c;之后详解原理。 获取原始异常的三种方式 第一…

安卓开发_广播机制_发送自定义广播

安卓开发_广播机制_发送自定义广播 发送标准广播发送有序广播参考 发送标准广播 新建一个MyBroadcastReceiver用于接收广播, 代码如下: class MyBroadcastReceiver : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent) {Toast.makeText(contex…

kotlin 单例

1.使用伴生对象&#xff08;companion object&#xff09;: class Singleton private constructor() { companion object { private val instance: Singleton by lazy { Singleton() } fun getInstance(): Singleton { return instance } } /…

重学Kotlin(六) 函数

函数、高阶函数、Lambda、内联函数 函数 普通函数用法 //声明 //b:Int 10代表默认值 fun double(x: Int,b:Int 10): Int {return 2 * x } //普通调用,入参中的22会覆盖函数用的默认值10 val result double(1,22) //具名调用,指定入参名称再赋值&#xff0c;不赋值的使用原…

CoroutineScope Dispatchers.IO异步操作async返回函数,Kotlin

CoroutineScope Dispatchers.IO异步操作async返回函数&#xff0c;Kotlin import kotlinx.coroutines.*fun myFun(a: Int, b: Int, retFun: (sum: Int) -> Unit) {println("分支myFun开始... ${System.currentTimeMillis()}")val task CoroutineScope(Dispatcher…

kotlin协程flow retry retryWhen(2)

kotlin协程flow retry retryWhen&#xff08;2&#xff09; 一、retry import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {runBlocking {(1..5).asFlow().onEach {if (it 3) {println("-")throw Runti…

【Kotlin】加密解密1:凯撒加密

文章目录ASCII举个栗子&#xff1a;获取a的ascii举个栗子&#xff1a;获取多个字符的ascii凯撒加密算法举个栗子&#xff1a;A->B加密字符串解密字符串ASCII 新建AsciiDemo.kt 举个栗子&#xff1a;获取a的ascii fun main(args:Array<String>) {//获取字符ascii编码…

安卓 车轮视图 WheelView kotlin

安卓 车轮视图 WheelView kotlin 前言一、代码解析1.初始化2.初始化数据3.onMeasure4.onDraw5.onTouchEvent6.其他 6.ItemObject二、完整代码总结 前言 有个需求涉及到类似这个视图&#xff0c;于是在网上找了个轮子&#xff0c;自己改吧改吧用&#xff0c;拿来主义当然后&…

ARouter使用源码小结[版本1.5.2]

简介 官方介绍&#xff1a;一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 Git项目地址&#xff1a;https://github.com/alibaba/ARouter 官方中文ARouter详细使用教程&#xff1a;https://github.com/alibaba/ARouter/blob/master/README…

创建React Native的第一个hello world工程

创建React Native的第一个hello world工程 需要安装好node、npm环境 如果之前没有安装过react-native-cli脚手架的&#xff0c;可以按照下述步骤直接安装。如果已经安装过的&#xff0c;但是在使用这个脚手架初始化工程的时候遇到下述报错的话 cli.init(root, projectname);…

Android使用Kotlin代理实现Bundle数据传递封装

Android使用Kotlin代理实现Bundle数据传递封装 前言一、封装思路二、实现步骤1.创建数据传递类&#xff0c;此类作为核心2.fragment拓展&#xff0c;这里只讲fragment毕竟activity的跳转就涉及到路由框架了3.代理3.1. activity代理&#xff0c;这个部分是独立的&#xff0c;只要…

Kotlin 操作符重载

Kotlin 操作符重载 Kotlin 通过 operator 关键字 修饰 操作符函数&#xff0c;来实现 操作符重载。 操作&#xff0c;对应 inc 函数&#xff0c;-- 操作符&#xff0c;对应 dec 函数 举例&#xff0c;Point 类 实现 操作符重载&#xff1a; class Point {operator fun inc()…

初识Kotlin—1、基础简介

吐槽&#xff1a;由于对IDEA开发工具不熟悉&#xff0c;所以光配置环境就花了大半天的时间 Kotlin声明变量Kotlin方法简介Kotlin List使用以及各种循环遍历Kotlin 调用 java Kotlin声明变量 局部变量和全局变量不同&#xff0c;全局变量必须赋初值 var a 0;//赋值后自动识别…

Android使用google Firebase Cloud Messaging的云推送发送通知

Android使用google Firebase Cloud Messaging的云推送发送通知关于关于 首先是Firebase的官网地址&#xff0c;然后我们使用google账号登陆并开始使用:   新建一个项目&#xff0c;这里我用我之前的测试的项目了&#xff0c;然后在项目里面点击添加应用&#xff0c;并选择对…

Kotlin 协程基础 | Kotlin 入门教程指南

阻塞与非阻塞 runBlocking delay是非阻塞的&#xff0c;Thread.sleep是阻塞的。显式使用 runBlocking 协程构建器来阻塞。 import kotlinx.coroutines.*fun main() {GlobalScope.launch { // 在后台启动一个新的协程并继续delay(200)"rustfisher.com".forEach {pr…

android App外包开发技术难点

在开发android App时需要注意一些技术问题&#xff0c;包括设备兼容、性能优化、安全问题及用户体验&#xff0c;这些问题往往是android App的通用问题&#xff0c;每个android App的项目都有这些问题&#xff0c;今天和大家分享一下这方面的知识&#xff0c;希望对大家有所帮助…

《Kotlin核心编程》笔记:函数和Lambda表达式

高阶函数和lambda表达式 函数式语言⼀个典型的特征就在于函数是头等公民——我们不仅可以像类⼀样在顶层直接定义⼀个函数&#xff0c;也可以在⼀个函数内部定义⼀个局部函数&#xff0c;如下所示&#xff1a;所谓的高阶函数&#xff0c;你可以把它理解成“ 以其他函数作为参数…

Android实现保存日志到内部存储及分享日志文件功能

Android实现保存日志到内部存储及分享日志文件功能关于效果图实现编写日志文件帮助object主界面使用补充补充二关于 本篇主要实现基于Android12手机实现保存日志文件到应用专属文件夹内及分享日志文件功能&#xff08;使用系统自带&#xff09; 效果图 实现 首先是google官网的…

Jetpack 之 Lifecycle

Lifecycle简介 Lifecycle是一个生命周期感知组件&#xff0c;一般用来响应Activity、Fragment等组件的生命周期变化&#xff0c;并将变化通知到已注册的观察者。有助于更好地组织代码&#xff0c;让代码逻辑符合生命周期规范&#xff0c;减少内存泄漏&#xff0c;增强稳定性。…

Android kotlin build.gradle.kts配置

1. 添加 maven 仓库 1. 1. settings配置 1. 1.1. settings.gradle repositories {maven {url https://maven.aliyun.com/repository/public/}mavenCentral() }1. 1.2. settings.gradle.kts repositories {maven {setUrl("https://maven.aliyun.com/repository/public/…

kotlin 基础编码规范

Kotlin基础编码规范 源代码组织 目录结构 在纯 Kotlin 项目中,推荐的目录结构遵循省略了公共根包的包结构。例如,如果项目中的所有代码都位于 org.example.kotlin 包及其子包中,那么 org.example.kotlin 包的文件应该直接放在源代码根目录下,而 org.example.kotlin.network…

Jetpack 之 WorkManager

WorkManager 引入 官方库 dependencies {def work_version "2.7.1"// (Java only)implementation "androidx.work:work-runtime:$work_version"// Kotlin coroutinesimplementation "androidx.work:work-runtime-ktx:$work_version"// option…

解决 android Cannot access ‘<init>‘: it is private in

最近要在2个非直接依赖module使用单例&#xff0c;有一种注入依赖的方式可以&#xff0c;但是报了如下错误&#xff1a; Cannot access <init>: it is private in 经过查阅资料&#xff0c;原来是依赖的单例类的构造函数不能使用private&#xff0c;这里做个记录&#…

kotlin 解决构造函数兼容性问题

data class Person(private val head: String,val hand: String ) {} val p Person("head", "hand")Log.d("Alex", "Person $p") 打印结果&#xff1a; 2023-06-11 22:30:54.764 21840-21840 Alex com.example…

Android Compose——ScrollableTabRow和LazyColumn同步滑动

Android Compose——ScrollableTabRow和LazyColumn同步滑动 效果数据实现TabList列表 如何同步实现&#xff1f;监听列表滑动变化计算列表子项索引位置Tab滑动 注 效果 Demo简述&#xff1a;此Demo所实现的效果为当滑动List列表时&#xff0c;所对应的Tab相对应进行滑动切换&a…

Kotlin中的函数定义

在 Kotlin 中&#xff0c;函数是一种重要的语言特性&#xff0c;它用于封装可重复使用的代码块。在本篇博客中&#xff0c;我们将介绍 Kotlin 函数的定义方式&#xff0c;并提供示例代码演示不同类型的函数。 首先&#xff0c;让我们来看一下函数的基本组成部分&#xff1a; …

Kotlin | 在for、forEach循环中正确的使用break、continue

文章目录 for循环中使用break、continueLabel标签forEach中如何退出循环资料 Kotlin 有三种结构化跳转表达式&#xff1a; return&#xff1a;默认从最直接包围它的函数或者匿名函数返回。break&#xff1a;终止最直接包围它的循环。continue&#xff1a;继续下一次最直接包围…

我在“Now In Android”中学到的 9 件事

我在“Now In Android”中学到的 9 件事 Now in Android是一款功能齐全的 Android 应用程序&#xff0c;完全使用 Kotlin 和 Jetpack Compose 构建。它遵循 Android 设计和开发最佳实践&#xff0c;旨在为开发人员提供有用的参考。 https://github.com/android/nowinandroid UI…

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域并放大,Kotlin(3)

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域并放大&#xff0c;Kotlin&#xff08;3&#xff09; 在文章2 Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域&#xff0c;Kotlin&#xff08;2&#xff09;-CSDN博客 的基础上&…

Android---Kotlin 学习008

定义类 示例&#xff1a;定义一个 Player 类 class Player {var name "jack" } 通过 Show Kotlin Bytecode&#xff08;按两下 Shift 键&#xff09;&#xff0c;然后点击 Compile 示例2&#xff1a;创建 Player 对象&#xff0c;并给 name 属性赋值 class Pla…

优雅的使用Kotlin

优雅的使用Kotlin 这篇文章并不会从零开始来教你怎么使用Kotlin&#xff0c;Kotlin对于笔者来说也是一个新概念&#xff0c;由于大势所趋&#xff08;Google所有的官方Demo都开始用Kotlin&#xff0c;各大第三方Library也开始适配Kotlin&#xff09;&#xff0c;所以不会Kolti…

Kotlin 不可变数组和可变数组

在 Kotlin 中&#xff0c;可以使用数组来存储一组相同类型的元素。Kotlin 提供了两种类型的数组&#xff1a;不可变数组和可变数组。 不可变数组&#xff08;Immutable Arrays&#xff09; 不可变数组的大小&#xff08;元素数量&#xff09;在创建后就确定&#xff0c;并且不…

Koin入门1-快速上手

概念 Koin 是一款轻量级的依赖注入框架&#xff0c;它无代理&#xff0c;无代码生成&#xff0c;无反射 大家可以自行查阅官方英文教程&#xff1a;https://insert-koin.io/docs/quickstart/android-compose Koin 简单的来说可以包含以下四个模块&#xff1a; 名称作用entity实…

kotlin的一些标准函数

文章目录1. this 上下文withrunapply2. it 上下文letalso3. 其他好用的函数mapfilterreduceflatMapkotlin的标准函数有 run&#xff0c;let&#xff0c;with 等等&#xff0c;平时用的时候没有太在意他们之间的差异&#xff0c;现在来总结对比一下。 将他们分成 this 上下文和 …

Android开发基础(二)

Android开发基础&#xff08;二&#xff09; 上篇主要描述了Android系统架构&#xff0c;代码是通过Java表示的&#xff1b; 本篇将从介绍Android组件去理解Android开发&#xff0c;代码将对Java和Kotlin进行对比。 Android组件 Android应用程序由一些零散的有联系的组件组成…

Android开发-Android项目Jenkins自动化打包流程搭建与配置

Android 项目 Jenkins 自动化打包流程搭建与配置 1. 前言2. Jenkins 下载3. 配置电脑的 JDK 环境4. Jenkins 安装和设置5. Jenkins 设置 Android 项目自动打包流程 1. 前言 由于之前公司的 Android 项目需要 APK 自动打包的功能&#xff0c;所以需要搭建 Jenkins 自动化打包的…

Android修行手册 - 使用ViewPager2实现画廊效果

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

备战金三银四,没有这套逆天的Android面经怎么行?

还剩下两个月就到了金三银四&#xff0c;一般来说&#xff0c;春招的含金量明显是高于秋招的。 那么如何准备即将到来的面试热潮呢&#xff1f;运筹帷幄之后&#xff0c;决胜千里之外&#xff01; 坚决不打毫无准备的仗&#xff1a;不论是笔试还是面试都是有章可循的&#xf…

kotlin中Activity跳转

问题描述&#xff1a; override fun onClick(widget: View) {val intent Intent(AActivity.this, BActivity::class.java)startActivity(intent) }上面这个在kotlin中会报以下错&#xff1a; None of the following functions can be called with the arguments supplied. &…

Android kotlin lateinit var 判断某个变量是否初始化了

protected lateinit var mTitle: String上面mTitle这个变量表示不为null&#xff0c;但是需要延迟初始化&#xff0c;如果在使用这个变量时没有初始化则会抛出异常&#xff1b; 在有些时候我们可能需要判断它有没有初始化&#xff0c;如果没有初始化则需要另外给它赋值&#xf…

Jetpack 之 ViewModel和LiveData

ViewModel引入见 Lifecycle官方库 LiveData引入见 Lifecycle官方库 Kotlin 扩展模块支持使用多个 AndroidX 依赖项。这些模块的名称后附加了后缀“-ktx”。例如&#xff1a; implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"会变为 …

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2)

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜&#xff0c;Kotlin&#xff08;2&#xff09; 在 Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜&#xff0c;Kotlin&#xff08;1&#xff09; Android Matrix剪切clipPath缩放scale图片po…

Kotlin第5篇项目实战1【Kotlin】开发PetStore宠物商店项目-关东升-专题视频课程

Kotlin第5篇项目实战1【Kotlin】开发PetStore宠物商店项目—387人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第五部分项目实战1&#xff0c;主要讲解了PetStore宠物商店开发过程课程收益读者以及观看群是零基础小白 通过本视频的学习能够…

一文搞懂 LiveData 粘性事件 和 数据倒灌

文章目录 前言LiveData使用分析粘性事件分析数据倒灌总结 一、前言 在使用LiveData的时候&#xff0c;会有疑问&#xff0c;LiveData 是怎么做到先发送再注册&#xff0c;依然能够接收到事件的。还有就是会碰到切换屏幕&#xff0c;导致重复的操作&#xff0c;也就是所谓的数…

Android hook方式抓包

前言 在跟大佬学习的时候发现另一种抓包方式&#xff0c;采用frida hook socket 字节流即可&#xff0c;哪里还需要管什么证书绑定&#xff0c;双向认证&#xff1f; HTTP抓包原理 样本案例 class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanc…

Kotlin新手教程一(Kotlin简介及环境搭建)

目录一、 什么是Kotlin&#xff1f;二、为什么要使用Kotlin&#xff1f;三、使用IntelliJ IDEA搭建Kotlin四、Kotlin使用命令行编译一、 什么是Kotlin&#xff1f; Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言&#xff0c;它也可以被编译成为 JavaScript 源代码&…

Kotlin新手教程八(泛型)

一、泛型 1.泛型类的创建与实例化 kotlin中泛型类的创建与实例化与Java中相似&#xff1a; class A<T>(t:T){var valuet }fun main() {var a:A<Int> A<Int>(11) }Kotlin中存在类型推断&#xff0c;所以创建实例可以写成&#xff1a; var aA(11)2.泛型约束…

Kotlin~Singleton单例模式

概念 保证一个类只有一个实例&#xff0c;并为该实例提供一个全局唯一的访问节点。 饿汉式 描述&#xff1a; 比较常用&#xff0c;实例在类加载初始化是就创建好。 object SingletonHungry {fun test() {println("SingletonHungry")} }借助object声明&#xff…

基于ASM的组件化框架

背景 我们在开发一个应用时&#xff0c;会随着时间、人员和需求的增多&#xff0c;我们的代码也会以一个非常快的速度在迭代&#xff0c;同时由于每个人的开发水平不一样&#xff0c;就会有各种各样的问题&#xff0c;如果一直在一个project中开发&#xff0c;很快演变成一个高…

Jetpack Compose之对话框和进度条

概述 对话框和进度条其实并无多大联系&#xff0c;放在一起写是因为两者的内容都不多&#xff0c;所以凑到一起&#xff0c;对话框是我们平时开发使用得比较多的组件&#xff0c;像隐私授权&#xff0c;用户点击删除时给用户提示这是一个危险操作等&#xff0c;进度条的使用频…

Android Jetpack Compose —— 控件

上一篇文章已经介绍了Android Jetpack Compose&#xff0c;相信都知道了compose是以kotlin为主&#xff0c;在学习前可以先了解一些compose控件。 一、Compose控件分类 二、常用控件说明 一、Compose控件分类&#xff0c;主要分以下几个类 容器控件&#xff1a;如Box、Row、C…

Kotlin 中的高阶函数及其应用

前言 前段时间一直在面试&#xff0c;某次面试&#xff0c;面试官看着我的简历说&#xff1a;“看你写的你很了解 kotlin 哦&#xff1f;那你说一说&#xff0c;为什么 kotlin 可以将函数作为参数和返回值&#xff0c;而 java 不行&#xff1f;” 我&#xff1a;“……”。 …

Kotlin介绍,开发环境搭建,语法,高级特性,编程技巧

Kotlin是一种基于JVM的静态类型编程语言&#xff0c;由JetBrains开发。它可以编译成Java字节码&#xff0c;也可以编译成JavaScript源代码。Kotlin旨在通过更简洁、更安全、更易于维护的代码来提高开发效率。本文将介绍Kotlin的开发环境搭建、语法、高级特性和编程技巧。 一、…

Kotlin 点击空白位置隐藏软键盘

一:实现点击空白处,软键盘消失事件 override fun dispatchTouchEvent(motionEvent: MotionEvent): Boolean {if (motionEvent.action == MotionEvent.ACTION_DOWN) {// 获得当前得到焦点的View,一般情况下就是EditText(特殊情况就是轨迹求或者实体案件会移动焦点)val v = …

Kotlin学习之旅(D11)-第一个App之项目介绍

Kotlin学习之旅第十一天 接下来这三天&#xff0c;我们会用Kotlin编写一个App 今天主要是项目介绍 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D…

Kotlin学习之旅(D4)-函数与Lambda表达式

Kotlin学习之旅-第四天 今天的主题是&#xff1a;函数与Lambda表达式 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 函数 Kotlin里面的函数其实在之前的学习中已经见过了&#xff0c;通过 fun 关键字来标识…

使用 Kotlin 的 Opt-in (选择加入)功能注解API提示当前非稳定API

前言 之前在给公司项目封装库的时候&#xff0c;领导告诉我封装的漂亮一点&#xff0c;等以后公司发展起来了可能需要把这个库提供给第三方接入使用。 此时&#xff0c;就有这么一个问题&#xff1a;某些功能函数使用条件比较苛刻&#xff0c;直接使用可能会出现意想不到的后…

Android工程师们,还在纠结要不要转Kotlin?

概述 Kotlin是运行在JVM上的一门新兴语言&#xff0c;它的年龄只有十来岁&#xff0c;2017年&#xff0c;google 官方推荐使用kotlin作为android开发首选语言&#xff0c;至此已逾5年&#xff0c;这5年kotlin借助android的东风迅速发展&#xff0c;可谓一日千里&#xff0c;目…

从Kotlin中return@forEach了个寂寞

点击上方蓝字关注我&#xff0c;知识会给你力量 今天在Review&#xff08;copy&#xff09;同事代码的时候&#xff0c;发现了一个问题&#xff0c;想到很久之前&#xff0c;自己也遇到过这个问题&#xff0c;那么就来看下吧。首先&#xff0c;我们抽取最小复现代码。 (1..7).f…

Kotlin和Java的区别,全面解读超详细,114个知识点解读

特征KotlinJava类型推断支持不支持空安全支持不支持扩展函数支持不支持Lambda 表达式支持不支持函数式编程支持支持数据类支持不支持协程支持不支持扩展属性支持不支持集合操作支持支持多平台开发支持不支持可以使用 Java 库支持支持安全性更高较低性能更快较慢代码量更少更多学…

代码解析工具cpg

cpg 是一个跨语言代码属性图解析工具&#xff0c;它目前支持C/C (C17), Java (Java 13)并且对Go, LLVM, python, TypeScript也有支持&#xff0c;在这个项目的根目录下: cpg-core为cpg解析模块的核心功能&#xff0c;主要包括将代码解析为图&#xff0c;core模块只包括对C/C/Ja…

DataStore快速上手1-preference

DataStore 概念 DataStore 可以存储两种类型的数据&#xff0c;一种是 preference&#xff0c;一种是 protobuf 每个进程在同一时间内仅能打开一个 DataStore 实例&#xff08;或者通过其他管理手段来实现多个 DataStore 交替使用&#xff09; 一个 DataStore 可以视为一张数…

JetpackCompose从入门到实战学习笔记8—ConstraintLayout的简单使用

JetpackCompose从入门到实战学习笔记8—ConstraintLayout的简单使用 1.简介&#xff1a; Compose 中的 ConstraintLayout ConstraintLayout 是一种布局&#xff0c;让您可以相对于屏幕上的其他可组合项来放置可组合项。它是一种实用的替代方案&#xff0c;可代替使用多个已嵌…

关于安卓10以上连接wifi无法联网的问题

连接方式 在Android10之前应用内连接wifi是调用addNetwork和enableNetwork。但在Android10以后以上方法不会生效。 在Android10及以上&#xff0c;官方提供了以下应用内连接wifi的方式&#xff1a;文档 val specifier WifiNetworkSpecifier.Builder().setSsidPattern(Patte…

Kotlin对象和单例模式:探索这种强大设计模式的好处

Kotlin对象和单例模式&#xff1a;探索这种强大设计模式的好处 在Kotlin中&#xff0c;使用关键字"object"来定义一个单例对象。所谓单例对象&#xff0c;就是在整个应用程序中只有一个实例存在。简单来说&#xff0c;就好像只有一个蜘蛛侠一样&#xff0c;不可能同时…

ViewBinding使用入门

ViewBinding 参考资料: 新技术 ViewBinding 最佳实践 & 原理击穿 更多 ViewBinding 的封装思路 1. kotlin-android-extensions(KAE) 的问题 根据Google官方的说法, KAE存在以下问题: 污染全局命名空间不能暴露可空性信息仅支持Kotlin代码 kotlin在1.4.20中 开始废弃这…

[Android Material Design]组件17 - RecyclerView

文章目录效果图关键代码源码地址效果图 RecyclerView是谷歌推出的融合了ListView和GridView且功能更加强大组件&#xff0c;可以在有限的屏幕上显示更多内容&#xff0c;支持三种不同布局&#xff1a;线性LinearLayoutManager、网格GridLayoutManager、瀑布流StaggeredGridLayo…

kotlin之面向对象

Kotlin之面向对象 类 定义&#xff1a;使用class关键字进行定义。 class Dog {}在kotlin类中&#xff0c;除非显式地声明延迟初始化&#xff0c;否则就得指定属性的默认值。在kotlin类中&#xff0c;成员默认是全局可见&#xff0c;而Java中&#xff0c;需要使用public才能达…

[Android Material Design]组件16 - NavigationView

文章目录效果图关键代码源码地址效果图 NavigationView提供了侧边栏导航&#xff0c;一般在HeaderLayout使用背景图片&#xff0c;在menu部分使用分组的菜单&#xff0c;提高布局美感。 关键代码 class MainActivity : AppCompatActivity() {private var mDrawerToggle: Acti…

使用Android架构模板

使用Android架构模板 项目介绍 为了方便开发者引入最新的Android架构组建进行开发&#xff0c;Google官方给我们引入了一个架构模板&#xff0c;方便我们快速进入开发。 github地址&#xff1a; https://github.com/android/architecture-templates 该模板遵循官方架构指南 …

Nacos服务注册之NacosWatch

又是美好的一天呀~ 个人博客地址&#xff1a; huanghong.top 往下看看~定时事件发布注册监听器触发监听器总结NacosWatch用于定时与Nacos服务端数据同步当前服务的metadata数据并定时发布心跳事件。 定时事件发布 默认的taskScheduler只是定时发一个HeartbeatEvent事件&#…

Jetpack Compose —— ProgressBar

Jetpack Compose的ProgressBar是一种用户界面组件&#xff0c;用于向用户展示长时间操作的当前进度。ProgressBar可以有两种形式&#xff1a;线性和环形&#xff0c;这两种形式都可以通过Jetpack Compose轻松实现。 注意&#xff1a;从Jetpack Compose 1.0版本开始&#xff0c…

[Android Material Design]组件14 - BottomSheet

文章目录效果图关键代码源码地址效果图 点击按钮时&#xff0c;创建BottomSheetDialogFragment实例&#xff0c;并将该fragment显示出来。 关键代码 class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedI…

Kotlin JetPack Room 简单使用

Room的使用很简单&#xff0c;主要是一堆注解&#xff0c;以及理解下协程。 1.实体类 Entity(tableName "cipher") data class Cipher(ColumnInfo(name "name", defaultValue "user")var userName: String,ColumnInfovar password: String, …

Java 和 Kotlin

Java 与 Kotlin 比较表以下是对照表&#xff1a;比较的基础JavaKotlin空值安全在 Java 中&#xff0c;NullPointerExceptions 给开发人员带来了巨大的挫败感。它允许用户将 null 分配给任何变量&#xff0c;但是在访问具有 null 值的对象引用时会引发用户需要处理的空指针异常。…

[Android Material Design]组件12 - SearchView

文章目录效果图关键代码源码地址效果图 在toolbar放置一个搜索按钮&#xff0c;并且点击该按钮后&#xff0c;会出现搜索框&#xff0c;让输入搜索词。然后监听setOnQueryTextListener即可得到文本内容&#xff0c;避免了自己手动在toolbar添加输入框&#xff0c;再添加监听事件…

Android实现RadioGroup之间的互斥

Android实现RadioGroup之间的互斥关于效果图实现准备工作&#xff0c;附上布局代码解决需求&#xff0c;附上类代码关于 因为一个页面需求&#xff0c;需要有两个radio group共六个radio button来实现单选互斥&#xff08;为什么不用一个radio group来包裹是因为需要两行展示&a…

Android如何做出带有复杂水印的图片

最近项目中存在图片加水印效果的需求&#xff0c;具体效果如下: 然后做出来的效果如下&#xff1a; 原图水印图 点击可以查看大图&#xff1a;大图 那么针对这种比较复杂的水印图片&#xff0c;应该如何去做呢&#xff1f;下面我分享一下自己的思路。 如果没有使用到NDK&…

学习Kotlin~类

类 类的field 类定义的每一个属性&#xff0c;kotlin都会产生一个filed,一个setter(),一个getter()field用来存储属性数据&#xff0c;不能直接定义&#xff0c;kotlin会封装&#xff0c;保护它里面数据&#xff0c;只暴露给getter和setter使用只有可变属性才有setter方法需要…

如何学习kotlin

学习 Kotlin 有以下几个步骤&#xff1a; 学习基础语法&#xff1a;学习 Kotlin 的基础语法、数据类型、控制流等基本知识&#xff0c;了解 Kotlin 的特点和与其他语言的区别。 学习面向对象编程&#xff1a;学习 Kotlin 的面向对象编程特性&#xff0c;如类、对象、继承、多…

kotlin协程flow filter map flowOn zip combine(1)

kotlin协程flow filter map flowOn zip combine&#xff08;1&#xff09; 一、flow ,emit,onCompletion,collect import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.runBlockingfun main(args: Array<String&g…

[Android Material Design]组件02 - DrawerLayout

文章目录效果图关键代码源码地址效果图 关键代码 xml布局文件代码如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.drawerlayout.widget.DrawerLayoutxmlns:android"http://schemas.android.com/apk/res/android"…

关于Jetpack DataStore(Proto)的六点疑问

前言 上篇分析了DataStore(Preferences)的使用与原理&#xff0c;本篇接着阐述DataStore的另一种实现形式&#xff1a;DataStore(Proto)。 通过本篇文章&#xff0c;你将了解到&#xff1a; 1. 为什么需要Proto&#xff1f; DataStore(Preferences)对标SharedPreferences&a…

Android Compose UI实战练手----Google Bloom登录页

目录 1.概述2.页面展示1.1 亮色主题1.2暗色主题 3.登录页面拆分以及编码实现3.1 登录页面拆分3.2 编码实现3.2.1 LoginPage3.2.2 LoginTitle3.2.3 LoginInoutBox3.2.4 LoginHintWithUnderLine3.2.5 LoginButton 4.源码地址 1.概述 在之前的章节中我们已经介绍了如何实现Google…

Kotlin version 与 IDE plugin版本不一致问题

Kotlin version that is used for building with Gradle (1.4.0) differs from the one bundled into the IDE plugin (1.4.31) 如果项目中使用的kotlin版本与Android Studio中kotlin插件版本不一致就会弹出上面的警告 解决办法&#xff1a; 打开Android Studio &#xff1a;To…

为什么kotlin调用Thread.sleep方法不需要捕获异常

今天用kotlin复习java时发现Thread.sleep方法居然不用捕获InterruptedException异常 Java: try {Thread.sleep(3000); } catch (InterruptedException e) {e.printStackTrace(); }Kotlin: Thread.sleep(3000)经过了解知道&#xff0c;不仅仅Thread.sleep不需要获取异常&…

【Kotlin】坦克大战7:敌方坦克创建

文章目录敌方坦克绘制让敌方坦克动起来敌方坦克绘制 创建Enemy&#xff0c;我们之前创建了很多特性&#xff0c;我们可以仿照Tank文件来写&#xff0c;实现Moveable&#xff0c;关于绘制可以直接把Tank的绘制方法拿过来&#xff0c;换张图片即可 /*** 敌方坦克*/ class Enemy…

kotlin 中 :: 的用法

在Kotlin中&#xff0c;::是一个操作符&#xff0c;它可以用来引用函数、属性或构造函数。具体用法如下&#xff1a; 引用函数&#xff1a;可以使用::操作符来引用一个函数。例如&#xff0c;::println可以用来引用println函数。 fun printWithPrefix(prefix: String, message…

Jetpack全套

Jetpack全套 一.Jetpack介绍1.特性&#xff1a;2.分类&#xff1a; 二.应用架构三.LifeCycle:1.简介2.简单使用3.实战&#xff1a;Dialog内存泄漏4.Lifecycle的应用&#xff08;0&#xff09;activity/fragment上面案例都是&#xff08;1&#xff09;Service&#xff08;2&…

【Kotlin】图片处理

课前知识 了解了以上基础知识&#xff0c;我们来创建一个图片 import java.awt.image.BufferedImage import javax.imageio.ImageIO import java.io.Filefun main(args: Array<String>) {//宽度、高度、图片的类型//内存中创建一个宽高都为100的图片var image Buff…

kotlin 实现了Parcelable但是Activity之间传递时ArrayList的值为什么还是为null?

大家都知道想要在Activity之间传递对象数据时可以通过实现Parcelable&#xff0c;在java代码中&#xff0c;我们一般用Android Studio插件&#xff08;Android Parcelable code generator&#xff09;来生成Parcelable需要的代码&#xff0c;但是在kotlin代码中不需要使用第三方…

kotlin使用@Parcelize报错 public abstract fun describeContents(): Int defined in android.os.Parcelable

kotlin使用Parcelize报错 Class ‘XXXData’ is not abstract and does not implement abstract member public abstract fun describeContents(): Int defined in android.os.Parcelable 解决办法 app/build.gradle 添加 id ‘kotlin-android-extensions’ plugins {id co…

Android 源码浅析:Leakcanary 内存泄漏检测的好帮手

我们一起来分析一下大名鼎鼎的 Leakcanary&#xff0c; 想必作为 Android 开发都多多少少接触过&#xff0c;新版本的 Leakcanary 也用 Kotlin 重写了一遍&#xff0c;最近详细查看了下源码&#xff0c;分享一下。 tips&#xff1a;本来是只想分析下内存泄漏检测部分&#xff…

【开源】100% Kotlin 的 Android Jetpack mvvm 项目!

这是我在掘金上面看见的一个还不错的100% Kotlin 的开源项目&#xff0c;分享给大家&#xff0c;希望对大家的学习工作有所启发和帮助~ 原文地址&#xff1a;https://juejin.cn/post/6966851893536489502 项目地址&#xff1a; github.com/haikun-li/J… (由于项目引入了jetpac…

Kotlin中的密封类和密封接口

密封类和密封接口是 Kotlin 中允许创建受限类层次结构的两个特性。这两个构造用于定义一组有限的可能子类型&#xff0c;并防止在声明的层次结构之外定义其他子类型。 密封类 密封类是一个可以被子类化的类&#xff0c;但只能在声明它的同一个文件中进行子类化。这意味着密封…

Jetpack Compose - LazyColumn、LazyRow、LazyVerticalGrid全面解析

1.介绍 LazyColumn 仅构成和放置当前可见项的垂直滚动列表&#xff0c;内容块定义了一个DSL&#xff0c;它允许您放置不同类型的子集内容。例如&#xff0c;您可以使用LazyListScope.item添加单个项目&#xff0c;使用LazyListScope.items添加项目列表。 LazyRow 仅构成和放…

Kotlin Sealed Class 太香了,Java 8 也想用怎么办?

为避免数据在分发过程中被恶意篡改&#xff0c;Kotlin 将 SealedClass 参数设置为 val 即可&#xff0c; Java 17 以下未引入 SealedClass&#xff0c;且若实现 Kotlin val 同等效果&#xff0c;样板代码瞬间飙出许多&#xff0c;等于解决了数据一致性的同时&#xff0c;滋生了…

这玩意真的有用吗?对,是的!Kotlin 的 Nothing 详解

视频先行 下面是视频内容的脚本文案原稿分享。 文案原稿 Kotlin 的 Nothing 类&#xff0c;无法创建出任何实例&#xff1a; public class Nothing private constructor() 所以所有 Nothing 类型的变量或者函数&#xff0c;都找不到可用的值&#xff1a; val nothing: Nothing …

Android SpanStringBuilder ClickableSpan内存泄漏和crash的解决方案

这个问题属于老生常谈&#xff0c;使用SpanStringBuilder的ClickableSpan&#xff0c;有如下因素导致各种问题&#xff1a; google对于ClickableSpan&#xff0c;内部TextView创建了很多内部类和变量去持有XXXSpan会导致内存泄漏&#xff0c; google原生代码有缺陷&#xff1b…

Kotlin SOLID 原则

Kotlin SOLID 原则 许多 Kotlin 开发者并不完全了解 SOLID 原理&#xff0c;即使他们知道&#xff0c;他们也不知道为什么要使用它。您准备好了解所有细节了吗&#xff1f; 介绍 亲爱的 Kotlin 爱好者&#xff0c;您好&#xff01;欢迎来到我的新文章。今天我要讲的是 Kotli…

Kotlin Compose Multiplatform 跨平台(Android端、桌面端)开发实践之使用 SQLDelight 将数据储存至数据库

前言 关于标题和文章主题 取标题的时候我还在想&#xff0c;我应该写 Compose 跨平台呢还是写 Kotlin 跨平台。 毕竟对于我的整体项目而言&#xff0c;确实是 Compose 跨平台开发&#xff0c;但是对于我这篇文章要说的东西&#xff0c;那其实也涉及不到多少 Compose 相关的内…

Kotlin从小白到大牛第2篇 【Kotlin】面向对象视频课程-关东升-专题视频课程

Kotlin从小白到大牛第2篇 【Kotlin】面向对象视频课程—428人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第二部分&#xff0c;主要内容包括&#xff1a;面向对象基础、继承与多态、抽象类与接口等。课程收益读者以及观看群是零基础小白&a…

现在 Android 开发都需要学习 Kotlin 吗?【附:高级 Kotlin 强化实战】

目录前言&#xff1a;第一章 Kotlin 入门教程1. Kotlin 概述2. Kotlin 与 Java 比较3. 巧用 Android Studio4. 认识 Kotlin 基本类型5. 走进 Kotlin 的数组6. 走进 Kotlin 的集合7. 集合问题8. 完整代码9. 基础语法第二章 Kotlin 实战避坑指南第三章 项目实战《Kotlin Jetpack …

Android WebView支持文件下载之调起浏览器下载(Java与Kotlin版)

使用函数 WebView默认没有开启文件下载的功能&#xff0c;如果想使得WebView能够支持文件下载&#xff0c;就需要给WebView设置下载监听器setDownloadListener&#xff0c;每当有文件需要下载时&#xff0c;就会回调onDownloadStart。 Java版一 mWebView.setDownloadListener…

Kotlin学习

idea 运行CtrlShiftF10 var <标识符> : <类型> <初始化值> var a1 ///Int类型 var b:Int ///指定Int类型 var c:Int 1///指定Int类型1//类型后面加?表示可为空 var age: String? "23" //抛出空指针异常 val ages age!!.toInt() //不做处…

Android之开始学习Kotlin(一)

最近问了同事说自己需要学习哪方面的知识&#xff0c;他说了一个Kotlin&#xff0c;于是就想把之前的一道AIDL的题目进行改写。两天后算是都改写完毕了&#xff0c;觉得这样学起来会快些。 原来的Java项目代码&#xff08;GitHub&#xff09; 改写后的Kotlin代码&#xff08;…

记录平常用到的ktx

记录平常用到的ktx fun Context.px2dip(px: Float): Float px / resources.displayMetrics.density 0.5f fun Context.px2dip(px: Int): Int px2dip(px.toFloat()).toInt()/*** dp转px*/ fun Context.dip2px(dp: Float): Float applyDimension(TypedValue.COMPLEX_UNIT_DI…

Kotlin协程和在Android中的使用总结(七 一些使用协程的三方库)

文章目录1 依赖注入[Kodin](https://github.com/Kodein-Framework/Kodein-DI)2 图片加载框架 [Coil](https://github.com/coil-kt/coil/)3 权限申请4 网络请求5 数据库6 更多1 依赖注入Kodin 实际上这部分跟协程没有什么关系&#xff0c;只是觉得这篇文章主要介绍一些Kotlin的…

Kotlin协程和在Android中的使用总结(三 将回调和RxJava调用改写成挂起函数)

本文主要介绍以下&#xff0c;对于现有项目中的接口回调逻辑&#xff0c;和Rxjava中的订阅逻辑代码&#xff0c;修改成suspend挂起函数的形式。 文章目录1 接口回调的改写&#xff08;1&#xff09;使用suspendCoroutine&#xff08;2&#xff09;使用suspendCancellableCorout…

Kotlin协程和在Android中的使用总结(一 基础知识)

在学习kotlin的协程时&#xff0c;看了很多博客&#xff0c;在此做个汇总&#xff0c;其中会大量摘抄官网和其他博文内容&#xff0c;不喜勿喷&#xff0c;仅作为总结使用。 该总结系列包含多篇&#xff0c;从介绍协程开始&#xff0c;到如何使用&#xff0c;到与RxJava的对比&…

Kotlin协程和在Android中的使用总结(二 和Jetpack架构组件一起使用)

在Android中&#xff0c;官方推荐和Jetpack架构组件一起使用 &#xff08;1&#xff09;引入协程 implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3’ &#xff08;2&#xff09;引入Jetpack架构组件的KTX扩展 对于 ViewModelScope&#xff0c;请使用…

Kotlin笔记12-Java和Kotlin中的范型对比(一)

Kotlin中的范型和Java中的比较相似&#xff0c;可以参考我的关于介绍Java范型的文章 &#xff1a; Java范型那些事&#xff08;一&#xff09; Java范型那些事&#xff08;二&#xff09; Java范型那些事&#xff08;三&#xff09; Java范型那些事&#xff08;四&#xff…

Kotlin笔记10- Destructuring Declarations 解构声明

参考官网对于解构声明的介绍&#xff1a;http://kotlinlang.org/docs/reference/multi-declarations.html 借助于解构声明的语法&#xff0c;可以很方便的将一个对象解构成几个变量&#xff0c;比如&#xff1a; val (name, age) person println(name) println(age) 解构声明…

Kotlin笔记8-Higher-Order Functions and Lambdas 高阶函数和Lambda表达式

目录 1. Higher-Order Functions 高阶函数 2. function types 函数式类型 3. 实例化函数式类型 Instantiating a function type 4. 调用一个函数类型变量 Invoking a function type instance 5. Lambdas表达式和匿名函数Anonymous Functions &#xff08;1&#xff09;La…

Kotlin笔记7-Delegation 和 Delegated Properties

一、Delegation 类的代理 代理模式被证明是实现继承的一个很好替代方案&#xff0c;代理模式使得我们可以用聚合来替代继承&#xff0c;将代理和真实实现分离开来&#xff0c;以达成解耦的目的。 Kotlin对代理模式内置支持&#xff0c;且零模版代码化。下面代码中代理类Deriv…

Kotlin笔记5-Data Classes数据类、Sealed Classes密封类、Nested Classes嵌套类、Enum Classes枚举类

目录 1. Data Classes数据类 (1) copy()函数 (2) 数据类的解构 (3) 标准数据类 Pair 和 Triple 2. Sealed Classes密封类 3. Nested Classes嵌套类 4. Enum Classes枚举类 1. Data Classes数据类 数据类的作用主要就是用来存储数据。在class类名前用data修饰符 data c…

Kotlin笔记4-可见性修饰符和扩展函数

参考自官网介绍&#xff1a;http://kotlinlang.org/docs/reference/extensions.html 1. Visibility Modifiers 可见性修饰符 可见性修饰符有四种&#xff1a;private, protected, internal and public&#xff0c;默认是public 可以用于修饰类、伴生对象object、接口、构造函…

Kotlin笔记3-类、属性(成员变量)和接口

目录 一、 类 1. 类的定义 2. 类的构造函数 3. 类的继承和方法、属性的复写 4. Interfaces接口 一、 类 1. 类的定义 通常如下所示&#xff1a; class Invoice { ... } 可以省略参数和函数体&#xff0c;最简单形式如 &#xff1a; class Empty 但是目前还不知道这…

Kotlin笔记1-变量和流程控制

历史&#xff1a;2011年7月&#xff0c;JetBrains推出Kotlin项目 2016年2月15日&#xff0c;Kotlin V1.0发布 2017年 Google I/O大会&#xff0c;Kotlin成功官方Android开发语言。 建议学习网站&#xff1a;kotlin中文网: https://www.kotlincn.net/ 官网: http://kotlinla…

Android使用MQTT订阅及发布消息((二)兼容Android12 封装Mqtt客户端service)

Android使用MQTT订阅及发布消息&#xff08;&#xff08;二&#xff09;兼容Android12 封装Mqtt客户端service&#xff09;关于Android 12操作mqtt修改配置新增MqttService.kt类第一步&#xff0c;定义变量第二步&#xff0c;单例mqttservice第三步&#xff0c;初始化mqttClien…

Android使用HereMap教程

Android使用HereMap教程关于配置简单使用关于定位使用自定义地图关于 前几天公司要求调研一下here map地图是否支持等值路由等线图这个功能&#xff0c;然后就去google了一下。因为不是国内的地图&#xff0c;然后在最后下载Android对应的sdk&#xff08;探索版explore&#xf…

Kotlin从零到一无所有

黑马kotlin项目实战笔记。从kotlin基础开始&#xff0c;层层深入&#xff0c;到最后做出一个完整项目。没时间解释了&#xff0c;快上车 文章目录Kotlin基础Gradle项目实战&#xff1a;坦克大战Kotlin加密解密Kotlin基础 Eclipse和kotlin插件安装数据类型和变量函数和命令行交…

【kotlin】延迟初始化和密封类

文章目录延迟初始化使用密封类优化代码延迟初始化 RecyclerView基本使用 中最后 MainActivity 中 class MainActivity : AppCompatActivity(),View.OnClickListener {...private var adapter: MsgAdapter? nulloverride fun onCreate(savedInstanceState: Bundle?) {...ad…

【Kotlin】Java 函数式 API 的使用

我们之前学了 Kotlin 中函数式 API 的用法&#xff0c;但实际上 Kotlin 调用 Java 方法时也可以使用函数式 API&#xff0c;只不过有一定条件限制。具体来讲&#xff0c;如果我们在 Kotlin 代码中调用了一个 Java 方法&#xff0c;并且该方法接收一个 Java 单抽象方法接口参数&…

kotlin constructor init companion object 与初始化by lazy

kotlin constructor init companion object 与初始化by lazy class MyDemo(private var v: Int) {init {println("init $v")}constructor(m: Int, n: Int) : this(m) {println("constructor $m $n")}//只初始化一次companion object {private var TAG &qu…

【Kotlin】加密解密5:数字签名

文章目录数字签名数字签名流程加密算法总结数字签名 Api文档搜索Signature RSACrypt封装一个返回privatekey和publickey的方法 fun getPrivateKey():PrivateKey{//保存密钥对val privateKeyString "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcEBoTuOL3OpJGBq…

【Kotlin】加密解密4:消息摘要

文章目录消息摘要简介消息摘要md5消息摘要sha1和sha256消息摘要应用实战消息摘要简介 消息摘要md5 关于消息摘要可以查看官方api文档&#xff0c;搜索MessageDigest fun main(args:Array<String>){val string "黑马程序员"val digest MessageDigest.getIns…

【Kotlin】加密解密3:非对称加密RSA

文章目录生成密钥对加密和解密分段加密和解密分段解密保存密钥对生成密钥对 新建RSACrypt object RSACrypt {} fun main(args: Array<String>) {//如何生成密钥对val generator KeyPairGenerator.getInstance("RSA")val keyPair generator.genKeyPair()//声…

【Kotlin】坦克大战4:子弹绘制

文章目录子弹向上发射子弹其他方向发射计算向下时向左时向右时子弹向上发射 当按下Enter键时&#xff0c;发射子弹&#xff0c;修改GameWindow.kt中onKeyPressed方法 override fun onKeyPressed(event: KeyEvent) {//用户操作时when(event.code){......KeyCode.ENTER -> {/…

【Kotlin】坦克大战1:窗体绘制

文章目录项目搭建游戏的基本内容窗体设计项目搭建 新建一个项目 引入坦克大战游戏引擎&#xff0c;按照github上的说明添加依赖即可&#xff0c;添加成功后 新建MyWindow.kt /*** 窗体* 继承游戏引擎中的窗体*/ class MyWindow:Window(){override fun onCreate() {}over…

Kotlin语法

整理关键语法列表如下&#xff1a; https://developer.android.com/kotlin/interop?hlzh-cn官方指导链接 语法形式 说明 println("count ${countnum}")字符串里取值运算 val count 2 var sum 0 类型自动推导 val 定义只读变量&#xff0c;优先 var定义可变变量…

2023年你会选择哪种编程语言?

2023年你会选择哪种编程语言&#xff1f; 关于编程语言的个人见解。 KOTLIN&#xff1a;由于其先进的多平台能力&#xff0c;未来5年内它很可能成为开发任何类型的客户端应用&#xff08;移动端、桌面端或Web端&#xff09;的首选编程语言。他们正在为iOS和WebAssembly开发的…

Kotlin开发笔记:函数式编程

Kotlin开发笔记&#xff1a;函数式编程 什么是函数式编程 简单来说&#xff0c;我们之前接触到的编程的主流就是命令式编程&#xff0c;我们需要告诉计算机做什么和如何做。而函数式编程的意思就是我们只需要告诉计算机我们想做什么&#xff0c;计算机会帮助我们实现如何做。我…

Kotlin forEach中实现break

Kotlin 线上编写练习 Kotlin官网提供了 PlayGround 供大家线上尝试 地址&#xff1a;https://play.kotlinlang.org/ 文章目录前言解决方式遇到得问题结语参考文献前言 切换为 Kotlin 后很多函数使用还不太习惯。 最近就遇到了如何在forEach中使用break的问题。 解决方式 老规…

Kotlin 基础学习

学&#xff01; 原文&#xff1a;https://blog.csdn.net/CrazyApes/article/details/122091459 文章目录Kotlin线上编写变量lateinit延迟初始化空安全比较&#xff0c;&#xff0c;equalsfor循环when三目运算DataClasses静态内部类实现扩展属性Java调用顶级函数synchroizedvola…

AndroidStudio Kotlin Analysis 卡住(无限Performing...)

Android Studio 前言 最近更新完 Android Studio 之后&#xff0c;发现莫名其妙的经常很卡。通过任务管理器查看Studio竟然一直持续CPU使用率在 95% 以上&#xff0c; What the Fk&#xff01;&#xff01; 什么情况啊&#xff01; 首先确认&#xff0c;当前Studio没有运行下…

探索Kotlin K2编译器和Java编译器的功能和能力

文章首发地址 Kotlin K2编译器是Kotlin语言的编译器&#xff0c;负责将Kotlin源代码转换为Java字节码或者其他目标平台的代码。K2编译器是Kotlin语言的核心组件之一&#xff0c;它的主要功能是将Kotlin代码编译为可在JVM上运行的字节码。 K2编译器快速介绍 编译过程&#xff…

ViewBinding的基本使用

在app目录下的build.gradle文件中开启viewBinding&#xff0c;开启方式跟DataBinding类似&#xff0c;其中apply plugin: kotlin-android-extensions 是启用绑定机制&#xff0c;跟 ViewBinding 功能类似&#xff0c;都是kotlin自动的 build.gradle apply plugin: com.androi…

Kotlin协程flow的debounce参数timeoutMillis特性

Kotlin协程flow的debounce参数timeoutMillis特性 <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.7.3</version><type>pom</type></dependency&…

kotlin类方法调用和方法的修饰符

怎么调用另一个类中的方法 在Kotlin中&#xff0c;你可以创建类的实例&#xff0c;然后使用.操作符来调用类的方法。以下是一个例子&#xff1a; class MyClass {fun myMethod() {println("Hello, World!")} }fun main() {val myObject MyClass() // 创建 MyClass…

【第四阶段】kotlin语言的list遍历

package Stage4fun main() {val list listOf(1,2,3,4,5,6,7,8,9)//第一种方式 for()println("第一种方式遍历元素&#xff1a;")for (i in list){print("元素&#xff1a;$i")}println()//第二种方式forEachprintln("第二种方式遍历元素&#xff1a;…

kotlin 转 Java

今天突然想研究下有些kotlin文件转为Java到底长什么样&#xff0c;好方便优化kotlin代码&#xff0c;搞了半天发现一个非常简单的Android Studio或者Intellij idea官方插件Kotlin&#xff0c;Kotlin是插件的名字&#xff0c;真是醉了&#xff1b; 这里以AS为例&#xff0c;使用…

简单天气--Kotlin+JetPack+协程+MVVM架构

&#x1f525;&#x1f525;&#x1f525;简单天气 简单天气——使用彩云天气api&#xff0c;基于MVVM模式结合JetPack组件库&#xff1a;LiveData、ViewModel、Lifecycle、Navigation、Room组件以及协程Retrofit网络请求&#xff0c;使用Kotlin语言开发的一款天气app。 项目…

Kotlin Coroutine + retrofit + Okhttp3 网络请求实战篇

背景 最近看到很多项目都将RxJava Retrofit 替换成了 Coroutine retrofit&#xff0c;首先Coroutine学习成本相对于Rxjava来说较低&#xff0c;而且最重要的一点是Kotlin的下实现线程切换的代码更加精简&#xff0c;逻辑相对更加清晰一些 注意&#xff1a;没有学习过DSL 以…

Kotlin,解决调用了函数但是函数体内没有执行的问题,什么时候使用invoke

fun main() {listOf(1,2,3).forEach{ foo(it)} } fun foo(a:Int) {print(a) }这段代码按照代码逻辑来说打印的是 123 但是没有这个打印 把foo函数转成java的代码如下 JvmStaticNotNullpublic static final Function0 foo(final int var0) {return (Function0)(new Function0 ()…

Kotlin使用高阶函数实现多方法回调

最近项目中开始使用kotlin&#xff0c;遇到的一个问题就是从多方法回调的问题 常规的java回调如下&#xff1a; public interface OnCallBack<T> {void onSuccess(T models);void onFailed(String message); }public abstract class OnRespCallBack<T> implements…

Android Studio最新好用的插件----Gson转Java实体类/Kotlin Data

1.Java 安装好插件之后&#xff0c;把Gson/Json数据复制一下&#xff0c;eg: { "Chrome": "UA-66061856-6", "ChromePro": "UA-66061856-9", "Opera": "UA-66061856-7", "Edge": "UA-66061856-8&q…

java和kotlin 对于for循环和forEach里面的return分别有何不同

前言 ‘break’ and ‘continue’ are only allowed inside a loop “break”和“continue”只能在循环中使用&#xff0c;forEach实际上是一个匿名函数 只有是循环才会有以下说法&#xff1a; return. 默认情况下&#xff0c;从最近的封闭函数或匿名函数返回 -By default ret…

【送书活动】强势挑战Java,Kotlin杀回TIOBE榜单Top 20!学Kotlin看哪些书?

文章目录 前言01 《深入实践Kotlin元编程》02 《Spring Boot学习指南》03 《Kotlin编程实战》赠书活动 前言 与Java一样&#xff0c;Kotlin也是用于Android应用程序开发的编程语言&#xff0c;是Android官方支持的第二种编程语言。 2016年Kotlin正式发布&#xff0c;在Androi…

ViewBinding——Android之视图绑定

高版本的gradle不再支持 kotlin-android-extensions插件&#xff0c;因此view的绑定方式也有所改变。 1.启用视图绑定 android {...viewBinding {enabled true}} 如果想在生成绑定类时忽略某个布局文件&#xff0c;请将 tools:viewBindingIgnore"true" 属性添加到…

Kotlin加密算法实战2

对称加密算法介绍 常见算法 DES&#xff1a;Data Encryption Standard&#xff0c;即数据加密标准AES&#xff1a;Advanced Encryption Standard&#xff0c;高级加密标准 开发中一般优先使用AES 特点&#xff1a;可以自己指定秘钥&#xff0c;可逆&#xff0c;有秘钥即可破…

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap&#xff0c;map存储了所有LruCache的数据&#xff0c;有时候需要遍历访问该LinkedHashMap&#xff0c;取出里面的值&#xff0c;但是LruCache代码实…

Jetpack 中的 LiveData 粘性事件

什么叫粘性事件 LiveData使用篇Jetpack 中的 LiveData - 使用篇_简单不一定不好的博客-CSDN博客后再进一步了解LiveData。观察者和被观察者&#xff0c;正常情况下观察者先注册&#xff0c;被观察者再发送观察事件&#xff1b;所以粘性事件可以理解为观察者模式的升级&#xf…

【第三阶段】kotlin语言使用replace完成加解密操作

fun main() {val password"ASDAFWEFWVWGEGSDFWEFEWGFS"println("原始密码&#xff1a;$password")//加密操作,就是把字符替换成数字&#xff0c;打乱加密var newPsdpassword.replace(Regex("[ADWF]")){when(it.value){//it.value 这里的每一个字…

【第三阶段】kotlin语言的内置函数let

1.使用普通方法对集合的第一个元素相加 fun main() {//使用普通方法对集合的第一个元素相加var list listOf(1,2,3,4,5)var value1list.first()var resultvalue1value1println(result) }执行结果 2.使用let内置函数对集合的第一个元素相加 package Stage3fun main() {//使用…

kotlin协程线程安全数据结构AtomicInteger原子同步

kotlin协程线程安全数据结构AtomicInteger原子同步 例如&#xff1a; import kotlinx.coroutines.* import java.util.concurrent.Executors import java.util.concurrent.atomic.AtomicIntegerfun main(args: Array<String>) {val coroutineDispatcher Executors.new…

Kotlin只截取Float小数点后数值DecimalFormat

Kotlin只截取Float小数点后数值DecimalFormat import java.text.DecimalFormatfun main(args: Array<String>) {val pi 3.141516Fvar p pi - pi.toInt()println(p)val decimalFormat DecimalFormat("00.0000")val format decimalFormat.format(p)println(…

kotlin:LogKit

看到别人的一个代码&#xff0c;觉得有点意思&#xff0c;就复制过来。 package robatimport android.util.Log import java.util.*object LogKit {private val MIN_STACK_OFFSET 3var defaultTag "LogKit"private val lineSeparator System.getProperty("l…

Compose 编译器版本和Kotlin版本对应关系

使用了最新的kotlin版本&#xff0c;compose报错&#xff0c;不兼容&#xff0c;在这里记录一下版本对应关系 值得注意的是Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。相反&#xff0c;它会关联到 Kotlin 编译器插件的版本&#xff0c;…

Kotlin数据结构

数据结构基础 什么是数据结构 在计算机科学中&#xff0c;数据结构&#xff08;Data Structure&#xff09;是计算机中存储、组织数据的方式。数据结构是各种编程语言的基础。 一些使用场景 不同的数据结构适用于不同的应用场景。比如HashMap与ConcurrentHashMap&#xff0…

kotlin怎么定义类

在Kotlin中&#xff0c;你可以使用class关键字来定义一个类。以下是一个简单的例子&#xff1a; class MyClass {// class body} 这个例子定义了一个名为MyClass的类。你可以在类体中定义属性和方法。 如果你想定义一个带有属性的类&#xff0c;你可以这样做&#xff1a; cla…

【第四阶段】kotlin语言可变list集合

1.可变list集合 完整写法 var list:MutableList<String> mutableListOf<String>("java","kotlin","c","c") 省略写法 var list mutableListOf("java","kotlin","c","c")fun ma…

Android 下第一个fragment app 先Java 后Kotlin

看着视频学习的&#xff0c;Fragment&#xff1a;3.Fragment使用方法_哔哩哔哩_bilibili 在android studio 下新建一个工程&#xff0c;类型是 Empty View Activity&#xff0c;本身就有一个Activity。就有文件MainActivity.java 或者kt&#xff0c;还有一个layout 文件&#…

Jetpack Compose 自定义 好看的TabRow Indicator

背景 Jetpack Compose 提供了强大的 Material Design 组件,其中 TabRow 组件可以用于实现 Material Design 规范的选项卡界面。但是默认的 TabRow 样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式。 Jetpack Compose 中使用 TabRow 简单使用 TabRow 一般可以…

Kotlin管道Channel在receiveAsFlow时debounce与flow差异

Kotlin管道Channel在receiveAsFlow时debounce与flow差异 import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch import kotlinx.coroutine…

全代码 | 随机森林在回归分析中的经典应用

公众号后台记录了发表过文章的各项阅读指标包括&#xff1a;内容标题&#xff0c;总阅读人数&#xff0c;总阅读次数&#xff0c;总分享人数&#xff0c;总分享次数&#xff0c;阅读后关注人数&#xff0c;送达阅读率&#xff0c;分享产生阅读次数&#xff0c;首次分享率&#…

Kotlin(五) 循环语句

目录 For循环 关键字 until step downTo Java中主要有两种循环语句&#xff1a;while循环和for循环。而Kotlin也提供了while循环和for循环&#xff0c;其中while循环不管是在语法还是使用技巧上都和Java中的while循环没有任何区别&#xff0c;因此我们就直接跳过不进行讲解…

Kotlin委托Delegate托管by

Kotlin委托Delegate托管by import kotlin.reflect.KPropertyfun main() {var user: String by MyDelegate()user "fly"println(user) }class MyDelegate {private var v: String? nulloperator fun getValue(thisRef: Any?, property: KProperty<*>): Stri…

Kotlin 协程 - 协程调度器 CoroutineDispatcher

一、概念 协程必须运行在一个线程上&#xff0c;所以要指定调度器。是一个抽象类&#xff0c;Dispatcher是一个标准库中帮我们封装了切换线程的帮助类&#xff0c;可以调度协程在哪类线程上执行。创建协程时&#xff0c;上下文如果没有指定也没有继承到调度器&#xff0c;则会添…

Kotlin 协程 - 协程异常处理器 CoroutineExceptionHandler

一、异常的传播 Job的取消和异常传播是双向的&#xff08;结构化并发&#xff09;&#xff0c;如果异常在局部没有捕获处理而被协程抛出&#xff0c;该协程会先cancel所有子协程再cancl自己&#xff0c;如果这个异常是 CancellationException 类型便终止向上传播&#xff0c;如…

Kotlin Coroutines包下的select函数简介

在工作中&#xff0c;发现了kotlin Coroutines包下有大量功能非常强大的API&#xff0c;这篇文章中&#xff0c;我们主要来聊一聊select函数 1. 什么是select函数 想象一下这个场景&#xff0c;在程序应用中&#xff0c;为了实现一个业务逻辑&#xff0c;你可能有好几种方式来…

【第二阶段】kotlin的函数类型作为返回类型

fun main() {//调用,返回的是一个匿名类型&#xff0c;所以info就是一个匿名函数val infoshow("",0)//info接受的返回值为匿名类型&#xff0c;此时info就是一个匿名函数println(info("kotlin",20)) }//返回类型为一个匿名函数的返回类型fun show(name:Str…

【第三阶段】kotlin语言中的语法异常处理与自定义异常特点

fun main() {var name:String?nulltry{checkException(name)println(name!!.length)//不管name是不是null 后面都会执行}catch(e:Exception){println("你好$e")} }fun checkException(name:String?){name?:throw CustException()//?: 如果name为null 执行后面的抛…

【第三阶段】kotlin语言的安全调用操作符

&#xff1f;. fun main() {var name:String?"kotlin" //name是一个可空类型&#xff0c;发出广播&#xff0c;调用的地方必须补救措施namenullvar r name?.capitalize() //?. 如果namenull&#xff0c;那么?.的将不执行&#xff0c;就不会引发空指针异常prin…

【第三阶段】kotlin语言的substring

const val INFO"kotlin java" fun main() {val indexOfINFO.indexOf(j)//左包右不包//0,indexOf等价于0 until indexOf ktolin常用0 until indexOf 方式println(INFO.substring(0,indexOf))println(INFO.substring(0 until indexOf))}执行结果

Delegates.observable追踪观察可变数据更新,Kotlin

Delegates.observable追踪观察可变数据更新&#xff0c;Kotlin import kotlin.properties.Delegates import kotlin.reflect.KPropertyclass Person {var name: String by Delegates.observable("fly") { prop: KProperty<*>, old: String, new: String ->p…

Lambda 编程(Kotlin)一

学习记录&#xff0c;以下为个人理解 知识点&#xff1a; Lambda的定义&#xff1a;允许你把代码块当作参数传递给函数Lambda的语法约定&#xff1a;如果lambda 表达式是函数调用的最后一个实参&#xff0c;它可以放到括号的外边当lambda表达式时函数唯一的实参时&#xff0c…

LiveData相关基本使用及去除黏性数据的方法

目录 一、LiveData的基本使用1. 使用方式一2. 使用方式二3. 使用方式三 二、LiveData 去除黏性数据的方法1. 去除黏性的Java版本2. 去除黏性的Kotlin版本 一、LiveData的基本使用 1. 使用方式一 MyLiveData.kt package com.example.mylivedata.simple1import androidx.lifec…

Kotlin Flow 转换以及上下游处理

本片文章主要介绍Flow上下游处理&#xff0c;上游一个Flow使用map&#xff0c;上游两个Flow使用zip&#xff0c;上游三个Flow及以上使用combine 1、下面代码展示了upStreamFlow作为上游&#xff0c;downStreamFlow作为下游&#xff0c;通过对upStreamFlow使用map操作符函数将…

Kotlin协程flow发送时间间隔debounce

Kotlin协程flow发送时间间隔debounce debounce的作用是让连续发射的数据之间间隔起来。典型的应用场景是搜索引擎里面的关键词输入&#xff0c;当用户输入字符时候&#xff0c;有时候&#xff0c;并不希望用户每输入任何一个单字就触发一次后台真正的查询&#xff0c;而是希望…

Android Mvvm设计模式的详解与实战教程

一、介绍 在开发设计模式中&#xff0c;模式经历了多次迭代&#xff0c;从MVC到MVP&#xff0c;再到如今的MVVM。发现的过程其实很简单&#xff0c;就是为了项目更好的管理。 设计模式严格来说属于软件工程的范畴&#xff0c;但是如今在各大面试中或者开发中&#xff0c;设计模…

完美解决Android adb install 安装提示 INSTALL_FAILED_TEST_ONLY

完美解决Android adb install 安装提示 INSTALL_FAILED_TEST_ONLY 目录 所遇问题 有些时候我们用命令进行安装apk如下&#xff1a; adb install xxx.apk但是会安装不成功&#xff0c;报如下错误&#xff1a; 错误现象&#xff1a;提示&#xff1a;Failed to install app-d…

Dart-Kotlin/Java/Swift/Object-C、Kotlin-C数据类型对照表

Dart-Kotlin/Java/Swift/Object-C、Kotlin-C数据类型对照表

Kotlin笔记(一):Lambda,非空判断,函数默认参数

1. Lambda表达式 Lambda就是一小段可以作为参数传递的代码,在kotlin中的标准形式为: {参数名1: 参数类型, 参数名2: 参数类型 -> 函数体}标准形式使用如下: val list listOf("Apple", "Banana", "Orange", "Pear", "Grape&…

Dart-C、Dart-Kotlin/Java/Swift/Object-C、Kotlin-C数据类型对照表

参考一&#xff1a;Dart FFI 数据类型映射 一、Dart—C 的数据类型对照 二、Dart—Java/Kotlin/Object-C/Swift 的数据类型对照 三、C—Kotlin 的数据类型对照

Rxjava3 全新详解及常用操作符

简介 RxJava 是一个基于 Java 的响应式编程库&#xff0c;用于处理异步事件流和数据流。它是由 Netflix 开发并开源&#xff0c;现在广泛用于 Android 和 Java 后端开发。RxJava 提供了一种用于组合和处理异步数据的丰富工具集&#xff0c;它的核心思想是将数据流视为一系列事…

Android Studio运行kotlin项目,一直Read timed out

Android Studio运行kotlin项目&#xff0c;一直Read timed out 下载别人的Kotlin项目&#xff0c;导入as后&#xff0c;运行app一直失败&#xff0c;提示Read timed out&#xff0c;有2种解决办法 第一种方式&#xff1a;gradle.properties 修改kotlin项目种的gradle.proper…

Flow深入浅出系列之更聪明的分享 Kotlin Flows

Flow深入浅出系列之在ViewModels中使用Kotlin FlowsFlow深入浅出系列之更聪明的分享 Kotlin FlowsFlow深入浅出系列之使用Kotlin Flow自动刷新Android数据的策略 Flow深入浅出系列之更聪明的分享 Kotlin Flows 使生命周期对上游流有效&#xff0c;以跳过不必要的工作。这是一…

Flow深入浅出系列之使用Kotlin Flow自动刷新Android数据的策略

Flow深入浅出系列之在ViewModels中使用Kotlin FlowsFlow深入浅出系列之更聪明的分享 Kotlin FlowsFlow深入浅出系列之使用Kotlin Flow自动刷新Android数据的策略 Flow深入浅出系列之使用Kotlin Flow自动刷新Android数据的策略 讨论在Android应用程序中使用Kotlin Flow高效加载…

Kotlin + 协程 + Room 结合使用

文章目录 前言集成Room结合协程的使用总结 一、前言, 现在kotlin 是趋势&#xff0c;那必然就要用到协程&#xff0c;还有就是随着jetpack 的发力&#xff0c;带来了很多好用的库&#xff0c;比如今天提到Room&#xff0c;是一个类似greenDao的数据库。它不但支持kotlin协程…

【译】快速开始 Compose 跨平台项目

原文&#xff1a; Compose Multiplatform application 作者&#xff1a;JetBrains 注意 Compose Multiplatform 中的 iOS 部分目前处于 Alpha 状态。以后可能会有不兼容的更改&#xff0c;届时也许需要手动进行迁移。 你可以使用这个模板来开发同时支持桌面、安卓和 iOS 的跨平…

Kotlin Compose Multiplatform 跨平台开发实践之加入 iOS 支持

前言 几个月前 Compose Multiplatform 的 iOS 支持就宣布进入了 Alpha 阶段&#xff0c;这意味着它已经具备了一定的可用性。 在它发布 Alpha 的时候&#xff0c;我就第一时间尝鲜&#xff0c;但是只是浅尝辄止&#xff0c;没有做过多的探索&#xff0c;最近恰好有点时间&…

Kotlin runBlocking launch多个协程读写mutableListOf时序

Kotlin runBlocking launch多个协程读写mutableListOf时序 import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {var lists mutableListOf<String>()runBlocking {launch {r…

Kotlin 设置和获取协程名称

1&#xff0c;设置写成名称 创建协程作用域是或者创建协程是有个上下文参数&#xff08;context: CoroutineContext&#xff09; 创建协程作用域 CoroutineScope(Dispatchers.IO CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无 源码&#xf…

Kotlin中的步长

步长是 Kotlin 中用于迭代区间或集合时控制迭代步进的概念。在 Kotlin 中&#xff0c;我们可以使用 step 关键字来指定迭代时的步长。 在 Kotlin 中&#xff0c;有多种方式可以定义一个区间&#xff08;Range&#xff09;。我们将通过以下示例代码来展示不同类型的区间以及如何…

Android MediaMetadataRetriever setDataSource failed: status = 0xFFFFFFEA

Android MediaMetadataRetriever setDataSource抛错&#xff1a; java.lang.RuntimeException: setDataSource failed: status 0xFFFFFFEA 原因是 setDataSource(String path) path指向的视频文件大小为0或者是破损视频资源。 Android AppGlideModule,DataFetcher,ModelLoad…

SwipeRefreshLayout和TextView滑动冲突的暴力解决方法

SwipeRefreshLayout和TextView滑动冲突 如果SwipeRefreshLayout中存在TextView&#xff0c;并且TextView被设置为可以上下滑动&#xff0c;那么在下滑TextView的时候会与SwipeRefreshLayout冲突&#xff0c;系统优先判断为SwipeRefreshLayout 网上查到的解决方案是&#xff0c;…

kotlin修饰符const的含义

一. const属性简介 在 Kotlin 中&#xff0c;const 修饰符用于声明常量&#xff0c;常量的值在编译时就确定了&#xff0c;并且可以在编译时被嵌入到代码中 二. 使用const属性 companion object 中定义的属性和方法可以在类的实例上直接访问&#xff0c;就像 Java 中的静态变量…

Android Kotlin 协程初探 | 京东物流技术团队

1 它是什么&#xff08;协程 和 Kotlin协程&#xff09; 1.1 协程是什么 维基百科&#xff1a;协程&#xff0c;英文Coroutine [kəru’tin] &#xff08;可入厅&#xff09;&#xff0c;是计算机程序的一类组件&#xff0c;推广了协作式多任务的子程序&#xff0c;允许执行被…

【Android】MQTT

目录 MQTT 协议简介应用场景优点缺点 部署服务端下载安装包启动服务器 搭建客户端下载SDK添加依赖配置MQTT服务和权限建立连接订阅主题发布消息取消订阅断开连接 MQTT客户端工具最终效果实现传感器数据采集与监测功能思路 MQTT 协议 简介 MQTT&#xff08;Message Queuing Te…

RK3399平台开发中安卓系统去除USB权限弹窗

RK3399平台开发中安卓系统去除USB权限弹窗 问题方法 问题 当我们在访问一个插入到Android系统的USB设备的时候往往是需要权限的&#xff0c;此时系统会弹出询问权限的对话框&#xff0c;而我们此时希望让它默认允许访问USB设备并且不希望用户看到这个对话框。 方法 文件目录&…

Kotlin中的逻辑运算符

在Kotlin中&#xff0c;逻辑运算符用于对布尔值进行逻辑运算。Kotlin提供了三个逻辑运算符&#xff1a;与运算&#xff08;&&&#xff09;、或运算&#xff08;||&#xff09;和非运算&#xff08;!&#xff09;。下面对这些逻辑运算符进行详细介绍&#xff0c;并提供示…

Kotlin异常处理runCatching,getOrNull,onFailure,onSuccess(1)

Kotlin异常处理runCatching&#xff0c;getOrNull&#xff0c;onFailure&#xff0c;onSuccess&#xff08;1&#xff09; fun main(args: Array<String>) {var s1 runCatching {1 / 1}.getOrNull()println(s1) //s11&#xff0c;打印1println("-")var s2 ru…

安卓Compose(一)

为什么学习安卓Compose&#xff1f; 安卓Compose是一个相对新的UI工具包&#xff0c;它的出现为安卓应用程序开发带来了一系列的好处。下面是一些学习Compose的理由&#xff1a; 声明式UI 与传统的安卓XML布局相比&#xff0c;Compose使用了声明式的UI编程范例。这意味着你可以…

Android 使用kotlin+注解+反射+泛型实现MVP架构

一&#xff0c;MVP模式的定义 ①Model&#xff1a;用于存储数据。它负责处理领域逻辑以及与数据库或网络层的通信。 ②View&#xff1a;UI层&#xff0c;提供数据可视化界面&#xff0c;并跟踪用户的操作&#xff0c;以便通知presenter。 ③Presenter&#xff1a;从Model层获…

Kotlin小节(二)

1、安全索引取值函数&#xff1a;getOrElse和getOrNull getOrElse&#xff1a;如索引值存在&#xff0c;返回索引处数值&#xff1b;索引值不存在&#xff0c;返回lamada值 getOrNull&#xff1a;如索引值存在&#xff0c;返回索引处数值&#xff1b;索引值不存在&#xff0c…

Kotlin 位运算

Kotlin 提供了丰富的位运算操作符和位运算函数&#xff0c;用于对整数类型进行位级操作。以下是 Kotlin 中常用的位运算操作符和函数&#xff1a; 按位与&#xff08;AND&#xff09;操作符 and&#xff1a;按位对两个操作数进行与运算&#xff0c;如果对应位都为 1&#xff0c…

Kotlin系列之注解详解

注解&#xff1a;JvmName 注解&#xff1a;JvmField 注解&#xff1a;JvmOverloads 注解&#xff1a;JvmStatic 注解&#xff1a;JvmMultifileClass 注解&#xff1a;JvmSynthetic 更新中。。。

Kotlin 使用泛型

在 Kotlin 中&#xff0c;我们可以使用泛型&#xff08;Generics&#xff09;来编写具有通用性的代码&#xff0c;以增强代码的可重用性和类型安全性。通过使用泛型&#xff0c;我们可以在不指定具体类型的情况下编写适用于多种类型的函数和类。 以下是 Kotlin 中使用泛型的几…

Kotlin文件和类为什么不是一对一关系

在Java中&#xff0c;一个类文件的public类名必须和文件名一致&#xff0c;如何不一致就会报异常&#xff0c;但是在kotlin的文件可以和类名一致&#xff0c;也可以不一致。这种特性&#xff0c;就跟c有点像&#xff0c;毕竟c的.h 和 .cpp文件是分开的。只要最终编译的时候对的…

Kotlin HashMap entries.filter过滤forEach

Kotlin HashMap entries.filter过滤forEach fun main(args: Array<String>) {val hashMap HashMap<String, Int>()hashMap["a"] 1hashMap["b"] 2hashMap["c"] 3println(hashMap)hashMap.entries.filter {println("filter $…

Kotlin与Java写法的变更

目录 获取类的Java Class属性 类型检查 for循环 switch语句 if判断 获取类的Java Class属性 //Java Intent intent new Intent(this, MainActivity.class);//Kotlin val intent Intent(this, MainActivity::class.java) 类型检查 //Java apple instanceof Fruit !(app…

安卓常见设计模式------装饰器模式(Kotlin版)

1. W1 是什么&#xff0c;什么是装饰器模式&#xff1f; 思想&#xff1a;动态地给对象添加额外的功能&#xff0c;通过将对象包装在一个装饰器类中&#xff0c;使装饰器类在不改变原始对象结构的情况下&#xff0c;扩展其功能。 2. W2 为什么&#xff0c;为什么需要使用装饰…

基于Android系统PJSIP库植入g729编码

基于Android系统PJSIP库植入g729编码 前言操作步骤1.从仓库下载最新的 PJSIP。3.将你的PJSIP项目中的所有文件作为给定补丁中的目录。4.按照 pjproject-2.5.diff 的说明应用更改。5.构建。 前言 有时候由于工作的需求&#xff0c;我们需要基于Android系统的PJSIP库支持G.729编…

Kotlin 作用域函数:理解 apply, let, 和 with

Kotlin提供了几个作用域函数来优化和简化代码的结构。 本文将对比分析 apply, let, 和 with 三个函数。 一、对比分析&#xff1a; apply&#xff1a;在其接收者的上下文中执行代码块&#xff0c;并返回接收者对象。let&#xff1a;在其接收者的上下文中执行代码块&#xff…

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View,Kotlin(3)

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View&#xff0c;Kotlin&#xff08;3&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import android.…

Android Glide照片宫格RecyclerView,点击SharedElement共享元素动画查看大图,Kotlin(1)

Android Glide照片宫格RecyclerView&#xff0c;点击SharedElement共享元素动画查看大图&#xff0c;Kotlin&#xff08;1&#xff09; <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"an…

StateFlow 和 SharedFlow

文章目录 一 官网地址二 StateFlowStateFlow、Flow 和 LiveData 三 利用 shareIn 使冷数据流变为热数据流四 SharedFlow 一 官网地址 转自 https://developer.android.google.cn/kotlin/flow/stateflow-and-sharedflow?hlzh-cn StateFlow 和 SharedFlow 是 Flow API&#xf…

Android 对于状态栏和导航栏的操作

设置状态栏背景颜色 window.statusBarColor Color.WHITE 设置状态栏和导航栏的浅色和深色&#xff08;默认&#xff09;状态 ......//根据背景颜色是否高亮setStatusBarBgColor(ColorUtils.calculateLuminance(Color.WHITE)>0.5) ...... private fun setStatusBarBgColo…

4:kotlin 方法(Functions)

想要声明一个函数需要使用fun关键字 fun hello() {return println("Hello, world!") }fun main() {hello()// Hello, world! }格式: fun 方法名(参数1: 参数1类型, 参数2 : 参数2类型, ...): 返回值类型 {方法体return 返回值 }fun 方法名(参数1: 参数1类型, 参数2…

2:kotlin集合(Collections)

集合有助于数据分组&#xff0c;方便后续操作 集合类型说明Lists有序的可重复的集合Sets无序的不可重复的集合Maps键值对映射集合&#xff0c;键唯一&#xff0c;且一个键只能映射到一个值 每个集合类型都可以是可变的或者只读的 List List按照添加的顺序存储内容&#xff…

Android修行手册-超出父布局进行显示以及超出父布局实现点击

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

Kotlin apply和with用法和区别

apply apply 是 Kotlin 标准库中的一个函数&#xff0c;它允许你在对象上执行一系列操作&#xff0c;然后返回该对象自身。它的语法结构如下&#xff1a; fun <T> T.apply(block: T.() -> Unit): T这个函数接受一个 lambda 表达式作为参数&#xff0c;该 lambda 表达…

多语言快速排序算法

快速排序是一种高效的排序算法&#xff0c;使用分治法策略。它的基本思想是&#xff1a;选择一个元素作为“基准”&#xff08;pivot&#xff09;&#xff0c;重新排序数列&#xff0c;所有比基准值小的元素摆放在基准前面&#xff0c;所有比基准值大的摆在基准的后面。在这个分…

Android开发知识学习——Kotlin基础

函数声明 声明函数要用用 fun 关键字&#xff0c;就像声明类要用 class 关键字一样 「函数参数」的「参数类型」是在「参数名」的右边 函数的「返回值」在「函数参数」右边使用 : 分隔&#xff0c;没有返回值时可以省略 声明没有返回值的函数&#xff1a; fun main(){println…

Android NDK开发详解之调试和性能分析的系统跟踪概览

Android NDK开发详解之调试和性能分析的系统跟踪概览 系统跟踪指南 “系统跟踪”就是记录短时间内的设备活动。系统跟踪会生成跟踪文件&#xff0c;该文件可用于生成系统报告。此报告有助于您了解如何最有效地提升应用或游戏的性能。 有关进行跟踪和性能分析的全面介绍&#x…

安卓沉浸状态栏下 PreferenceFragment 弹出的输入对话框无法跟随键盘上移的解决办法

背景介绍 在不沉浸状态栏时&#xff0c;当PreferenceFragmentCompat中有EditTextPreference时&#xff0c;点击该条目呼出的输入对话框将跟随键盘上移&#xff0c;但一旦在styles.xml中设置 <item name"android:windowTranslucentStatus">true</item> …

Kotlin学习之集合

原文链接 Kotlin Collections 现代的软件一般比较复杂&#xff0c;程序语言中的基本数据类型往往不能满足需要&#xff0c;除了基本的数据类型以外&#xff0c;还有对象的容器也非常的重要&#xff0c;比如线性容器&#xff08;数组&#xff0c;列表和Set&#xff09;和二维容…

Glide transform CircleCrop()圆图,Kotlin

Glide transform CircleCrop()圆图&#xff0c;Kotlin import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load.resource.bitmap.CircleCropclass MainActivity : AppCompatActivity() {o…

Kotlin(十三) 延迟初始化和密封类

对变量延迟初始化 延迟初始化使用的是lateinit关键字&#xff0c;它可以告诉Kotlin编译器&#xff0c;我会在晚些时候对这个变量进行初始化&#xff0c;这样就不用在一开始的时候将它赋值为null了。示例如下&#xff1a; class MainActivity : AppCompatActivity() {private …

implementation和api的区别是什么

前言&#xff1a; 平时在做开发的时候&#xff0c;各种依赖三方库。一般就是在build.gradle中添加如下代码&#xff1a; dependencies {implementation com.google.android.material:material:1.9.0 } 这里随便举个例子。 今天在开发的时候&#xff0c;遇到如下错误&#xf…

【Kotlin】

Lambda 就是一小段可以作为参数传递的代码。 因为正常情况下&#xff0c;我们向某个函数传参时只能传入变量&#xff0c;而借助Lambda 却允许传入一小段代码。 Lambda 表达式的语法结构&#xff1a; {参数名1: 参数类型, 参数名2: 参数类型 -> 函数体}首先&#xff0c;最外…

Kotlin 笔记 -- Kotlin 语言特性的理解(二)

都是编译成字节码&#xff0c;为什么 Kotlin 能支持 Java 中没有的特性&#xff1f; kotlin 有哪些 Java 中没有的特性&#xff1a; 类型推断、可变性、可空性自动拆装箱、泛型数组高阶函数、DSL顶层函数、扩展函数、内联函数伴生对象、数据类、密封类、单例类接口代理、inter…

安卓技术栈归纳

1、开发语言 kotlin java &#xff08;Harmony os&#xff09; 2、UI开发 xml jetpackCompose Material Design 3、四大组件 Activity Service Broadcast Receiver Content Provider 4、常用组件库Navigation Hilt ViewModel Android KTX LiveData WorkM…

协程高级概念

文章目录 官网地址管理长时间运行的任务使用协程确保主线程安全withContext() 的效用 启动协程并行分解 协程概念CoroutineScope 作业CoroutineContext 官网地址 https://developer.android.google.cn/kotlin/coroutines/coroutines-adv?hlzh-cn 管理长时间运行的任务 协程…

Kotlin(十七) 泛型和委托

泛型的基本用法 泛型主要有两种定义方式&#xff1a;一种是定义泛型类&#xff0c;另一种是定义泛型方法&#xff0c;使用的语法结构都是<T>。当然括号内的T并不是固定要求的&#xff0c;事实上你使用任何英文字母或单词都可以&#xff0c;但是通常情况下&#xff0c;T是…

kotling构造函数

Kotlin-继承与构造函数 - 简书 (jianshu.com) Kotlin语言中的继承与构造函数&#xff08;详解&#xff09;_kotlin 继承 构造函数_young螺母的博客-CSDN博客

21:kotlin 类和对象 -- 嵌套类和内部类(Nested and inner classes)

嵌套类 类可以嵌套在另一个类中 class Outer {private val bar: Int 1class Nested {fun foo() 2} }val demo Outer.Nested().foo() // 2类和接口也可以相互嵌套 interface OuterInterface {class InnerClassinterface InnerInterface }class OuterClass {class InnerCl…

Kotlin基础——接口和类

接口 使用 : 表示继承关系&#xff0c;只能继承一个类&#xff0c;但可以实现多个接口override修饰符表示重写可以有默认方法&#xff0c;若父类的默认方法冲突&#xff0c;则需要子类重写&#xff0c;使用super<XXX>.xxx()调用某一父类方法 interface Focusable {fun …

Kotlin学习之2

比较引用 比较值 集合类型 不可变List&#xff1a;List<T> 可变List&#xff1a;MutableList<T> 不可变Map&#xff1a;Map<K,V> 可变Map&#xff1a;MutableMap<K,V> 不可变Set&#xff1a;Set<T> 可变Set&#xff1a;MutableSet<T&…

【Kotlin精简】第8章 协程

1 简介 Kotlin 中的协程提供了一种全新处理并发的方式&#xff0c;您可以在 Android 平台上使用它来简化异步执行的代码。协程是从 Kotlin 1.3 版本开始引入&#xff0c;但这一概念在编程世界诞生的黎明之际就有了&#xff0c;最早使用协程的编程语言可以追溯到 1967 年的 Sim…

Kotlin--1.基础语法

目录 一.概念 二.基本语法 1.入门案例 2.变量声明 3.数据类型 4.字符串 (1)访问字符串 (2)字符串长度 (3)字符串函数 (4)比较字符串 (5)在字符串中查找字符串 (6)字符串模板 5.if-else 6.when 7.数组 8.范围 三.函数 1.实例 2.多个参数 3.返回值 一.概念 Kot…

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.b…

Kotlin基础——变量、函数、字符串模板、类

变量 Kotlin和Java一样是静态语言&#xff0c;所有表达式类型在编译期已经确定&#xff0c;public为默认可见性 变量由 var/val变量名[: 数据类型][?][ 值] 组成&#xff0c;如 var a 1var b: Int b 3var s: String? nullval language arrayListOf("java")…

Android NDK开发详解之ndk-build 脚本

Android NDK开发详解之ndk-build 脚本 内部原理从命令行调用选项可调试 build 与发布 build要求 ndk-build 脚本使用 NDK 的基于 Make 的构建系统构建项目。我们针对 ndk-build 使用的 Android.mk 和 Application.mk 配置提供了更具体的文档。 内部原理 运行 ndk-build 脚本相…

Android图片涂鸦,Kotlin(1)

Android图片涂鸦&#xff0c;Kotlin&#xff08;1&#xff09; import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Path import android.graphics.PointF import android.…

【Kotlin精简】第7章 泛型

1 泛型 泛型即 “参数化类型”&#xff0c;将类型参数化&#xff0c;可以用在类&#xff0c;接口&#xff0c;函数上。与 Java 一样&#xff0c;Kotlin 也提供泛型&#xff0c;为类型安全提供保证&#xff0c;消除类型强转的烦恼。 1.1 泛型优点 类型安全&#xff1a;通用允许…

Android控件全解手册 - 多语言切换完美解决方案(兼容7.0以上版本)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

【Kotlin】内联函数

文章目录 内联函数noinline: 避免参数被内联非局部返回使用标签实现Lambda非局部返回为什么要设计noinline crossinline具体化参数类型 Kotlin中的内联函数之所以被设计出来&#xff0c;主要是为了优化Kotlin支持Lambda表达式之后所带来的开销。然而&#xff0c;在Java中我们似…

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6)

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图&#xff0c;Kotlin&#xff08;6&#xff09; Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09;-CSDN博客文章浏览阅读1.3k次。&#xfeff;&#xfeff;Android Dyna…

Idea 编译SpringBoot项目Kotlin报错/Idea重新编译

原因应该是一次性修改了大量的文件, SpringBoot项目启动Kotlin报错, Build Project也是同样的结果, 报错如下 Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.1.13. Build-&…

Android NDK开发详解之编写C/C++代码中的原生 API

Android NDK开发详解之编写C/C代码中的原生 API 使用原生 APICore C/CC 库C 库日志记录跟踪记录zlib 压缩 图形OpenGL ES 1.0 - 3.2EGLVulkan位图同步 API 相机媒体libmediandkOpenMAX AL Android 原生应用 API硬件缓冲区 API 音频AAudioOpenSL ES 本部分将讨论如何使用 NDK 提…

Android---Kotlin 学习009

继承 在 java 里如果一个类没有被 final 关键字修饰&#xff0c;那么它都是可以被继承的。而在 kotlin 中&#xff0c;类默认都是封闭的&#xff0c;要让某个类开放继承&#xff0c;必须使用 open 关键字修饰它&#xff0c;否则会编译报错。此外在子类中&#xff0c;如果要复写…

Kotlin 中的 also 和 run:选择正确的作用域函数

在 Kotlin 中&#xff0c;also 和 run 是两个十分有用的作用域函数。 虽然它们在功能上相似&#xff0c;但各自有独特的用途和适用场景。 一、分析&#xff1a; also&#xff1a;在对象的上下文中执行给定的代码块&#xff0c;并返回对象本身。它的参数是一个接收对象并返回…

【19】Kotlin语法进阶——Kotlin高阶函数的应用

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、高阶函数的应用1.1 SharedPreferences的简化 一、高阶函数的应用 高阶函数非常适合用来简化各种API的调用&#xff0c;本章我们将运用高阶函数的知识来简化…

IntelliJ IDE 插件开发 | (四)开发一个时间管理大师插件

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;开发一…

IntelliJ IDE 插件开发 | (四)来查收你的 IDEA 使用报告吧

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…

Kotlin 派生类

1、超类 Any Kotlin 中所有类的默认超类&#xff0c;有三个方法&#xff1a;equals()、 hashCode() 与 toString() class Example // 从 Any 隐式继承 2、继承 默认情况下&#xff0c;Kotlin 类是最终&#xff08;final&#xff09;的——它们不能被继承 open 关键字标记类…

Kotlin之for循环的具体使用说明

我们用java进行Android开发过程中&#xff0c;经常会用到for循环&#xff0c;在Kotlin中也会经常用到&#xff0c;但是在最近使用Kotlin中我发现&#xff0c;在java中使用for循环不会有什么问题&#xff0c;但是在Kotlin中会出现问题&#xff0c;就是循环出出来的结果不一样&am…

在Android上用kotlin对象表达式

首先&#xff0c;我们用kotlin写一个类、一个接口&#xff0c;再看我们怎么使用它们&#xff1a; open class Kotlin20 {open fun add(info: String) { println("println add info$info") }open fun del(info: String) { println("println dell info$info"…

Android---Kotlin 学习006

数字类型 和 java 一样&#xff0c;Kotlin 中所有数字类型都是有符号的&#xff0c;也就是说既可以表示正数&#xff0c;也可以表示负数。 安全转换函数 与 java 不一样&#xff0c;kotlin 提供了 toDoubleOrNull 和 toIntOrNull 这样的安全转换函数&#xff0c;如果数值不能…

Kotlin(十六) 高阶函数的简单应用

高阶函数非常适用于简化各种API的调用&#xff0c;一些API的原有用法在使用高阶函数简化之后&#xff0c;不管是在易用性还是可读性方面&#xff0c;都可能会有很大的提升。 所以我们可以通过高阶函数来使一些API变得更简单更易读。在我们APP存储数据时&#xff0c;通常会用到…

Android JNI修改Java对象的变量

在JNI中&#xff0c;本地代码&#xff08;C/C&#xff09;中修改了Java对象的变量&#xff0c;并且将其传递回Java端&#xff0c;那么Java端会看到变量的修改&#xff0c;尝试以下两种方式进行修改&#xff1a; 添加native方法 data class MyData(var key:Int,var value:String…

Kotlin笔记(三):扩展函数,运算符重载

1. 扩展函数 扩展函数表示即使在不修改某个类的源码的情况下&#xff0c;仍然可以打开这个类&#xff0c;向该类添加新的函数。 在Java中,如果我们需要统计字符串中的字母的数量的话,我们通常需要建立一个工具类,然后在工具类里面创建一个新的方法来实现该功能. 在Kotlin中,由于…

Koin在KMM与Android Jetpack Compose中的应用

Koin在KMM与Android Jetpack Compose中的应用 在koin的快速开始文档模块中&#xff0c;加入了koin应用于kmm与Jetpack compose&#xff0c;方便我们在实际开发中快速接入使用。 快速入门教程列表&#xff0c;可帮助您了解如何针对给定的技术用例启动 Koin。 Android快速入门…

Kotlin中的异常处理

异常是在程序执行过程中出现的错误或意外情况&#xff0c;可以干扰程序的正常流程。在Kotlin中&#xff0c;我们可以通过异常处理机制来捕获和处理异常&#xff0c;以保证程序的稳定性。本篇博客将介绍异常的产生、捕获、定义、受检异常和finally关键字&#xff0c;并提供相应的…

Android Kotlin 协程详解

前言 关于Kotlin基础和高阶函数又不熟悉的可以先参考文章&#xff1a; Android Kotlin 基础详解_袁震的博客-CSDN博客 Android Kotlin 高阶详解_袁震的博客-CSDN博客 什么是协程&#xff1f;要理解协程&#xff0c;就要将它和线程联系起来理解。 线程是什么&#xff1f;我…

在DialogFragment的onStop(完全不可见)时调用dismiss退出界面报错解决办法

在DialogFragment的onStop&#xff08;完全不可见&#xff09;时调用dismiss退出界面报错解决办法 override fun onStop() {super.onStop() // dismiss() // errordismissAllowingStateLoss() //ok}报错日志 java.lang.RuntimeException: Unable to stop activity {com.…

Kotlin 数据类生成多个构造函数

Kotlin 的data class默认在编译后自动生成包含所有属性的构造方法&#xff0c;正常使用时会需要多个重载函数&#xff0c;可以使用JvmOverloads 注解。 JvmOverloads 注解用于在 Kotlin 类的构造函数上生成多个重载版本&#xff0c;以便与 Java 代码更好地进行互操作。 使用 Jv…

Kotlin中的函数分类(顶层、成员、局部、递归等)

在 Kotlin 中&#xff0c;函数可以按照不同的方式进行分类。在本篇博客中&#xff0c;我们将介绍以下几种常见的函数分类&#xff0c;并提供示例代码进行演示。 顶层函数&#xff1a; 顶层函数是指定义在文件中的函数&#xff0c;不依赖于任何类或对象。它们可以在文件的任何…

坦克大战-kotlin

坦克大战 游戏需求&#x1f447;核心玩法&#x1f447;&#x1f447;界面原型&#x1f447;&#x1f447;成品演示&#x1f447; 游戏开发1.代码实现 源码下载 专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1…

Android NDK开发详解之调试和性能分析的ndk-gdb

Android NDK开发详解之调试和性能分析的ndk-gdb 要求用法选项 NDK 包含一个名为 ndk-gdb 的 Shell 脚本&#xff0c;可以启动命令行原生调试会话。偏好使用 GUI 的用户则应阅读在 Android Studio 中调试这篇文档。 要求 要运行命令行原生调试&#xff0c;必须满足以下要求&am…

Android NDK开发详解之常见问题和解决方案

Android NDK开发详解之常见问题和解决方案 本文档包含您在使用 NDK 时可能遇到的部分最常见的非错误性问题及解决方案&#xff08;如果有&#xff09;。 将 _FILE_OFFSET_BITS64 与旧版 API 级别搭配使用 在统一头文件之前&#xff0c;NDK 并不支持 _FILE_OFFSET_BITS64。如果…

Android block quick OnClick event,simple implement,Kotlin

Android block quick OnClick event&#xff0c;simple implement&#xff0c;Kotlin var time 0Lview?.setOnClickListener {val now System.currentTimeMillis()if (now - time > 300) {Log.d("fly", "正常点击")} else {Log.d("fly", &…

Android Canvas状态save与restore,Kotlin

Android Canvas状态save与restore&#xff0c;Kotlin private fun f1() {val bitmap BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val canvas Canvas(bitmap)val paint Paint(Paint.ANTI_ALIAS_FLAG)paint.color Color.RED…

Android Studio 查看源码编译后的字节码(java/kotlin)

我们都知道字节码是java或者kotlin源码编译后的文件&#xff0c;后缀名是".class"&#xff0c;如果直接用普通文本编辑器打开是会显示乱码的&#xff0c;如果用Android Studio 直接打开则会自动反编译成java代码&#xff1b;那么如何才能正确查看到源码编译后的字节码…

kotlin chunked 和 windowed

kotlin chunked的作用 将集合按照指定的数量分割成多个结合 val numbers listOf(0,1,2,3,4,5,6,7,8,9) //把集合按照一个结合3个元素分割 Log.d("chunked", numbers.chunked(3).toString()) // 打印结果 [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] kotlin windowed…

有趣的 Kotlin 0x13:密封类

跟着 ChatGPT 学 Kotlin&#xff0c;又是努力做一个 AI 出题人的一天~ 1. Kotlin 是出于什么考虑设计密封类&#xff1f; **答&#xff1a;**在 Kotlin 设计密封类时&#xff0c;主要考虑了以下几个因素&#xff1a; 类型安全&#xff1a;在 Kotlin 中&#xff0c;类型安全是…

Kotlin 协程(线程)切换

常用协程切换函数 withContext 是Kotlin协程中的一个常用协程函数&#xff0c;它的作用是切换协程的执行上下文&#xff08;线程或调度器&#xff09;。具体来说&#xff0c;withContext 的主要功能如下&#xff1a; 切换执行上下文&#xff1a;withContext 允许你从一个执行上…

Android控件全解手册 - 自定义ViewGroup卫星导航菜单

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列

Kotlin 1.5.0 的新特性

1、JVM 记录类型支持 Java正在快速发展&#xff0c;为了确保Kotlin能够与之互操作&#xff0c;引入了对其最新特性之一——记录类的支持。 Kotlin对JVM记录的支持包括双向互操作性: 在Kotlin代码中&#xff0c;您可以像使用带有属性的典型类一样使用Java记录类。 要在Java代…

Android中view binding的使用

ViewBinding是 Android 开发中用于替代 findViewById的功能&#xff0c;以更简单、安全的方式访问布局文件中的视图组件。 1. 在模块级别&#xff08;我这里只有app模块所以就在app下的&#xff09; build.gradle文件中启用 View Binding&#xff1a; android {// 注意在build…

003 Android13将Settings移植到AndroidStudio中(二)

目录 一.framework.jar的移植 1.寻找framework.jar 2.移植framework.jar

Kotlin基础——Lambda和函数式编程

Lambda 使用 { } 定义Lamba&#xff0c;调用run运行 run { println(1) }更常用的为 { 参数 -> 操作 }&#xff0c;还可以存储到变量中&#xff0c;把变量作为普通函数对待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一个Lambda&#xff0c;传…

2023年最新IDEA中 Java程序 | Java+Kotlin混合开发的程序如何打包成jar包和exe文件(gradle版本)

文章内容&#xff1a; 一. JAVA | JAVA和Kotlin混开开发的程序打包成jar方法 1.1 方法一 &#xff1a;IDEA中手动打包 1.2 方法二 &#xff1a;build.gradle中配置后编译时打包 二. JAVA | JAVA和Kotlin混合开发的程序打包成exe的方法 一. JAVA | JAVA和Kotlin混开开发的程序…

Kotlin新手教程七(委托)

委托模式是软件设计模式中的一项基本技巧。在委托模式中&#xff0c;有两个对象参与处理同一个请求&#xff0c;接受请求的对象将请求委托给另一个对象来处理。kotlin中使用by实现委托。 一、类委托 类的委托实际就是一个类中定义的方法实际是调用另一个类中的对象的方法来实现…

Kotlin 开发Android笔记之Kotlin学习篇

Kotlin 开发Android笔记之Kotlin学习篇 var与val 变量标志 val :声明一个不可变的变量&#xff0c;在初始化赋值后不可再改变值&#xff0c;相当于Java中的final类型变量数据 var:声明一个可变的变量&#xff0c;在初始化赋值后还可修改值&#xff0c;相当于Java中的非final类…

Kotlin特性学习笔记

1,关键字by修饰类,表示类委托 interface Animation{fun eat() }//动态代理 class Dog:Animation{override fun eat() {println("dog eat oligarch")} }class DogProxy:Animation by Dog(){} 2,关键字by修饰变量,实现属性委托 var name:String by NameDelegate()…

【CodeWorld】kotlin带参数的单例模式封装实现

带参数单例模式双重检验实现&#xff1a; //带参数单例模式&#xff1a;双重检验 class Singleton5 private constructor() {private lateinit var mContext: Contextprivate constructor(context: Context) : this() {mContext context.applicationContext}companion object…

判断Int型数组中的唯一值,就用异或来把数组中的每一个值进行比较即可

判断Int型数组中的唯一值&#xff0c;就用异或来把数组中的每一个值进行比较即可 利用异或算法的特性&#xff0c;可以快速简便的查找出数组中的唯一值。下面的方法只适用于数组除了一个一次值&#xff0c;剩余的值都是重复两次值的情况&#xff0c;类似如[4,2,2,3,3]、[5,4,4…

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin

runCatching异常捕获onSuccess/onFailure返回函数&#xff0c;Kotlin fun test(a: Int, b: Int) {runCatching {a / b}.onSuccess {println("onSuccess: $it")return ok(it)}.onFailure {println("onFailure: $it")return fail(it)} }fun ok(o: Any) {prin…

Kotlin: Jetpack — ViewModel简单应用

ViewModel 概览 Android Jetpack 的一部分。 ViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面&#xff0c;以及封装相关的业务逻辑。 它的主要优点是&#xff0c;它可以缓存状态&#xff0c;并可在配置更改后持久保留相应状态。这意味着在 activity 之…

Android---Kotlin 学习001

Kotlin 的诞生 2011年&#xff0c;JetBrains 宣布开发 Kotlin 编程语言&#xff0c;这门新语言可以用来编写在 Java 虚拟机上运行的代码&#xff0c;是 Java 和 Scale 语言之外的又一选择。2017年&#xff0c;Google 在赢得与 Oracle 的诉讼一年后&#xff0c;Google 宣布 Ko…

Kotlin Bean中自动生成的Parcelable相关代码报错

问题描述&#xff1a; 在kotlin类中定义Bean&#xff0c;需要实现Parcelable相关代码&#xff0c;如果没有实现&#xff0c;则可以根据提示点击"Add Parcelable Implementation"自动生成代码,但是发现出现代码错误“Abstract member cannot be accessed directly”&…

LeetCode-Kotlin-Array-EASY-31至40题

31.Can Place Flowers 题目大意 假设你有一个很长的花坛&#xff0c;一部分地块种植了花&#xff0c;另一部分却没有。可是&#xff0c;花卉不能种植在相邻的地块上&#xff0c;它们会争夺水源&#xff0c;两者都会死去。给定一个花坛&#xff08;表示为一个数组包含0和1&…

Kotlin 同步与异步执行:run、runCatching、runBlocking 与 runInterruptible

前言 首先&#xff0c;run 和 runCatching 是同步的&#xff0c;而 runBlocking 和 runInterruptible 是异步的。 run 和 runCatching 是 Kotlin 标准库的一部分&#xff0c;可以在所有支持的平台上使用。 runBlocking 和 runInterruptible 是 Coroutines 的一部分。 一、run…

【Kotlin精简】第6章 反射

1 反射简介 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性。 1.1 Kotlin反射 我们对比Kotlin和Java的反射类图。 1.1.1 Kotlin反射常用的数据结…

kotlin--2.面向对象

目录 一.概念 Kotlin 类/对象 二.创建类 1.创建类 2.构造函数 2.getter 和 setter 实例 3.主构造器 实例 4.次构造函数 实例 5.抽象类 6.嵌套类 7.内部类 8.匿名内部类 9.类的修饰符 实例 三.继承 1.概念 2.构造函数 (1)子类有主构造函数 (2)子类没有主构…

Android Glide transform旋转rotate圆图CircleCrop,Kotlin

Android Glide transform旋转rotate圆图CircleCrop&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load…

Kotlin之泛型、泛型约束、协变(Variance)

一、泛型及泛型约束 kotlin中的泛型&#xff0c;和java中思维大体是相同的&#xff0c;但又有些区别 class Data<T>(val t:T)//泛型类fun <T> play(i:Int){ //泛型方法println(i)}interface onclick<T>{ //泛型接口fun click(t:T)} val data Data<String…

【第四阶段】kotlin语言的set集合

1.set集合定义&#xff0c;不允许重复元素打印 package Stage4fun main() {//set集合定义&#xff0c;不允许重复元素打印// val set : Set<String> setOf<String>("java","kotlin","c","java","c")val set s…

Kotlin File FileTreeWalk walkTopDown onEnter onLeave

Kotlin File FileTreeWalk walkTopDown onEnter onLeave Python遍历文件目录os.walk_for subfolder in subfolders: print(foldername/_zhangphil的博客-CSDN博客import osfor folderName, subfolders, filenames in os.walk(rD:\code\vs_code): print(当前文件夹: folderName…

javap获取Kotlin方法JNI方法签名

获取Kotlin方法签名和JAVA不一样的地方就是需要使用Kotlin 命令行编译器生成.class文件&#xff1a; 编写一个Kotlin类&#xff0c;添加JNI方法&#xff1a; class TestLib {external fun init(callBack: CallBack)interface CallBack{fun onData(count:Int,data:String)} }在…

基于A*算法的校园地图自动算路的安卓程序

基于双向A*算法的校园地图自动算路安卓程序算法问题描述算法过程算法总结Python算法复现复现效果安卓程序效果展示核心代码源码地址展示视频Apk下载地址算法 问题描述 在一个地图中&#xff0c;有一点A&#xff0c;中间有一道障碍&#xff0c;还有一点B&#xff0c;如下图所示…

Android Glide加载transform CenterCrop, CircleCrop ShapeableImageView圆形图并描边,Kotlin

Android Glide加载transform CenterCrop, CircleCrop ShapeableImageView圆形图并描边&#xff0c;Kotlin import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.…

史上第一款AOSP开发的IDE (支持Java/Kotlin/C++/Jni/Native/Shell/Python)

ASFP Study 史上第一款AOSP开发的IDE &#xff08;支持Java/Kotlin/C/Jni/Native/Shell/Python&#xff09; 类似于Android Studio&#xff0c;可用于开发Android系统源码。 Android studio for platform&#xff0c;简称asfp(爱上富婆)。 背景&下载&使用 背景 由…

【android studio】新手踩坑配置

很久没搞android重新下载一个新的android studio发现这东东不是产品级别的? 一上来就各种不识别安装一个orcale的jdk17 https://www.oracle.com/cn/java/technologies/downloads/#jdk17-windows下载android studio 下载配置proxy地址sock5 也是7890 ,和http一样的?adb 找不到…

二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码

自古逢秋悲寂寥&#xff0c;我言秋日胜春朝 二叉树结构说明 本博客使用树节点结构&#xff0c;如下所示&#xff1a; Kotlin 版本 class TreeNode(var value: String, var leftNode: TreeNode? null, var rightNode: TreeNode? null)Java 版本 class TreeNode(){public…

Android(kotlin)JetPack系列学习——1. Lifecycle

文章目录1. LifeCycle(生命周期管理)简介2. 使用3. 效果如下1. LifeCycle(生命周期管理)简介 lifeCycle主要是用来解耦的&#xff0c;LifeCycle可以帮助开发者创建可感知生命周期的组件。这样&#xff0c;组件便能够在其内部管理自己的生命周期&#xff0c;从而降低模块间的耦…

Android仿QQ消息拖拽效果(二)

前言 本文参考辉哥贝塞尔曲线 - QQ消息汽包拖拽&#xff0c;前面我们使用二阶贝塞尔曲线绘制了拖拽圆点效果Android仿QQ消息拖拽效果&#xff08;一&#xff09;&#xff08;二阶贝塞尔曲线使用&#xff09;&#xff0c;这里我们在此基础之上实现仿QQ消息拖拽爆炸效果。 最终…

android unit test mock框架使用记录

写在前面 之前上班时&#xff0c;开发一个功能之后&#xff0c;还需要编写测试用例&#xff0c;使用的框架是mock。 为什么防止以后用到时忘了&#xff0c;在这里记录一下。 由于团队没有人使用Espresso进行unit test&#xff0c;所以本人对该框架并不熟悉。想了解该框架的使用…

Kotlin Compose lerp 函数

您在使用 Jetpack Compose UI 组件库&#xff0c;您需要在项目中导入以下依赖&#xff1a; 在项目的 build.gradle 文件中添加&#xff1a; dependencies {implementation "androidx.compose.ui:ui:1.2.0" }然后在 Kotlin 文件中添加正确的导入&#xff1a; impor…

Compose中的附带效应(二)LaunchedEffect

文章目录前言一、基础概念二、举例注意事项总结前言 阅读本文需要一定compose基础&#xff0c;如果没有请移步Jetpack Compose入门详解&#xff08;实时更新&#xff09; 本文介绍Compose中LaunchedEffect的基本概念。根据官网教程总结&#xff0c;如有不对请在评论区指教 一…

【kotlin笔记01】kotlin之变量、数据类型、运算符、模板表达式、字符串方法、流程控制语句

这篇文章,主要介绍kotlin之变量、数据类型、运算符、模板表达式、字符串方法、流程控制语句。 目录 一、kotlin语言 1.1、kotlin介绍 1.2、kotlin入门程序 (1)入门程序 &

Kotlin从小白到大牛第3篇 【Kotlin】函数式编程视频课程-关东升-专题视频课程

Kotlin从小白到大牛第3篇 【Kotlin】函数式编程视频课程—198人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第三部分&#xff0c;主要内容包括&#xff1a;高阶函数、Lambda表达式、数组、集合、函数式编程API等课程收益读者以及观看群是零…

Android之Kotlin里使用单元测试

最近开始学习Kotlin&#xff0c;将之前的一个验证证书的题目里全部改成用Kotlin来写&#xff0c;其中有使用到单元测试&#xff0c;故在这里对Kotlin进行单元测试的配置进行记录。 首先build.gradle里添加单元测试依赖&#xff1a; apply plugin: kotlin-androidandroid {sou…

Android Studio代码联想不区分大小写的方法

Android Studio默认的代码联想是要区分大小写的 例如Bitmap&#xff0c;输入bit后并不会有提示 为了让其不区分大小写&#xff0c;可以在 File --> Setting 中进行设置 依次选择 Editor --> General --> Code Completion &#xff0c;将 Match case取消勾选即可 这个…

AndroidNDK开发——使用Cmake编译生成so文件

文章目录AndroidNDK开发——使用Cmake编译生成so文件1.添加Cmake文件&#xff1a;2.添加Cmake依赖&#xff1a;3.jni文件如下&#xff1a;4.Android.mk文件&#xff1a;5.Application.mk文件6.SerialPort.c文件&#xff1a;7.SerialPort.h文件&#xff1a;8.运行项目&#xff1…

Jackson+Feign反序列化问题排查

概述 本文记录在使用Spring Cloud微服务开发时遇到的一个反序列化问题&#xff0c;RPC/HTTP框架使用的是Feign&#xff0c;JSON序列化反序列化工具是Jackson。 问题 测试环境的ELK告警日志如下&#xff1a; - [43f42bf7] 500 Server Error for HTTP POST "/api/open/d…

kotlin判断某个字符串是否属于某个语种

Kotlin可以使用Java中的Locale类判断字符串所属的语言类型。具体步骤如下&#xff1a; 使用Locale类中的forLanguageTag方法创建一个Locale对象&#xff0c;参数为语言码&#xff0c;例如"en"表示英语&#xff0c;"zh"表示中文等等。 调用Locale对象的get…

深入解析Kotlin类与对象:构造、伴生、单例全面剖析

前言 本篇文章将带您了解Kotlin编程中的重要概念&#xff1a;类及构造函数、访问修饰符、伴生对象和单例模式。就像搭积木一样&#xff0c;我们会逐步揭开这些概念的面纱&#xff0c;让您轻松理解它们的作用和用法。无论您是编程新手还是有经验的开发者&#xff0c;本文都将为…

自定义View实战《弹幕》

自定义View实战《弹幕》 前言一、步骤讲解二、缓存优化第一步&#xff1a;使用SimplePool第二步&#xff1a;应用到弹幕View中 三、弹幕框架DanmakuFlameMaster介绍DanmakuFlameMasterDanmakuFlameMaster的使用 四、初步实现的完整代码总结 前言 前面已经学习了自定义的View《…

kotlin - 你真的了解 by lazy吗

背景 kotlin中的语法糖by lazy相信都有用过&#xff0c;但是这里面的秘密却很少有人深究下去&#xff0c;还有网上充斥着大量的文章&#xff0c;却很少能说到本质的点上&#xff0c;所以本文以字节码的视角&#xff0c;揭开by lazy的秘密。 一个例子 class LazyClassTest {v…

一文吃透 Kotlin 中眼花缭乱的函数家族

料想 Kotlin 开发者对于其庞大繁杂的函数家族必深有感触&#xff1a;包括但不限于简化函数、lambda 表达式、匿名函数、高阶函数、扩展函数、内联函数、闭包、顶层函数、局部函数、运算符重载函数等。 细看这些叫法&#xff0c;貌似用都会用。但要论其个中区别乃至实现原理&am…

Android Kotlin 基础详解

1,基础语法 1.1 可变变量与不可变变量 可以多次赋值的变量是可变变量&#xff0c;用关键字var表示&#xff1a; var <标识符> : <类型> <初始化值> 注意&#xff0c;在kotlin中成员变量不会赋默认值&#xff0c;不像java一样&#xff0c;必须手动添加默…

kotlin如何接收前端传递过来的数据

Kotlin 可以使用 Spring Boot 等框架来接收前端传递过来的数据。 在 Spring Boot 中&#xff0c;你可以使用 RequestBody 注解来将前端传递的 JSON 格式数据转换为相应的 Kotlin 对象。 示例代码&#xff1a; RestController RequestMapping("/api") class UserCo…

Gradle+组件化开发

Gradle组件化开发 Gradle一.什么是gradle&#xff1f;二.gradle优势三.project和module的关系三.project.gradle和module.gradle的区别 组件化开发一.背景二.项目结构三.组件开发代码配置四.BuildSrc组件化开发![在这里插入图片描述](https://img-blog.csdnimg.cn/bff8d7e91fd2…

Android Jetpack Compose之列表的使用

目录 概述实例解析1.实现简单的列表2.实现可滑动的菜单列表3.实现一个可滑动并且能快速滑动到指定位置的列表 总结 概述 在Android的传统View中&#xff0c;当我们需要展示大量的数据时&#xff0c;一般都会使用ListView或者是更高级的RecyclerView。在Compose中我们可以通过C…

Android Glide自定义AppCompatImageView切分成若干小格子,每个小格子onDraw绘制Bitmap,Kotlin(1)

Android Glide自定义AppCompatImageView切分成若干小格子&#xff0c;每个小格子onDraw绘制Bitmap&#xff0c;Kotlin&#xff08;1&#xff09; 垂直方向的RecyclerView&#xff0c;每行一个AppCompatImageView&#xff0c;每个AppCompatImageView被均匀切割成n个小格子&#…

iso-8859-1转中文

iso-8859-1转中文 一、问题 解析kml 文件&#xff0c;获取到的点名称是乱码 二、解决办法 new String(nextText.getBytes(StandardCharsets.ISO_8859_1), Charset.forName("gbk"));三、总结 虽然解决办法就一小串&#xff0c;但是过程却是很长的。 第一个要点&…

Grdle版本的不同导致的一些差异

gradle版本是不断迭代升级的&#xff0c;升级后对有些配置是有影响的&#xff0c;比如对kotlin配置、上传maven的方式&#xff0c;特此记录一下 对kotlin配置的影响 我们主项目的gradle版本是6.3&#xff0c;对项目进行koltin配置的语法了&#xff0c;官方文档教程是一样的 …

学习Kotlin~泛型

泛型 泛型类 泛型类的构造函数可以接受任何类型的 class MagicBox<T>(item: T) {private var subject: T item}class Boy(val name: String, val age: Int)class Dog(val weight: Int)fun main() {val box1: MagicBox<Boy> MagicBox(Boy("Jack", 20)…

学习HandlerThread

HandlerThread是一个扩展了Thread的类。也就意味着它和普通的Thread类的调用没有什么区别&#xff0c;仍然要调用start()。 如上图所示&#xff0c;扩展后的HandlerThread类有一个Looper和Handler。 关于这一块的知识可以参考一下《关于Handler我们应该知道的知识》 HandlerTh…

【kotlin笔记06】kotlin之泛型、泛型类、泛型接口、泛型方法、泛型的约束、泛型通配符

这篇文章,主要介绍kotlin之泛型、泛型类、泛型接口、泛型方法、泛型的约束、泛型通配符。 目录 一、kotlin笔记 1.1、什么是泛型 1.2、泛型类 (1)定义泛型类

Kotlin协程:Flow的异常处理

示例代码如下&#xff1a;launch(Dispatchers.Main) {// 第一部分flow {emit(1)throw NullPointerException("e")}.catch {Log.d("liduo", "onCreate1: $it")}.collect {Log.d("liudo", "onCreate2: $it")}// 第二部分flow …

Android开发面试:Kotlin面试知识答案精解

目录 Kotlin Kotlin 什么是Kotlin&#xff1a;目标&#xff08;更好的Java&#xff09;、编程方式&#xff08;面向对象命令式编程函数式编程(Scala有包括宏)&#xff09;、一些改良&#xff08;单例模式&#xff0c;data数据类&#xff0c;NPE&#xff0c;可变性&#xff0c…

Kotlin笔记11-类型检查和转换'is' and 'as'

在运行时可以通过 is 和 !is 来检测一对象的类型。 智能的类型转换 Smart Casts 在很多情况下&#xff0c;我们不需要在kotlin中显示地使用类型转换操作&#xff0c;因为编译器会追踪 is 检查和显示的类型转换&#xff0c;并会自动为不可变类型的值进行类型转换&#xff0c;如…

Kotlin协程和在Android中的使用总结(六 通道Channel)

Channel Deferred对象提供了一种在协程间传递值的简便方式&#xff0c;Channel就是用于在协程间传递一个stream的值流。 Channel有点类似于BlockingQueue&#xff0c;不同的是&#xff0c;BlockingQueue的put 和take 操作都是阻塞式的&#xff0c;而Channel的send和receive都…

Kotlin语法学习

基础语法 基本函数定义 // 函数定义// 方式一// 基本语法&#xff1a;// 参数 -》 变量名:类型// 返回值类型 定义在方法后面 Int类型fun sum(a:Int, b:Int) : Int {return ab;}// 方式二fun sum2(a:Int, b:Int) : Int ab// 返回类型可以不具体声明&#xff0c;即fun sum1(a…

kotlin常用表达式let,?:,as?,?.,!!

kotlin常用表达式let&#xff0c;?:&#xff0c;as?&#xff0c;?.&#xff0c;!! let a?.let{it} 当a为null时&#xff0c;什么都不执行 当a不为null时,执行大括号里的语句&#xff08;it肯定不为null&#xff09; object.let{ it.todo() //函数内使用it替代object对象访问…

【Kotlin】标准函数和静态方法

文章目录 标准函数withrunApply定义静态方法注解顶层方法标准函数 with with 的作用是可以在连续调用同一对象的多个方法时让代码变得更加精简 val result = with(obj){//这里是obj的上下文"value" //with 函数的返回值 }看个例子,例如有一个水果列表,现在我们想…

移动应用架构设计:如何转变开发流程

移动应用架构设计&#xff1a;如何转变开发流程 2023 年掌握移动应用程序架构的指南&#xff08;附案例研究&#xff09; 如果他们要解决这个问题&#xff0c;开发人员需要了解移动架构设计的最佳实践&#xff0c;使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…

kotlin基础知识复习

kotlin基础知识复习range 范围 从哪里 到哪里Double转Int与类型初始化尽量使用内联函数inlineList和set集合防止空指针和数据获取list去重Mapfield 关键字学习防范竞太条件构造函数运算符重载枚举泛型复习泛型约束中缀表达式重命名了解KT的变换函数KT单例类似java的双重校验效果…

【Kotlin】坦克大战11:打包游戏

把原来的build.gradle重命名为a.tmp新建build.gradle.kts文件 双击Shift&#xff0c;输入kotlin&#xff0c;选择列表中的Configure Kotlin in Project&#xff0c;等… 还需要修改一些东西&#xff0c;参照之前的build.gradle引入游戏引擎&#xff0c;还需要指定启动页面&am…

【Kotlin】坦克大战10:游戏结束

销毁后特效 销毁后显示特效&#xff0c;所以在Destroyable中增加一个showDestroy()方法 interface Destroyable : View {//判断是否销毁了fun isDestroyed(): Boolean//挂掉的效果fun showDestroy():Array<View>?{return null} }爆照效果 Camp中重写这个方法 overri…

【Kotlin】坦克大战8:敌方坦克发射

文章目录敌方坦克发射双方坦克互相伤害敌方坦克销毁敌方坦克发射 创建AutoShot /*** 自动射击的能力*/ interface AutoShot {//自动射击的功能fun autoShot(): View? }Enemy实现这个接口&#xff0c;重写autoShot方法&#xff08;Tank中有相同代码&#xff0c;抄一抄&#x…

【Kotlin】坦克大战6:攻和受

文章目录检测子弹和砖墙的碰撞碰撞后子弹消失墙受到攻击后损失爆炸物显示检测子弹和砖墙的碰撞 不要乱想了。开始写代码 创建两个接口Attackable、Sufferable /*** 攻击的能力*/ interface Attackable : View {//判断是否碰撞fun isCollision(suffer:Sufferable):Boolean//通…

【Kotlin】坦克大战5:让子弹飞

文章目录让子弹飞界面中元素的回收让子弹飞 子弹飞是一种能力&#xff0c;新建AutoMoveable接口 /*** 自动移动的能力*/ interface AutoMoveable : View {//方向val currentDirection:Direction//速度val speed:Intfun autoMove() }让子弹实现这个接口 class Bullet(overrid…

Kotlin let run with apply also 关键字

Kotlin let run with apply also 关键字 参考官网学习资料 https://play.kotlinlang.org/byExample/06_scope_functions/ 一、 let Kotlin 标准库函数 let 可用于范围界定和空检查。当在对象上调用时&#xff0c;let 执行给定的代码块并返回其最后一个表达式的结果。该对象可…

Kotlin反射

1、反射的概念 反射是允许程序在运行时访问程序结构的一类特性。 程序结构&#xff1a;类、属性、方法、接口等语法特性 反射的依赖&#xff1a;Java的JDK中本身就包含反射API&#xff0c;而Kotlin则是又做了一套。 所以使用Kotlin的反射时&#xff0c;需要引入依赖 implem…

【kotlin】数据类型和变量

文章目录常见数据类型智能类型推断显示类型声明数字和字符串常量与变量验证取值范围好的编程习惯常见数据类型 电脑定义出来了各种数据类型来节省存储空间 栗子1 var name "王力宏"; println(name);查看控制台输出 智能类型推断 我们看到 Eclipse 有报错&#x…

目前的Android 市场怎么样?还好吗?

如今&#xff0c;随着互联网和移动设备的普及&#xff0c;Android 系统已成为全球最大的移动操作系统之一&#xff0c;成为最受欢迎的应用程序开发平台之一。作为一名 Android 开发者&#xff0c;我们生活中的大部分应用程序都是基于 Android 平台开发的&#xff0c;而我们的工…

Kotlin总结汇总

一、字符串查找 字符串查找功能在实际开发中&#xff0c;只会用到几个简单的函数&#xff0c;这里我只说明几个常用的。 1.1、获取第一个元素 主要包含first() | firstOrNull()和first{} | firstOrNull{}四个函数 first() | firstOrNull() 作用 &#xff1a;查找字符串的第一…

Android - Kotlin 协程Global.launch函数

一、简介 那么什么是协程呢&#xff1f;它其实和线程是有点类似的&#xff0c;可以简单地将它理解成一种轻量级的线程。 要知道&#xff0c;我们之前所学习的线程是非常重量级的&#xff0c;它需要依靠操作系统的调度才能实现不同线 程之间的切换。而使用协程却可以仅在编程语…

Android路由ARoute使用

一、先导入ARoute,这里分为两种情况&#xff0c;java和kotlin 在module(或library)中的build.gradle添加如下代码 java配置 android {defaultConfig {//java路由配置javaCompileOptions {annotationProcessorOptions {arguments [AROUTER_MODULE_NAME: project.getName()]}}…

原来你是这样的AAC——Lifecycle的使用及原理

为什么要用Lifecyle Android开发中&#xff0c;我们经常需要在功能组件中感知到对应宿主&#xff08;Activity&#xff0c;Fragment&#xff09;的生命周期的变化&#xff0c;例如当Activity可见时&#xff0c;在presenter对象中刷新数据&#xff0c;销毁时释放某些资源等等 …

Hilt使用小结

Hilt是什么&#xff1f; Hilt是Google工程师找到Dagger2团队专门为Android定制的依赖注入框架&#xff0c;相对于Dagger2&#xff0c;Hilt使用起来更加简单&#xff0c;不需要创建各种Component类&#xff1b;使用依赖注入框架可以让我们的对代码进行解耦&#xff0c;减少代码…

kotlin/java混合开发接入ARouter遇到的问题Compiler An exception is encountered, [These no module name, at ‘build.

报错信息&#xff1a; ARouter::Compiler An exception is encountered, [These no module name, at build.gradle, like :android {defaultConfig {...javaCompileOptions {annotationProcessorOptions {arguments [AROUTER_MODULE_NAME: project.getName()]}}}}]Execution …

移动端架构师都需要具备怎样的技术栈和能力

移动端架构师都需要具备怎样的技术栈和能力 主要的能力 技术深度 技术广度 动手能力: 比如说造轮子的能力, UI(高级自定义UI, 通用UI组件库), LibrarySDK(通用基础库, 项目框架/架构) 经验丰富 辅助的能力 领导力 沟通能力 洞察与前瞻 赋能业务 技术栈 T字形技术栈语言语言高…

[Android Material Design]组件13 - CollapsingToolbarLayout

文章目录效果图关键代码源码地址效果图 CollapsingToolbarLayout折叠式工具栏布局可以很好的重复使用布局&#xff0c;下拉时展示图片&#xff0c;上划时折叠图显示工具栏标题&#xff0c;大大提高了布局使用率。 关键代码 class MainActivity : AppCompatActivity() {overri…

《Kotlin从零到精通Android开发》欧阳燊

1.开发环境&#xff0c;2.数据类型&#xff0c;3.控制语句&#xff0c;4.函数运用&#xff0c;5.类和对象 目录第一章 搭建Kotlin开发环境1.5.1 Kotlin代码和Java代码PK1.5.2 Anko库1.5.3 Lambda表达式第二章 数据类型2.1 简单变量之间的转换2.2 数组变量的声明2.3 字符串2.4 容…

Kotlin高级协程

Kotlin高级协程 一.前言二.先从线程说起三.协程的设计思想四.协程特点&#xff1a;优雅的实现移步任务五.协程基本使用六.协程和线程相比有什么特点&#xff0c;如何优雅的实现异步任务 一.前言 在文章正式上干货之前&#xff0c;先说一点背景吧&#xff1b;我是 Kotlin 协程官…

Kotlin语言基础入门到熟悉 | Kotlin 扩展函数

什么是扩展函数&#xff1f; 不改变原有类的情况下&#xff0c;扩展新的功能。 对于Java来说&#xff0c;扩展函数这一特性是没有的&#xff0c;但是Java中还是具体相同功能的特性&#xff0c;比如说继承&#xff0c;设计模式中的装饰模式。就功能来说&#xff0c;Kotlin中的…

Android如何成功进阶,全面总结最新Android中高级面试知识点

前言 随着Android技术发展的成熟&#xff0c;Kotlin、大前端技术Flutter、RN、小程序等一下子就进入了我们的视野内&#xff0c;同时&#xff0c;Android自身的技术栈也正在不断扩展&#xff0c;比如大热的Jetpack。 因此&#xff0c;Android开发者们越来越焦虑&#xff0c;越…

2022年 Android 面试题(四大组件、UI、性能调优、kotlin....),在这凛冽的“ 寒冬 “里,砥砺前行

近十几年来&#xff0c;随着以 Android 系统为代表的智能手机普及与发展&#xff0c;互联网行业早已进入“移动”的时代。但是现如今整个移动互联网行业正处于增量下降、存量厮杀的阶段。 在如此的大环境下&#xff0c;整个行业头部企业&#xff0c;越来越重视产品的体验与成本…

Android Jetpack 知识点强化实战(实现登录页面、APP主框架、网络数据请求、Kotlin Flow项目实战....)

JetPack 是什么&#xff1f; 2018年⾕歌 I/O 发布了⼀系列辅助 Android 开发者的实⽤⼯具&#xff0c;合称 Jetpack。以帮助开发者构建出⾊的 Android 应⽤。 Jetpack 是⼀套库、⼯具和指南&#xff0c;可帮助开发者更轻松地编写优质应⽤。这些组件可帮助你遵循最佳做法、让你摆…

Android RecyclerView AsyncListUtil手动刷新fillData,kotlin

Android RecyclerView AsyncListUtil手动刷新fillData&#xff0c;kotlin implementation com.github.bumptech.glide:glide:4.15.1implementation androidx.constraintlayout:constraintlayout:1.1.3 import android.os.Bundle import android.util.Log import android.view.V…

2023 Android开发者路线-第一部分

2023 Android开发者路线-第一部分 Android 生态系统处于不断发展的状态&#xff1a;每天都会引入新的库和资料&#xff0c;旨在加快开发速度并让我们作为开发人员的生活更轻松。 在这个由多个部分组成的系列中&#xff0c;您将按照我们的2023 年 Android 开发者路线图了解有关…

Kotlin和Java相比有什么优点?Koltin全家桶学习资料领取

最近在学Kotlin&#xff0c;虽然还没有像其他博主一样立马就爱上它.但是不得不说&#xff0c;Kotlin对比起Java还是有不少优势&#xff1a; 代码简洁。相比较于Java代码&#xff0c;Kotlin大量使用了高阶函数和lambda语法保证在较少的代码下实现同等的功能。非空判断。在Java中…

java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()‘ is inaccessible

问题&#xff1a; java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()’ is inaccessible to class androidx.recyclerview.widget.RecyclerView java.lang.IllegalAccessError: Method boolean android.view.View.awakenScrollBars() is i…

2022.10.30-本周问题记录

一个项目里多个provider冲突&#xff0c;导致运行报错。 首先自定义provider class JsFileProvider : FileProvider() { }然后在清单文件中声明 <providerandroid:name".JsFileProvider"android:authorities"${applicationId}.bridge.fileprovider"and…

Android中使用kotlin进行xutils数据库版本升级

Android中使用kotlin进行xutils数据库版本升级 前言 最近的项目是一个很老的项目&#xff0c;数据库采用的是xutils中的数据库&#xff0c;之前的业务没有关于版本变更和数据库修改的业务&#xff0c;这次新需求数据库需要新加一张表&#xff0c;之前的表也需要修改字段&…

Android 源码 AOSP版本– 下载[Ubuntu ]

Android 源码 AOSP版本– 下载[Ubuntu ] 前言配置下载源码前言 Android系统作为一个庞大的开源项目,除了一些谷歌自带服务之外,其他所有代码均以AOSP(Android Open Source Project)的形式开源。对于框架开发者来说,熟悉AOSP是必不可少的知识。即使是普通开发者,为了优化…

android 键盘偶现收起之后又弹出

现象&#xff1a;应用首次安装&#xff0c;点击搜索。弹起键盘。退出应用&#xff0c;键盘收起又弹出 fun hideSoftKeyboard(editText: EditText?) {if (editText ! null) {val imm editText.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManageri…

Kotlin 是什么?

Kotlin是JetBrains开发的针对JVM、Android 和浏览器的静态编程语言。 JetBrains&#xff0c;作为目前广受欢迎的 Java IDE IntelliJ IDEA 的开发商&#xff0c;在 Apache 许可下已经开源其Kotlin 编程语言。JetBrains 作为最智能的 Java IDE 的开发商&#xff0c;对 Java 的了解…

LiveData 「粘性事件」问题

问题描述 dialog里监听了liveData数据变化&#xff0c;当dialog打开关闭再次打开时候&#xff0c;会发现旧数据会再次灌入。等到网络请求回来&#xff0c;新数据才会展示。 现象 页面首先展示老数据&#xff0c;过一会又展示新的数据。又称为数据倒灌。 解决方案 使用Live…

Kotlin dp sp

*** 正常编码中一般只会用到 [dp]/[sp] ;* 其中[dp]/[sp] 会根据系统分辨率将输入的dp/sp值转换为对应的px*/ val Float.dp: Float // [xxhdpi](360 -> 1080)get() android.util.TypedValue.applyDimension(android.util.TypedValue.COMPLEX_UNIT_DIP, thi…

Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(上))

文章目录0 Collection和SequenceCollection的特性Sequence的特性1 suspend function2 Flowflow的延迟计算flow的取消flow builders构建器中间操作符 intermediate operatorTransform operatorSize-limiting operators末端操作符Terminal flow operatorsFlow context缓冲Bufferi…

【Kotlin】扩展函数 ② ( 扩展属性 | 为可空类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )

文章目录一、扩展属性二、可空类扩展三、使用 infix 关键字修饰单个参数扩展函数的简略写法一、扩展属性 上一篇博客 【Kotlin】扩展函数 ( 扩展函数简介 | 为 Any 超类定义扩展函数 | private 私有扩展函数 | 泛型扩展函数 | 标准函数 let 函数是泛型扩展函数 ) 中 , 介绍了给…

Kotlin协程和在Android中的使用总结(四 协程和Retrofit、Room、WorkManager结合使用)

文章目录0 设计一个全新Android app架构的思考1 Coroutines in Room & Retrofit2 在高阶函数中使用协程3 将协程和WorkManager结合使用4 关于协程取消和超时的处理Timeout超时控制5 关于测试用例的编写0 设计一个全新Android app架构的思考 以前有看到过这样的一些文章&am…

kotlin学习教程

kotlin的方法 可以直接调用 不用 new? 2.kotlin关于字符串 用 $拼接变量 3.kotlin 类 方法 变量 可以同级的&#xff0c;同级的 方法 和 变量(常量) 是 生成了 一个新的 xxxKt.class &#xff0c;并且都是 static的&#xff0c; 4.kotlin的类&#xff0c;方法&#xff0c;默认…

Android中线程池

Android中线程池 文章目录 Android中线程池线程池的优点ThreadPoolExecutor1.corePoolSize2.maximumPoolSize3.keepAliveTime4.unit5.workQueue5.1阻塞队列简介5.2常见的阻塞场景 6.ThreadFactory 线程池的工作流程线程池的分类1.FixedThreadPool1.1FixedThreadPool的操作 2.Ca…

用Kotlin封装一个自定义SpannableString

参考自&#xff1a;https://github.com/jaychang0917/SimpleText 使用Kotlin进行了改写&#xff0c;保留了大部分功能&#xff0c;现不支持点击时的文字颜色和背景色&#xff08;感觉用到的场景不多&#xff0c;所以就没加&#xff09; Github上有更详细介绍 &#xff1a;htt…

常用的kotlin扩展函数

官方&#xff1a; https://developer.android.com/kotlin/ktx/extensions-list import android.app.Activity import androidx.fragment.app.Fragment import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import androi…

Kotlin系列之let、with、run、apply、also函数的使用

转载自&#xff1a;https://blog.csdn.net/u013064109/article/details/78786646 原博主有个Kotlin开发者联盟的微信公众号&#xff0c;在文章末尾&#xff0c;会经常推送Kotlin干货 ,大家可以扫码关注。 标签&#xff1a; Kotlin 常用技巧 目录: 一、回调函数的Kotin的…

Kotlin中数组和集合的使用

在 Kotlin 中&#xff0c;数组和集合是用于存储多个元素的数据结构。这里我们会详细介绍 Kotlin 中数组和集合的用法。 1.数组&#xff08;Array&#xff09; 创建数组&#xff1a; 在 Kotlin 中&#xff0c;可以使用 arrayOf() 函数创建数组。例如&#xff1a; val arr a…

Kotlin学习 - 运算符重载

在Java中&#xff0c;运算符基本是用于数字的计算&#xff1a; - * / % –。在Kotlin中通过对运算符进行重载&#xff0c;允许任意两个对象进行相加&#xff0c;或者是进行更多其他的运算操作。 1、语法结构 class Obj {operator fun plus(obj: Obj): Obj { // 处理相加的逻…

用ChatGPT提高开发效率(Andoid)

一、前言 我们问了10个问题&#xff0c;开发的、生活中有疑问的&#xff0c;ChartGPT都给了我们答案。这些答案怎么样&#xff0c;请往下看吧。 ChatGPT-1、写一个车牌号的正则表达式ChatGPT-2、写一个中国大陆车牌号的正则表达式ChatGPT-3、用kotlin写一个车牌号的校验函数C…

Android App的几个核心概念

Application启动 点击桌面图标启动App(如下流程图) 针对以上流程图示&#xff1a; ActivityManagerService#startProcessLocked()Process#start()ActivityThread#main()&#xff0c;入口分析的地方ActivityThread#attach()&#xff0c;这个里面的逻辑很核心 ActivityManagerS…

Kotlin习惯用法

参考 https://www.kotlincn.net/docs/reference/idioms.html 文章目录创建 DTOs&#xff08;POJOs/POCOs&#xff09;函数的默认参数过滤 list检测元素是否存在于集合中字符串内插类型判断遍历 map/pair型list只读 list只读 map访问 map延迟属性扩展函数创建单例If not null 缩…

【第三阶段】kotlin语言的split

const val INFO"kotlin,java,c,c#" fun main() {//list自动类型推断成listList<String>val listINFO.split(",")//直接输出list集合&#xff0c;不解构println("直接输出list的集合元素&#xff1a;$list")//类比c有解构&#xff0c;ktoli…

问题:module was compiled with an incompatible version of kotlin

module was compiled with an incompatible version of kotlin 简要说明 不同模块使用不一致的kotlin版本编译&#xff0c;导致最后merge的时候版本冲突出错了 解决方案 临时解决 build->rebuild project 永久解决 项目不使用kotlin&#xff0c;关闭插件kotlin enable-…

Kotlin的Map

在 Kotlin 中&#xff0c;Map 是一种键值对的集合数据结构&#xff0c;用于存储一组关联的键和值。Kotlin 标准库提供了 Map 接口和多种实现类&#xff0c;使得操作和处理键值对数据更加方便。下面详细描述 Kotlin 的 Map 的用法&#xff1a; 创建 Map&#xff1a; Kotlin 提供…

kotlin获取输入

在 Kotlin 中&#xff0c;获取用户输入可以通过标准库中的 readLine() 函数来实现。这个函数允许你从控制台读取用户输入的文本&#xff0c;并将其作为字符串返回。下面是获取用户输入的详细步骤&#xff1a; 1. 使用 readLine() 函数获取用户输入 fun main() {println("…

Android出现Could not resolve all files for configuration ‘:app:releaseRuntimeClasspath‘.的解决方法

Android出现Could not resolve all files for configuration ‘:app:releaseRuntimeClasspath’.的解决方法 将build.gradle里的 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"改为 implementation "org.jetbrains.kotlin:kotl…

代理proxy - JavaKotlin

代理模式是给某一个对象提供代理对象&#xff0c;并有代理对象控制对原对象的引用。 目的&#xff1a; 1&#xff09;通过引入代理对象的方式&#xff0c;来间接访问目标对象&#xff0c;防止直接访问目标对象给系统带来的不必要复杂性&#xff1b; 2&#xff09;通过代…

kotlin的集合

在 Kotlin 中&#xff0c;Set 是一种集合数据结构&#xff0c;用于存储一组唯一的元素&#xff0c;不包含重复项。Kotlin 的标准库提供了 Set 接口和多种实现类&#xff0c;使得操作和处理集合元素更加方便。下面详细描述 Kotlin Set 的用法&#xff1a; 创建 Set&#xff1a;…

Kotlin Lambda和高阶函数

Lambda和高阶函数 本文链接&#xff1a; 文章目录 Lambda和高阶函数 lambda输出&#xff08;返回类型&#xff09;深入探究泛型 inline原理探究 高阶函数集合、泛型自己实现Kotlin内置函数 扩展函数原理companion object 原理 > 静态内部类函数式编程 lambda 1、lambda的由…

Jetpack 中的 databinding - 使用篇

什么叫databinding 数据绑定库是一种支持库&#xff0c;借助该库&#xff0c;您可以使用声明性格式&#xff08;而非程序化地&#xff09;将布局中的界面组件绑定到应用中的数据源。使用数据绑定可以简化 findViewById 。 如何使用 应用模块下 build.gradle 文件中添加 data…

Android录制video并抽取第一帧图片

一、申请权限 //摄像头权限 <uses-permission android:name"android.permission.CAMERA" /> //文件存储权限 <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /> //录制权限 <uses-permission android:name&qu…

android 申请电池优化,自启动,无障碍权限

代码仅用于自己记忆,都是实际跑过的 /*** 引导开通-无障碍服务 可以跳转到系统的无障碍功能,并高亮自己的app*/fun gotoAccessibilitySetting(context: Context) {val EXTRA_FRAGMENT_ARG_KEY ":settings:fragment_args_key";val EXTRA_SHOW_FRAGMENT_ARGUMENTS &q…

Kotlin开发笔记:集合和逆变协变

Kotlin开发笔记&#xff1a;集合和逆变协变 Kotlin中的集合 基本的集合类型 Kotlin中的集合类型和Java差不多&#xff0c;不过有些在名称上可能有出入&#xff0c;下面是Kotlin中的一些基本集合类型&#xff1a; 类型介绍Pair两个值的元组Triple三个值的元组Array经过索引的…

Kotlin协程runBlocking并发launch,Semaphore同步1个launch任务运行

Kotlin协程runBlocking并发launch&#xff0c;Semaphore同步1个launch任务运行 <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.7.3</version><type>pom&…

Android 标准语音识别框架:SpeechRecognizer 的封装和调用

前言 此前&#xff0c;笔者梳理了语音相关的两篇文章&#xff1a; 如何打造车载语音交互&#xff1a;Google Voice Interaction 给你答案&#xff1a;介绍的是 3rd Party App 如何通过 Voice Interaction API 快速调用系统的语音交互服务快速完成确认、选择的基础语音对话直面…

学习心得05:Kotlin

有多少种编程语言&#xff1f;不知道。那么中国人贡献了几种&#xff1f;好像一种也没有。这就奇怪了。为什么&#xff1f; 安卓APP的编程语言&#xff0c;本来是JAVA。某年开始鼓励大家使用Kotlin。这几天简单了解了一下&#xff1a; Kotlin编译结果跟JAVA一样。其实解释型语…

Kotlin AQ

如何学习kotlin? 学习Kotlin的步骤如下&#xff1a; 1. 理解Kotlin的基础&#xff1a;首先&#xff0c;你需要理解Kotlin的基础知识&#xff0c;包括变量、数据类型、运算符、控制流等。你可以通过阅读Kotlin的官方文档或者其他在线教程来学习。 2. 实践编程&#xff1a;理论…

Kotlin开发笔记:协程基础

Kotlin开发笔记&#xff1a;协程基础 导语 本章内容与书的第十五章相关&#xff0c;主要介绍与协程相关的知识。总的来说&#xff0c;本文将会介绍Kotlin中关于异步编程的内容&#xff0c;主要就是与协程有关。在Kotlin中协程是利用continuations数据结构构建的&#xff0c;用…

Kotlin判断null比较let布尔值Boolean

Kotlin判断null比较let布尔值Boolean class MyData {val count: Int? 2023val number: Int? null }fun main(args: Array<String>) {val data MyData()val year 2022if (data.count ! null) {if (data.count > year) {println("data.count ! null")}}…

Android 裁剪 几何变换

canvas.clipRect(left , top ,right,bottom) 裁切函数 canvas.clipPath() // 切割图形 clipOutRect / clipOutPath 切出,切出的是不需要的 clipPath(path) 切出来会有毛边 锯齿,会把指定范围的显示出来,其他的不显示,按像素px进行裁切 如果需要精细显示 可以使用xfermode c…

Kotlin协程简述与上下文和调度器(Dispatchers )

协程概述 子程序或者称为函数&#xff0c;在所有的语言中都是层级调用&#xff0c;如&#xff1a;A调用B&#xff0c;B在执行过程中又调用了C&#xff0c;C执行完毕返回&#xff0c;B执行完毕返回&#xff0c;最后是A执行完毕。所以子程序是 通过栈来实现的&#xff0c;一个线…

【Jetpack】Navigation 导航组件 ⑤ ( NavigationUI 类使用 )

文章目录 一、NavigationUI 类简介二、NavigationUI 类使用流程1、创建 Fragment2、创建 NavigationGraph3、Activity 导入 NavHostFragment4、创建菜单5、Activity 界面开发 NavigationUI 的主要逻辑 ( 重点 )a、添加 Fragment 布局b、处理 Navigation 导航逻辑 ( 重点 )c、启…

Kotlin的内置函数 apply、let、run、with、also

let 1.let函数返回类型&#xff0c;是根据匿名函数的最后一行变化而变化 2.let函数中的匿名函数里面持有的是it 集合自身 fun main() {var num1 1var num2 1var result:Intresult num1 num2var str result?.let {//传入本身&#xff0c;it指代本身即result,result不为空…

Kotlin入门1. 语法基础

Kotlin入门1. 语法基础 一、简介二、在Idea创建一个示例项目三、基本语法1. 第一个程序2. 基本数据类型(1) 数字(2) 类型转换(3) 数学运算位运算 &#xff08;4&#xff09;可空类型 3. 函数4. 字符串(1) 字符串拼接(2) 字符串查找(3) 字符串替换(4) 字符串分割 5. null 安全的…

Room的基本使用

参考&#xff1a;jetpack之Room数据库 目录 引言一、基本使用1. 导入相关引用2. 建表Entity3. 数据库操作类Dao4. 数据库RoomDatabase5. 简单使用 二、ViewModel LiveData Room 的结合开发1. 建表Entity2. 数据库操作类Dao3. 数据库RoomDatabase4. 仓库Repository5. ViewMode…

Kotlin inline、noinline、crossinline 深入解析

主要内容&#xff1a; inline 高价函数的原理分析Non-local returns noinlinecrossinline inline 如果有C语言基础的&#xff0c;inline 修饰一个函数表示该函数是一个内联函数。编译时&#xff0c;编译器会将内联函数的函数体拷贝到调用的地方。我们先看下在一个普通的 kot…

Kotlin语言基础(一)Kotlin语言特性

Kotlin语言概述&#xff08;一&#xff09;- 语言特性 Kotlin是一种高级强类型语言&#xff0c;可以在Java VM上运行。 它具有如下特性&#xff1a; 1.代码简洁&#xff0c;代码量少&#xff0c;易学易懂。 例如&#xff1a; /*** 定义数据类Student* property id String 学…

用Kotlin封装一个Android中View的BackgroundDrawableBuilder

参考自&#xff1a;https://github.com/jaychang0917/SimpleText 一个自定义的TextView&#xff0c;对background的设置进行了简单封装。同时包含了一个ShapeBuilder&#xff0c;可以用于设置给所有View添加背景 简化View的background创建&#xff0c;支持在xml和代码中设置…

【Kotlin】可见性修饰符详解

Java中有public、private、protected和default (什么都不 写)这4种函数可见性修饰符。Kotlin 中也有4种&#xff0c;分别是public、private、 protected 和internal&#xff0c;需要使用哪种修饰符时&#xff0c;直接定义在fun关键字的前面即可。下面详细介绍一下 Java和Kotlin…

【Kotlin】增量更新

接下来的栗子在AS中进行。使用 Kotlin 进行 Android 开发 引入Anko 创建新kotlin项目SmartAppUpdate&#xff0c;首先我们引入Anko。Github地址 首先app/build.gradle引入 implementation "org.jetbrains.anko:anko:$anko_version"然后项目下的build.gradle的bui…

【Kotlin】坦克大战3:移动和碰撞检测

文章目录移动碰撞检测实现碰撞逻辑移动 在接口中val&#xff0c;在实现的时候可以var 当按下WSAD这四个键时&#xff0c;坦克向上下左右移动&#xff0c;我们重写GameWindow的onKeyPressed方法 override fun onKeyPressed(event: KeyEvent) {//用户操作时when(event.code){K…

【kotlin】接口和抽象类

我们来定义一个接口&#xff0c;new一个Kotlin Interface&#xff0c;名字为IMan interface IMan {fun joyride() }然后新建一个Man类&#xff0c;实现刚才的IMan接口 class Man:IMan {override fun joyride(){println("我在飙车")} }编写测试代码 fun main(args:…

Kotlin 非对称加密RSA

非对称加密简介&#xff1a; 常用算法&#xff1a;RSA秘钥对&#xff1a;公钥和私钥&#xff0c;必须由系统生成公钥加密&#xff0c;私钥解密&#xff1b;私钥加密&#xff0c;公钥解密公钥互换&#xff1a;两个组织或者个人互相交换公钥加密速度慢 私钥和公钥加密 /*** 非…

Kotlin加密算法实战1

文章目录1 ASCII编码2 凯撒加密3 Byte和bit1 ASCII编码 //获取字符ascii编码val c aval value: Int c.toInt()println(value)//获取字符串asciival str "I love you"//遍历获取每一个字符的ascii编码val array str.toCharArray()for (ch in array) { // p…

Kotlin基础语法之 ==和===的区别

参考&#xff1a; https://blog.csdn.net/c1392851600/article/details/80571969 https://www.kotlincn.net/docs/reference/basic-types.html#%E8%A1%A8%E7%A4%BA%E6%96%B9%E5%BC%8F kotlin中 比较的是数值是否相等, 而 比较的是两个对象的地址是否相等 val a: Int 999v…

【第四阶段】kotlin语言的构造函数学习

1.主构造函数 package Kotlin.Stage4 //主构造函数&#xff0c;规范来说&#xff0c;都是增加_xxx的形式&#xff0c;临时的输入类型&#xff0c;不能直接用。需要接收下来&#xff0c;成为变量才能用。 class TestBase(_name:String,_sex:Char,_age:Int,_info:String){ //主…

Kotlin Executors线程池newSingleThreadExecutor单线程

Kotlin Executors线程池newSingleThreadExecutor单线程 import java.util.concurrent.Executorsfun main() {val mExecutorService Executors.newSingleThreadExecutor()for (i in 1..5) {mExecutorService.execute {println("seq-$i tid:${Thread.currentThread().threa…

kotlin的集合使用maxBy函数报NoSuchElementException

kotlin设定函数 fun test() {listOf<Int>().maxBy { it } } 查看java实现

Android修行手册 - Activity 在 Java 和 Kotlin 中怎么写构造参数

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

【Kotlin精简】第2章 集合

1 简介 在 Kotlin 中集合主要分为可变集合与只读集合&#xff0c;其中可变集合使用 “Mutable” 前缀 集合类名表示&#xff0c;比如 MutableList、MutableSet、MutableMap 等。而对于只读集合就是和 Java 中集合类名是一致。 Java 中的 List 非 Kotlin 中的 List , 因为 Kot…

Android kotlin内联函数(inline)的详解与原理

一、介绍 在kotlin中&#xff0c;有一种函数叫内联函数&#xff0c;这种函数标识符是inline&#xff0c;但是好多人对这个函数的理解只停留在八股文中&#xff0c;内容函数的用法和普通函数没有区别&#xff0c;但是在编译原理上是有&#xff0c;对程序的性能有一定的影响。 二…

android 将TextView中的文字变色

这里是将TextView中的一个单词变色, text是原文, changeColorText是想要变色的单词 fun TextView.setTextChangeColor(text: String, changeColorText: String) {val spannableString SpannableString(text)// 获取要变色的文字的起始和结束位置val start text.indexOf(cha…

【Android】点击短信链接唤起APP的方案实践

一.概述 在很多业务场景中&#xff0c;需要点击短信链接跳转到App的指定页面。在Android系统中&#xff0c;想要实现这个功能&#xff0c;可以通过DeepLink或AppLink实现。 二.方案 1.DeepLink DeepLink是Android系统最基础、最普遍、最广泛的外部唤起App的方式&#xff0c;不…

音视频开发岗位,2023年为何持续增加?如何应聘音视频岗位

随着基础设施的完善&#xff08;光纤入户、wifi覆盖、5G普及&#xff09;&#xff0c;加之2020年疫情的影响&#xff0c;将短视频、直播、视频会议、在线教育、在线医疗瞬间推到了顶峰&#xff0c;人们对音视频的需求和要求也越来越强烈。音视频开发是指利用计算机技术和相关编…

Kotlin笔记(二):标准函数,静态方法,延迟初始化,密封类

1. 标准函数 Kotlin的标准函数指的是Standard.kt文件中定义的函数&#xff0c;任何Kotlin代码都可以自由地调用所有的标准函数. 前面用到的let函数就算一个标准函数&#xff0c;它的主要作用就是配合?.操作符来进行辅助判空处理. 1.1 with函数 with函数接收两个参数&#xff…

Kotlin vs Java:为什么Springboot官方教程选择了Kotlin?

导语 作为Java开发者的你&#xff0c;是否在为寻找Java的替代品而烦恼&#xff1f;担心受知识产权问题困扰&#xff1f;别担心&#xff0c;Kotlin来了&#xff01;它是你的救星&#xff0c;也是Springboot官网教程的选择。想知道为什么吗&#xff1f;那就往下翻吧&#xff01;…

Kotlin 协程再探之为什么使用协程反而更慢了?

前言 在几个月前&#xff0c;我曾经写了一篇文章&#xff0c;Kotlin 协程中的并发问题&#xff1a;我明明用 mutex 上锁了&#xff0c;为什么没有用&#xff1f;&#xff0c;讲述在某次 debug 某个问题时&#xff0c;发现同事写的 Koltin 协程某个不恰当的地方&#xff0c;并最…

Android kotlin系列讲解(入门篇)使用Intent在Activity之间穿梭

<<返回总目录 上一篇:Android kotlin系列讲解(入门篇)Activity的理解与基本用法 文章目录 1、使用显式Intent2、使用隐式Intent3、更多隐式Intent的用法4、向下一个Activity传递数据5、返回数据给上一个Activity1、使用显式Intent 你应该已经对创建Activity的流程比较…

Kotlin 使用 View Binding

解决的问题&#xff1a; 《第一行代码——Android》第三版 郭霖 P277 视图绑定的问题 描述&#xff1a; kotlin-android-extensions 插件已经弃用 butter knife 已经弃用 解决办法 推荐使用 View Binding 来代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

Compose Desktop 使用中的几个问题(分平台加载资源、编写Gradle 任务下载平台资源、桌面特有组件、鼠标键盘事件)

前言 在我之前的文章 Compose For Desktop 实践&#xff1a;使用 Compose-jb 做一个时间水印助手 中&#xff0c;我们使用 Compose For Desktop 写了一个用于读取照片 EXIF 中的拍摄日期参数并以文字水印的方式添加到照片上的桌面程序。 但是事实上&#xff0c;这个程序的名字…

计算两坐标点距离

object DistanceModel {/*** 根据经纬度&#xff0c;计算两点间的距离** param sLon1 第一个点的经度* param sLat1 第一个点的纬度* param sLon2 第二个点的经度* param sLat2 第二个点的纬度* return 返回距离 单位米*/fun getDistance(sLon1: String, sLat1: String,sLon2: …

Kotlin 知识点小结

一.Kotlin 协程启动方式总结 1.withContext 同步串行 带返回 2.launch 异步 不带返回 3.asyc 异步 带返回 4.runblocking 同步 带返回 二.作用域函数 &#xff0c;T的扩展函数 &#xff08;with不是T的扩展函数&#xff09;都是内联函数 Kotlin中的lateinit和by lazy有以下…

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState,Kotlin

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState&#xff0c;Kotlin import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() {private val TAG "fly&…

Kotlin函数作为参数指向不同逻辑(二)

Kotlin函数作为参数指向不同逻辑&#xff08;二&#xff09; fun sum(): (Int, Int) -> Int {return { a, b -> (a b) } }fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) } }fun math(a: Int, b: Int, foo: (Int, Int) -> Int): Int {ret…

Kotlin 协程Job 代替 Handler执行延时任务 带取消

private val handler Handler(Looper.getMainLooper()) var runnable Runnable { dismissProgressDialog() } ...... handler.postDelayed(runnable, (10 * 1000).toLong()) ...... //取消任务 handler.removeCallbacks(runnable) private var job: Job? null ...... job …

Kotlin(八) 数据类、单例

目录 一&#xff1a;创建数据类 二&#xff1a;单例类 一&#xff1a;创建数据类 和Java的不同&#xff0c;kotlin的数据类比较简单&#xff0c;New→Kotlin File/Class&#xff0c;在弹出的对话框中输入“Book”&#xff0c;创建类型选择“Data”。如图&#xff1a; 然后编…

2023深耕kotlin,谈谈前景

为什么学习kotlin&#xff1f; Kotlin 早就已经是 Google 官方推荐的开发语言了&#xff0c;而且 Android 新的 Compose 框架只支持 Kotlin &#xff0c;在 Google 那里&#xff0c;Android开发中 Java 其实已经被淘汰了。Java 和 Kotlin 虽然都属于高级语言&#xff0c;但是 …

Kotlin 中let 、run 、with、apply、also的用法与区别

实例代码 User(val userName:String,val age:Int){fun printName(){println(userName)}fun getUserName():String{return userName}} let 函数 let 函数常用来与对象的空判断一起用&#xff0c;起到作用于的限定效果。let 函数最后一行返回值。&#xff08;比如实例需要let函…

Kotlin协程核心理解

一、协程是什么&#xff1f; 1.1 基本概念的理解 我们知道JVM中的线程的实现是依赖其运行的操作系统决定的&#xff0c;JVM只是在上层进行了API的封装&#xff0c;包含常见的有线程的启动方法&#xff0c;状态的管理&#xff0c;比如&#xff1a;Java中抽象出了6种状态&#x…

Java切换到Kotlin,Crash率上升了?

前言 最近对一个Java写的老项目进行了部分重构&#xff0c;测试过程中波澜不惊&#xff0c;顺利上线后几天通过APM平台查看发现Crash率上升了&#xff0c;查看堆栈定位到NPE类型的Crash&#xff0c;大部分发生在Java调用Kotlin的函数里&#xff0c;本篇将会分析具体的场景以及…

Java和Kotlin的Field在继承中的不同表现

Kotlin是一个宣称与Java兼容性较好的语言&#xff0c;但在接触后发现一些技术还是有“概念上”的冲突&#xff0c;本文就记录下两者对象的Field&#xff08;中文的说法有字段、域、属性、成员变量&#xff0c;下文若出现这些表达&#xff0c;指的都是这个东西&#xff09;在继承…

android中gradle的kotlin编译配置选项

一、编译配置 1、Android中的配置 使用如下方式开启在Android中的gradle的kotlin编译配置&#xff1a; 该配置在其余平台不可用 android {...compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTar…

线程安全缓存ConcurrentLinkedHashMap,Kotlin

线程安全缓存ConcurrentLinkedHashMap&#xff0c;Kotlin LinkedHashMap实现LRU缓存cache机制&#xff0c;Kotlin_zhangphil的博客-CSDN博客* * 基于Java LinkedList,实现Android大数据缓存策略 * 作者&#xff1a;Zhang Phil * 原文出处&#xff1a;http://blog.csdn.net/zha…

Android NDK开发详解之JNI中的库文件

Android NDK开发详解之JNI中的库文件 简介工作原理流程原生 activity 和应用 简介 本部分简要介绍了 NDK 的工作原理。Android NDK 是一组使您能将 C 或 C&#xff08;“原生代码”&#xff09;嵌入到 Android 应用中的工具。能够在 Android 应用中使用原生代码对于想执行以下…

IntelliJ IDEA Kotlin第一步从hello world开始

1.创建一个新的项目&#xff1a;我们选择Java,选择Kotlin框架&#xff1a;2.点击继续&#xff0c;“next"进入下一步&#xff1a;填写项目名称&#xff0c;选择下一步“next”进行项目生成。3.项目就新建成功了&#xff1a;4.我们在src下面新建文件&#xff1a;src->ne…

如何优雅地单元测试 Kotlin/Java 中的 private 方法?

翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先&#xff0c;开发者应该测试代码里的 private 私有方法吗&#xff1f; 直接信任这些私有方法&#xff0c;测试到…

Kotlin File writeText appendText appendBytes readBytes readText

Kotlin File writeText appendText appendBytes readBytes readText import java.io.Filefun main(args: Array<String>) {val filePath "./myfile.txt"val file File(filePath)file.writeText("hello,") //如果原有文件有内容&#xff0c;将完全覆…

Android DSL

文章目录 Android DSL概述使用DSL构建HTML代码下载 Android DSL 概述 Kotlin DSL&#xff08;领域特定语言&#xff09;是一种使用 Kotlin 语言编写的&#xff0c;用于解决特定问题领域的语言。DSL 使得代码更易读、易写&#xff0c;因为它的语法和领域问题的语法更接近。Kot…

Android NDK开发详解之Android.mk探秘

Android NDK开发详解之Android.mk探秘 概览基础知识变量和宏NDK 定义的 include 变量CLEAR_VARSBUILD_EXECUTABLEBUILD_SHARED_LIBRARYBUILD_STATIC_LIBRARYPREBUILT_SHARED_LIBRARYPREBUILT_STATIC_LIBRARY 目标信息变量TARGET_ARCHTARGET_PLATFORMTARGET_ABI 模块描述变量LOC…

Could not find method kapt()

如果您遇到了 "Could not find method kapt()" 错误&#xff0c;这通常意味着在项目的 Gradle 构建脚本中未正确配置 Kotlin Annotation Processing 插件&#xff08;Kapt&#xff09;。 添加 Kotlin 插件&#xff1a; 确保您在项目的 build.gradle 文件中应用了 Kot…

Kotlin 进阶函数式编程技巧

Kotlin 进阶函数式编程技巧 Kotlin 简介 软件开发环境不断变化&#xff0c;要求开发人员不仅适应&#xff0c;更要进化。Kotlin 以其简洁的语法和强大的功能迅速成为许多人进化过程中的信赖伙伴。虽然 Kotlin 的初始吸引力可能是它的简洁语法和与 Java 的互操作性&#xff0c…

Kotlin Android中错误及异常处理最佳实践

Kotlin Android中错误及异常处理最佳实践 Kotlin在Android开发中的错误处理机制以及其优势 Kotlin具有强大的错误处理功能&#xff1a;Kotlin提供了强大的错误处理功能&#xff0c;使处理错误变得简洁而直接。这个特性帮助开发人员快速识别和解决错误&#xff0c;减少了调试代…

Kotlin基础数据类型和运算符

原文链接 Kotlin Types and Operators Kotlin是新一代的基于JVM的静态多范式编程语言&#xff0c;功能强大&#xff0c;语法简洁&#xff0c;前面已经做过Kotlin的基本的介绍&#xff0c;今天就来深入的学习一下它的数据类型和运算操作符。 数据类型 与大部分语言不同的是&am…

viewBinding与反射结合的实用实践

首先&#xff0c;官方教程指个路&#xff1a;视图绑定 本文阅读认真阅读大约需要5-20分钟 也可直接跳到文末3.0看最终方案 目录 1 关于ViewBinding第一点&#xff0c;命名符合一定的规则第二点&#xff0c;继承自ViewBinding 2 正常使用不便之处3 话不多说直接看代码1.04 话不…

Kotlin学习笔记-Kotlin基础-01

变量声明 var&#xff1a;用于值不改变的变量&#xff0c;使用val声明的变量无法重新赋值 val&#xff1a;用于值可以改变的变量 变量声明格式 var/val data(变量名称) : Int(变量类型) Kotlin基本数据类&#xff1a; Int、Byte、Short、Long、Float、Double Kotlin类型推…

ggrcs包3.5版本发布—增加了大家喜闻乐见的P for overall和主题色彩定制

目前本人写的ggrcs包新的3.5版本已经在CRAN上线&#xff0c;目前支持逻辑回归&#xff08;logistic回归&#xff09;、cox回归和多元线性回归。 需要的可以使用代码安装 install.packages("ggrcs")如果原来安装了旧版本&#xff0c;可以通过Rstudio进行升级 这样就…

Kotlin前置检测判断check,require,requireNotNull

Kotlin前置检测判断check&#xff0c;require&#xff0c;requireNotNull &#xff08;1&#xff09;check fun main(args: Array<String>) {val b falsecheck(b) {println("check $b")}println("end") } check监测到值非真时候&#xff0c;抛出一…

Kotlin扩展函数和扩展属性 使用及优化场景分析

1.扩展函数与扩展属性基础 1.1 什么是扩展函数 扩展函数,就是从类的外部扩展出来的一个函数,这个函数看起来就像是类的成员函数一样。这里,我们就以JDK当中的String为例,来看看如何通过Kotlin的扩展特性,为它新增一个 lastElement()方法。 扩展函数Case fun String.la…

在Kotlin中设置User-Agent以模拟搜索引擎爬虫

前言 随着双十一电商活动的临近&#xff0c;电商平台成为了狂欢的中心。对于商家和消费者来说&#xff0c;了解市场趋势和竞争对手的信息至关重要。在这个数字时代&#xff0c;爬虫技术成为了获取电商数据的有力工具之一。本文将以亚马逊为例&#xff0c;介绍如何使用Kotlin编…

android 获取软键盘高度

自己用的,方便以后找 mBinding.clBottom是底部控件,软键盘弹出时放在软键盘上方,软键盘隐藏时在最底部 mBinding.clBottom.viewTreeObserver.addOnGlobalLayoutListener {// 获取屏幕的高度val screenHeight: Int mBinding.clBottom.getRootView().getHeight()// 获取当前布…

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布&#xff1a;加速跨平台开发的新里程碑 引言 在最新的消息中&#xff0c;JetBrains团队宣布Kotlin Multiplatform&#xff08;KMP&#xff09;将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…

Kotlin-Java 互操作指南

官网地址 https://developer.android.google.cn/kotlin/interop?hlzh-cn 脑图

AndroidStudio报错:Plugin with id ‘kotlin-android‘ not found.

第一步 要在自己的项目的build.gradle的buildscript中添加ext.kotlin_version 1.3.72 第二步 然后在dependencies里添加classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 大体如下&#xff1a; buildscript {ext.kotlin_version 1.3.72r…

Android修行手册 - 可变参数中星号什么作用(冷知识)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

Android 14 Beta 1

Android 14的第一个 Beta 版&#xff0c;围绕隐私、安全、性能、开发人员生产力和用户定制等核心主题构建&#xff0c;同时继续改进平板电脑、可折叠设备等大屏幕设备的体验。我们一直在完善 Android 14 的功能和稳定性方面取得稳步进展&#xff0c;现在是时候向开发者和早期采…

《第一行代码:Android》第三版-2.4.1 if 语句

本文主要讲解if语句&#xff0c;kotlin的if语句是可以有返回值的&#xff0c;就是if语句的最后一句话就是返回值。 /*** You can edit, run, and share this code.* play.kotlinlang.org*/fun main() {println("Hello, world!!!") val largelargerNumber(5,9) prin…

Kotlin学习——流程控制,when,循环,range工具 kt里的equals if实现类似三元表达式的效果

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Kotlin学习——kt里的集合List,Set,Map List集合的各种方法之Int篇

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Kotlin学习——kt里面的函数,高阶函数 函数式编程 扩展函数和属性

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

【Kotlin】引入与基础语法

文章目录 Kotlin的特性Kotlin优势Kotlin的安卓项目变量变量保存了指向对象的引用优先使用val来避免副作用 后端变量Backing Fields延迟初始化 Kotlin的特性 它更加易表现&#xff1a;这是它最重要的优点之一。你可以编写少得多的代码。Kotlin是一种兼容Java的语言Kotlin比Java…

记一次Kotlin Visibility Modifiers引发的问题

概述 测试环境爆出ERROR告警日志java.lang.IllegalStateException: Didnt find report for specified language&#xff0c;登录测试环境ELK查到如下具体的报错堆栈日志&#xff1a; java.lang.IllegalStateException: Didnt find report for specified language at com.aba.…

Kotlin中的Set集合

在Kotlin中&#xff0c;Set集合用于存储一组唯一的元素&#xff0c;它们是无序的&#xff0c;不可重复的。Set集合分为可变集合&#xff08;MutableSet&#xff09;和不可变集合&#xff08;Set&#xff09;。本篇博客将分别介绍可变集合和不可变集合&#xff0c;并提供相关的A…

Kotlin笔记(七):协程

1. 协程的定义 协程属于Kotlin中非常有特色的一项技术&#xff0c;因为大部分编程语言中是没有协程这个概念的。 什么是协程呢&#xff1f;它其实和线程是有点类似的&#xff0c;可以简单地将它理解成一种轻量级的线程。要知道&#xff0c;线程是非常重量级的&#xff0c;它需要…

Kotlin基础——枚举、When、in、for

枚举 声明只有值的枚举 enum class Color {RED, GREEN, BLUE }此外还可以增加属性和方法&#xff0c;如果需要在枚举类中定义方法&#xff0c;要使用分号把枚举常量列表和方法定义分开&#xff0c;这也是Kotlin唯一必须使用分号的地方 enum class Color(val r: Int, val g: …

kotlin实现HashMap

前言 省略 代码 class MyHashMap {data class Node(var key: Int, var value: Int, var next: Node? null)// 负载因子private var loadFactor 0.75// 当前大小private var size 0private var table Array<Node?>(16) {null}// 增加fun put(key: Int, value: In…

Kotlin中函数的基本用法以及函数类型

函数的基本用法 1、函数的基本格式 2、函数的缺省值 可以为函数设置指定的初始值&#xff0c;而不必要传入值 private fun fix(name: String,age: Int 2){println(name age) }fun main(args: Array<String>) {fix("张三") }输出结果为&#xff1a;张三2 …

关于安卓编译报错(一)kotlin依赖报错

背景 杂乱的项目依赖&#xff0c;成为了安卓项目的噩梦。版本号的不统一&#xff0c;经常导致一些依赖冲突。所以有了此文。 现象 安卓项目rebuild或者打release包的时候&#xff0c;存在报错情况&#xff1a; &#xff08;一&#xff09;kotlin version编译不一致导致报错 …

关闭 Android SplashScreen(闪屏)

SplashScreen在Android 12上是强制的&#xff0c;如果你什么都不做&#xff0c;你的App在Android 12上就会自动拥有SplashScreen界面 但是这个SplashScreen界面太局限了能改的地方太少了 其实也没什么他主要作用是为了在App启动初始化的时候避免让用户在一个空白界面等待过长时…

Android Gldie复用只取之前decode过的缓存resource,Kotlin

Android Gldie复用只取之前decode过的缓存resource&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.life…

Kotlin:内置函数let、also、with、run、apply

前言 在Kotlin中&#xff0c;有一些用于扩展 & 方便开发者编码的内置函数&#xff0c;能大大提高开发者的开发效率。今天&#xff0c;我将主要讲解的是&#xff1a; let函数also函数with函数run函数apply函数 基础知识&#xff1a;接口回调中Lambda使用 在Kotlin中可使用…

探析 Android Kotlin 中的 object 关键字:对象声明、伴生对象和对象表达式

Android Kotlin 开发中&#xff0c;Object 关键字是一个强大且灵活的工具&#xff0c;它提供了对象声明、伴生对象和对象表达式三种不同的使用方式。 1. 对象声明&#xff08;Object Declaration&#xff09; 对象声明是 Object 关键字的一种用法&#xff0c;它允许我们创建一…

kotlin协程反编译java学习原理

前情提要 GlobalScope.launch(Dispatchers.Main) { // 默认是Default异步 // 1.从当前协程体作用域Dispatchers.Main 协程依附的线程 到 挂起点 挂起函数 到 执行 请求耗时操作 而 切换到 IO异步线程 // 2.IO异步线程执行完成后&#xff0c;开始恢复&#xff0c;当前作…

【GEE笔记】随机森林特征重要性计算并排序

随机森林是一种基于多个决策树的集成学习方法&#xff0c;可以用于分类和回归问题。在gee中可以使用ee.Classifier.smileRandomForest()函数来创建一个随机森林分类器&#xff0c;并用它来对影像进行分类。 随机森林分类器有一个重要的属性&#xff0c;就是可以计算每个特征&a…

为 Compose MultiPlatform 添加 C/C++ 支持(2):在 jvm 平台使用 jni 实现桌面端与 C/C++ 互操作

前言 在上篇文章中我们已经介绍了实现 Compose MultiPlatform 对 C/C 互操作的基本思路。 并且先介绍了在 kotlin native 平台使用 cinterop 实现与 C/C 的互操作。 今天这篇文章将补充在 jvm 平台使用 jni。 在 Compose MultiPlatform 中&#xff0c;使用 jvm 平台的是 An…

为 Compose MultiPlatform 添加 C/C++ 支持(3):实战 Desktop、Android、iOS 调用同一个 C/C++ 代码

theme: serene-rose 前言 在本系列的前两篇文章中我们已经学会了如何在 kotlin native 平台&#xff08;iOS&#xff09;使用 cinterop 调用 C/C 代码。以及在 jvm 平台&#xff08;Android、Desktop&#xff09;使用 jni 调用 C/C 代码&#xff0c;并且知道了如何自动编译 A…

Compose for iOS:kotlin 与 swift 互操作

前言 类似于 Android 上的 compose&#xff0c;在 iOS 上的 compose 同样支持嵌套显示 compose UI 和 swiftUI 或是 uikit 。 但是不同于 Android 原生就是使用 kotlin 作为开发语言&#xff0c;iOS 的开发语言是 swift 或者 object-c 。虽然大多数业务逻辑都可以直接使用 ko…

为 Compose MultiPlatform 添加 C/C++ 支持(1):在 kotlin 中使用 cinterop 实现与 C/C++ 互操作

前言 在安卓中我们可以使用 jvm 提供的 jni 方便的编写 C/C 代码并与 java/kotlin 互操作。 但是当使用 kotlin MultiPlatform 时想要调用 C/C 代码将变得麻烦甚至是不可用&#xff0c;因为对于 Android 和 Desktop 来说依旧使用的是 jvm &#xff0c;所以只要稍微适配一下也…

Android---Kotlin 学习002

声明变量 在 Kotlin 中定义一个变量&#xff0c;通过关键字 var 开始。然后是变量名&#xff0c;在“:”后紧跟变量类型。 示例1&#xff1a;声明一个 int 类型的变量 var num:Int 1 示例2&#xff1a;声明一个 String 类型的变量 var str:String "Hello world&quo…

Kotlin 中的 `as` 关键字:类型转换的艺术

在 Android 编程中&#xff0c;类型转换是一项常见的操作。为了使这一过程更加流畅和安全&#xff0c;Kotlin 提供了 as 关键字。本文将深入探讨 as 关键字的用法和最佳实践。 一、as 关键字的基本概念 &#x1f680; as 关键字在 Kotlin 中用于显式类型转换。它将一个表达式…

容器化nacos部署并实现服务发现(gradle)

1.如何容器化部署mysql 2. 如何容器化部署nacos 为不暴露我的服务器地址&#xff0c;本文全部使用localhost来代替服务器地址&#xff0c;所有的localhost都应该调整为你自己的服务器地址。 为不暴露我的服务器地址&#xff0c;本文全部使用localhost来代替服务器地址&#x…

Kotlin那些与Java不一样的写法

一、构造器 //一个User类 class User { }//添加参数的主构造器 class User(name: String) { }//加val、var 声明为类的属性 class User(val name: String) { }//init代码块可以添加初始化逻辑 class User(val name: String) {init {...} } //次构造器 class User(val name: St…

IntelliJ IDE 插件开发 |(一)快速入门

前言 IntelliJ IDEA 作为 Java 开发的首选 IDE&#xff0c;其强大、方便之处不必多说。不过&#xff0c;由于个人或者团队的个性化需求&#xff0c;我们或多或少会想对其功能进行拓展&#xff0c;这时就需要开发插件&#xff08;在 IntelliJ 平台下的所有 IDE 均可运行&#x…

Kotlin学习——hello kotlin 函数function 变量 类 + 泛型 + 继承

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Android View闪烁动画AlphaAnimation,Kotlin

Android View闪烁动画AlphaAnimation&#xff0c;Kotlin private fun flickerAnimation(view: View?) {val animation: Animation AlphaAnimation(1f, 0f) //不透明到透明。animation.duration 500 // 1次过程时长。animation.interpolator LinearInterpolator() // 线性速…

Android控件全解手册 - 自定义实现水波进度

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列

Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错

我使用java代码 构建项目&#xff0c;初始代码运行就会报错。我使用的是Android Studio Giraffe&#xff08;Adroid-studio-2022.3.1.18-windows&#xff09;。我在网上找的解决办法是删除重复的类&#xff0c;但这操作起来真的太麻烦了。 这是全部报错代码&#xff1a; Dupli…

Android Bitmap保存成至手机图片文件,Kotlin

Android Bitmap保存成至手机图片文件&#xff0c;Kotlin fun saveBitmap(name: String?, bm: Bitmap) {val savePath Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()if (!Files.exists(Paths.get(savePath))) {Log.d("保存文…

Android设置文字颜色渐变

项目中用到了很多文字颜色渐变的设计&#xff0c;因此做一下记录。 核心代码如下&#xff1a; /*** 统一文字渐变色设置* param colors 渐变色字符串数组* param positions 渐变色位置数组&#xff0c;可为空* param start 渐变起始点&#xff0c;可为空* param end 渐变结束…

Kotlin基础——类型系统

? 对于如下Java函数&#xff0c;可传递null或者值为null的String int strLen(String s) {return s.length(); }而在Kotlin中&#xff0c;如下函数不能传递null或值为null的String&#xff0c;否则会在编译期报错&#xff0c;保证了永远不会在运行时报空指针异常 fun strLen…

15:kotlin 类和对象 -- 函数式接口(Functional (SAM) interfaces)

只有一个抽象方法的接口被称为函数接口&#xff0c;或者称为单一抽象方法&#xff08;SAM&#xff09;接口。函数接口可以有多个非抽象成员&#xff0c;但只能有一个抽象成员。 fun interface KRunnable {fun invoke() }SAM转换 对于函数接口&#xff0c;你可以使用SAM转换来…

14:kotlin类和对象 -- 接口(Interfaces)

接口可以包含抽象方法和普通方法。与抽象类的不同之处在于接口不能存储状态。它们可以拥有属性&#xff0c;但这些属性需要是抽象的或定义访问器 使用关键字interface来定义接口 interface MyInterface {fun bar() // 抽象方法fun foo() { // 普通方法// 方法实现} }实现接口…

安卓开发学习---kotlin版---笔记(一)

Hello word 前言&#xff1a;上次学习安卓&#xff0c;学了Java开发&#xff0c;简单的搭了几个安卓界面。这次要学习Kotlin语言&#xff0c;然后开发安卓&#xff0c;趁着还年轻&#xff0c;学点新东西&#xff0c;坚持~ 未来的你会感谢现在努力的你~ 主要学习资料&#xff1a…

Android drawable layer-list右上角红点,xml布局实现,Kotlin

Android drawable layer-list右上角红点&#xff0c;xml布局实现&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><itemandroid:id"id…

对于Kotlin DSL的简单解析与使用

DSL(领域特定语言)是Kotlin所带来的强大语法特性之一&#xff0c;也是Java中所不存在的功能&#xff0c;JetBrain也基于DSL开发出了众多的开源库&#xff0c;Kotlin的开发者可以使用DSL来重构许多已有的代码&#xff0c;甚至有可能做到彻底抛弃HTML&#xff0c;XML&#xff0c;…

Android把宽高均小于给定值的Bitmap放大到给定值,Kotlin

Android把宽高均小于给定值的Bitmap放大到给定值&#xff0c;Kotlin 假设拉伸放大到SIZE2048 fun scaleSize(image: Bitmap): Bitmap {val w image.widthval h image.heightvar newW: Intvar newH: Intif (w > h) {newW SIZEnewH (SIZE / w.toFloat()) * h} else {newW …

实战技巧:为Android应用设置独立的多语言

原文链接 实战技巧&#xff1a;为Android应用设置独立的多语言 通常情况下多语言的设置都在系统设置中&#xff0c;应用需要做的就是提供本应用所使用的字串的多语言翻译&#xff0c;使用时使用R.string.app_name类似的引用&#xff0c;然后系统会根据用户在系统设置中的选项来…

Clean 架构下的现代 Android 架构指南

Clean 架构下的现代 Android 架构指南 Clean 架构是 Uncle Bob 提出的一种软件架构&#xff0c;Bob 大叔同时也是 SOLID 原则的命名者。 Clean 架构图如下&#xff1a; 这张图描述的是整个软件系统的架构&#xff0c;而不是单体软件&#xff0c;其中至少包括服务端以及客户端…

《Kotlin核心编程》笔记:设计模式

创建型模式 主流的创建型模式有&#xff1a;工厂方法模式、抽象工厂模式、构建者模式 伴生对象增强工厂模式 在有些地方会把工厂模式细分为简单工厂、工厂方法模式以及抽象工厂。 这里主要介绍简单工厂的模式&#xff0c;它的核心作用就是通过一个工厂类隐藏对象实例的创建…

Kotlin Multiplatform的现状—2023年网络研讨会

Kotlin Multiplatform的现状—2023年网络研讨会 在2023年&#xff0c;Kotlin Multiplatform因其开发、当前状态和未来潜力而受到了相当大的关注。随着越来越多的开发者对采用KMP进行跨平台解决方案表示兴趣&#xff0c;JetBrains在11月下旬推出了一系列网络研讨会作为回应。首…

关于compose和kotlin的一些兼容性问题

最近需要将项目中的一些模块封装成aar给客户使用。于是新建了构建脚本为KSL项目。但在项目模块迁移的过程中出现了兼容性问题。记录下方便后来者。 以下是出现的兼容性问题之一&#xff1a; androidx.compose.compiler.plugins.kotlin.IncompatibleComposeRuntimeVersionExce…

Kotlin中object关键字的使用

定义 在 Kotlin 中&#xff0c;object 关键字可以用来声明对象。对象可以分为两种&#xff1a; 对象表达式&#xff1a;一种表达式&#xff0c;可以直接赋值给变量或常量。对象声明&#xff1a;一种类似于 Java 中的静态类的声明。 用途 对象可以用于以下场景&#xff1a; …

Android 从assets读取文件装载成Bitmap,Kotlin

Android 从assets读取文件装载成Bitmap&#xff0c;Kotlin /*** fileName assets里面图片文件名*/fun readBitmapFromAssets(ctx: Context, fileName: String): Bitmap? {val assetManager: AssetManager ctx.assetsvar bitmap: Bitmap? nulltry {val inputStream assetMa…

26:kotlin 类和对象 -- 委托属性(Delegation properties )

尽管每次需要时都可以手动实现一些常见类型的属性&#xff0c;但将它们实现一次、添加到库中以便以后重用会更为方便 懒加载属性&#xff1a;仅在首次访问时计算值。可观察属性&#xff1a;监听器会收到有关此属性更改的通知。将属性存储在映射中而不是为每个属性单独创建字段…

Kotlin实战指南一:集合

Kotlin初体验一&#xff1a;集合 集合一、listOf()函数二、mutableListOf()函数三、arrayListOf()函数四、listOfNotNull()函数五、binarySearch()函数 集合 List是有顺序的数据结构&#xff0c;在Kotlin中提供了类似数组的访问方式&#xff1a; 创建集合 //创建一个空的li…

【Kotlin】基础变量、集合和安全操作符

文章目录 数字字面常量显式转换数值类型转换背后 位运算符字符串字符串模板修饰符数组集合&#xff08;Kotlin自带&#xff09;通过序列提高效率惰性求值序列的操作方式中间操作末端操作 可null类型安全调用操作符 ?.操作符 ?:非空断言操作符 !! 使用类型检测及自动类型转换安…

Jetpack Compose开发一个Android WiFi导航应用

在以前的一篇文章构建一个WIFI室内定位系统_wifi定位系统-CSDN博客中&#xff0c;我介绍了如何用Android来测量WiFi信号&#xff0c;上传到服务器进行分析后&#xff0c;生成室内不同地方的WiFi指纹&#xff0c;从而帮助进行室内导航。当时我是用的HTML5的技术来快速开发一个An…

kotlin第三方库记录

一、测试 除了JUnit与TestNG&#xff0c;下面两个框架提供了用kotlin编写测试的更有表现力的DSL 1.KotlinTest&#xff08;https://github.com/kotlintest/kotlintest&#xff09;——灵活的测试框架&#xff0c;它的灵感来自于ScalaTest&#xff0c;支持多种不同的编写测试的…

Android ViewModel的简单应用

Android ViewModel 是一种设计模式&#xff0c;用于在应用程序组件之间存储和管理UI相关的数据。下面是使用Android ViewModel的基本步骤&#xff1a; 添加 ViewModel 依赖&#xff1a;在项目的 build.gradle 文件中添加以下依赖&#xff1a; implementation "androidx.…

【Kotlin】Kotlin的stream流编程浅析

Kotlin是一门由JetBrains公司开发的静态类型JVM语言&#xff0c;其可以与Java无缝集成。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性&#xff0c;比如&#xff0c;高阶函数、操作符重载、字符串模板。今天要浅析的stream流操作就来…

Kotlin 数据类

1、语法 data 修饰的类 data class User(val name: String, val age: Int) 编译器自动从主构造函数中声明的所有属性导出以下成员&#xff1a; .equals()/.hashCode() 对.toString() 格式是 "User(nameJohn, age42)".componentN() 按声明顺序对应于所有属性.cop…

kotlin by lazy 的使用

by lazy 的作用 by 是在kotlin中代表者委托&#xff0c; lazy 懒加载 by lazy 就是委托延时处理 下面写一个demo说明下 新建一个类 class ExportController {fun getName(): String? {return "name";}fun getAge(): Int {return 18;}} 在mian中如下 class Ma…

Kotlin版 自定义的LiveDataBus

先上代码&#xff1a; object LiveDataBusKT {// private val bus: MutableMap<String, BusMutableLiveData<Any>> by lazy { HashMap() }private val MAX_BUS_COUNT 100 // 最大允许的 bus 对象数量private val bus: LruCache<String, BusMutableLiveData…

Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫

引入 你是否想过用Kotlin来编写爬虫程序&#xff1f;你是否想过用Apache HttpClient来处理HTTP请求和响应&#xff1f;你是否想过用代理服务器来绕过反爬措施&#xff1f;如果你的答案是肯定的&#xff0c;那么本文将为你介绍一种高效的eBay图片爬虫的实现方式&#xff0c;让你…

Kotlin语法基础篇十:有趣的操作符重载

前言 操作符在Java中我们也叫运算符&#xff0c;操作符重载是Kotlin语法糖中一个比较有趣的内容。为什么说它有趣呢&#xff1f;因为它可以实现让两个对象相加或者相减等操作。在Java语言中我们常见的操作符有、-、*、/、、--、%等。通常我们都是使用这些运算符来操作基本数据…

Kotlin语法基础篇十一:深入浅出泛型

前言 在上一篇文章中我们详细的介绍了Kotlin中的数据类、密封类、枚举类。本篇文章我们将讲解Kotlin中比较重要的一个知识点泛型&#xff0c;在我们所熟知的一些编程语言像Java、C、Swift等都引入了泛型。它们在用法上都是大同小异。下面我们就来详细的介绍泛型在Kotlin中的使…

Android AlertDialog提高中心位置往上,Kotlin

Android AlertDialog提高中心位置往上&#xff0c;Kotlin private fun show() {val view LayoutInflater.from(this).inflate(android.R.layout.simple_list_item_1, null)val text view.findViewById<TextView>(android.R.id.text1)text.text "hello,world!&quo…

加速数据采集:用OkHttp和Kotlin构建Amazon图片爬虫

引言 曾想过轻松获取亚马逊上的商品图片用于项目或研究吗&#xff1f;是否曾面对网络速度慢或被网站反爬虫机制拦截而无法完成数据采集任务&#xff1f;如果是&#xff0c;那么本文将为您介绍如何用OkHttp和Kotlin构建一个高效的Amazon图片爬虫解决方案。 背景介绍 亚马逊&a…

推荐你一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

推荐你一个基于Koin, Ktor & Paging等组件的KMM Compose Multiplatform项目 Kotlin Multiplatform Mobile&#xff08;KMM&#xff09;已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架&#xff0c;为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定…

Android控件全解手册 - 任意View缩放平移工具-实现思路和讲解

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

简明指南:使用Kotlin和Fuel库构建JD.com爬虫

概述 爬虫&#xff0c;作为一种自动化从网络上抓取数据的程序&#xff0c;广泛应用于数据分析、信息提取以及竞争对手监控等领域。不同的实现方式和编程语言都能构建出高效的爬虫工具。在本文中&#xff0c;我们将深入介绍如何充分利用Kotlin和Fuel库&#xff0c;构建一个简单…

20:kotlin 类和对象 --泛型(Generics)

类可以有类型参数 class Box<T>(t: T) {var value t }要创建类实例&#xff0c;需提供类型参数 val box: Box<Int> Box<Int>(1)如果类型可以被推断出来&#xff0c;可以省略 val box Box(1)通配符 在JAVA泛型中有通配符?、? extends E、? super E&…

Kotlin 协程库v1.7.1的核心模块(kotlinx-coroutines-core)-- kotlinx.coroutines篇

asContextElement&#xff1a; 创建一个协程上下文元素(CoroutineContext.Element)&#xff0c;该元素可以被添加到协程上下文中&#xff0c;以便在特定的协程中检索和使用 注意&#xff1a;上下文元素不跟踪线程局部变量的修改 示例 val myThreadLocal ThreadLocal<Str…

《Kotlin核心编程》笔记:特设多态、运算符重载和扩展函数

多态的不同形式 Kotlin 的扩展函数其实只是多态的表现形式之一。 子类型多态 继承父类后&#xff0c;用子类实例使用父类的方法&#xff0c;例如&#xff1a; 然后我们就可以使用父类DatabaseHelper的所有方法。这种用子类型替换超类型实例的行为&#xff0c;就是我们通常说…

使用Kotlin抓取微博数据并进行热度预测

目录 一、引言 二、Kotlin简介 三、抓取微博数据 1、获取API授权 2、发送HTTP请求 四、数据预处理和热度预测 1、数据预处理 2、热度预测模型建立 3、热度预测实现 五、评估与优化 1、评估模型性能 2、优化模型性能 六、总结 一、引言 随着社交媒体的普及&#x…

Android画布Canvas绘制drawBitmap基于源Rect和目的Rect,Kotlin

Android画布Canvas绘制drawBitmap基于源Rect和目的Rect&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"http://schemas.android.com/apk/res/android"xmlns…

Kotlin的数据类

引言 我们在做项目中涉及到各种数据类的处理&#xff0c;很多很杂乱。难免一个人的知识点有盲点&#xff0c;所以想着做个整理。 定义 在平时的使用中&#xff0c;我们会用到一些类来保持一些数据或状态&#xff0c;我们习惯上成为bean或者entity&#xff0c;也有的定义为mod…

Android双击图片放大移动图中双击点到ImageView区域中心,Kotlin

Android双击图片放大移动图中双击点到ImageView区域中心&#xff0c;Kotlin 初始化状态&#xff0c;ImageView里面只是显示一张fitcenter被缩放的原图&#xff0c;当手指在图片上双击后&#xff08;记录双击点位置&#xff1a;mCurX&#xff0c;mCurY&#xff09;画一个红色小圆…

Kotlin程序设计 扩展篇(一)

Kotlin程序设计&#xff08;扩展一&#xff09; **注意&#xff1a;**开启本视频学习前&#xff0c;需要先完成以下内容的学习&#xff1a; 请先完成《Kotlin程序设计》视频教程。请先完成《JavaSE》视频教程。 Kotlin在设计时考虑到了与Java的互操作性&#xff0c;现有的Ja…

kotlin as 和 is 的使用

kotlin 中有类型检测与类型转换章节&#xff0c;今天回顾看到这里记录下 详细的地址如下 类型检测与类型转换 Kotlin 官方文档 中文版 as 的功能是类型转换 val x: String y as String 这个y就是String 类型&#xff0c;不过&#xff0c;这个写法可能存在问题&#xff0c…

Kotlin-类

构造函数 Java final File file new File("file.txt");Kotlin val file File("file.txt")类 Java public final class User { }Kotlin class User公开类 Java public class User { }Kotlin open class User属性类 Java final class User {pri…

LiveData 迁移到 Kotlin Flow详解

LiveData ,是Android 2017推出的一个东西,配合MVVM使用。观察者模式,的确简化了我们的工作方式,但 RxJava 等选项,对于当时的初学者来说实在是太复杂了。因此 Architecture Components 团队创建了 LiveData :这是个非常 “有主见的” 可观察数据持有者类,并且是专门为 A…

Android画布Canvas裁剪clipRect,Kotlin

Android画布Canvas裁剪clipRect&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.height, Bitmap.Config.A…

Kotlin 导包规则

1、源文件头部 源文件通常以包声明开头&#xff0c;所有内容&#xff08;无论是类还是函数&#xff09;都包含在该包内&#xff1b;若没有指明包&#xff0c;该文件的内容属于无名字的默认包 package org.examplefun printMessage() { /*……*/ } // 全名是 org.example.pri…

Android Kotlin Viewbinding封装

目录 Viewbinding配置 Activity封装 Activity使用 Fragment封装 Fragment使用 Dialog封装 Dialog使用 Viewbinding配置 android { viewBinding { enabled true } } Activity封装 import android.os.Bundle import android.view.LayoutInflater import androidx.ap…

Kotlin 中的作用域函数

作用域函数在 Kotlin 中非常有用&#xff0c;可以帮助我们管理代码并编写清晰易读的代码。 什么是作用域函数&#xff1f; Kotlin 标准库中包含几个函数&#xff0c;其唯一目的是在对象的上下文中执行一段代码块。当我们在对象上调用这样的函数并提供一个 lambda 表达式时&am…

Android画布Canvas drawPath绘制跟随手指移动的圆,Kotlin

Android画布Canvas drawPath绘制跟随手指移动的圆&#xff0c;Kotlin import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Path import android.os.Bundle import android.…

【Kotlin】协程

Kotlin协程 背景定义实践GlobalScope.launchrunBlocking业务实践 背景 在项目实践过程中&#xff0c;笔者发现很多异步或者耗时的操作&#xff0c;都使用了Kotlin中的协程&#xff0c;所以特地研究了一番。 定义 关于协程&#xff08;Coroutine&#xff09;&#xff0c;其实…

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(1)

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜&#xff0c;Kotlin&#xff08;1&#xff09; 实现查看图片的放大镜&#xff0c;放大镜随着手指在屏幕上的移动&#xff0c;放大镜里面展示手指触点为中心、半径长度的圆形放大后的图片。 剪切出一块圆形Path…

Android画布Canvas绘图scale translate,Kotlin

Android画布Canvas绘图scale & translate&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

kotlin 中 any, all , none

any 如果至少有一个元素匹配给定谓词&#xff0c;那么 any() 返回 true。 all 如果没有元素与给定谓词匹配&#xff0c;那么 none() 返回 true。 none 如果所有元素都匹配给定谓词&#xff0c;那么 all() 返回 true。 请注意&#xff0c;在一个空集合上使用任何有效的谓词去…

Kotlin:Set其实是有插入的顺序?

MutableSet怎么能调用indexOf去获取它的插入顺序呢&#xff1f;参考官网Collections overview | Kotlin Documentationhttps://kotlinlang.org/docs/collections-overview.html#set翻不了墙的看下面 &#xff08;MutableSet的默认实现是LinkedHashSet&#xff0c;LinkedHashSet…

kotlin的抽象类和抽象方法

在 Kotlin 中&#xff0c;抽象类和抽象方法是面向对象编程中的概念&#xff0c;用于实现抽象和多态性。抽象类无法实例化&#xff0c;这意味着我们无法创建抽象类的对象。与其他类不同&#xff0c;抽象类总是打开的&#xff0c;因此我们不需要使用open关键字。 抽象类&#xff…

kotlin的接口详解

在 Kotlin 中&#xff0c;接口&#xff08;Interface&#xff09;是一种定义了一组方法的抽象类型。与类不同&#xff0c;接口不能包含状态或字段。接口中的方法可以有默认实现&#xff0c;也可以是抽象的需要在实现类中提供具体实现的方法。 为什么要使用接口&#xff1f; 多…

【Kotlin】标准函数:let、with、run、apply

let let既不是操作符&#xff0c;也不是什么关键字&#xff0c;而是一个函数。 这个函数提供了函数式API的编程接口&#xff0c;并将原始调用对象作为参数传递到 Lambda 表达式中。 obj.let { obj2 ->// 编写具体的业务逻辑 }这里调用了obj对象的let函数&#xff0c;然后…

Android开发基础(一)

Android开发基础&#xff08;一&#xff09; 本篇主要是从Android系统架构理解Android开发。 Android系统架构 Android系统的架构采用了分层的架构&#xff0c;共分为五层&#xff0c;从高到低分别是Android应用层&#xff08;System Apps&#xff09;、Android应用框架层&a…

安卓开发学习---kotlin版---笔记(二)

UI学习 UI分类 安卓的UI分为两大类&#xff1a;一类叫做View视图&#xff0c;一类叫做ViewGroup容器 View视图&#xff1a;TextView,Button,ImageView都是常见的视图ViewGroup容器&#xff1a;内部尅承载、放置、添加View视图的容器 布局方式 安卓布局主要有&#xff1a;线…

Kotlin(十四) 扩展函数和运算符重载

目录 扩展函数 语法结构 代码示例 运算符重载 语法结构 一元操作符 二元操作符 数值类型操作符 等于和不等于操作符 比较操作符 调用操作符 扩展函数 语法结构 对于扩张函数的语法结构其实很简单&#xff0c;你想在那个类中添加扩张函数&#xff0c;那么你就用该类…

Android ImageView的Bitmap在scaleType情况下Bitmap顶部与底部RectF坐标,Kotlin

Android ImageView的Bitmap在scaleType情况下&#xff0c;Bitmap顶部与底部RectF坐标&#xff0c;Kotlin 通常&#xff0c;在ImageView设置scaleType后&#xff0c;Android会把原始图片通过缩放放在ImageView里面&#xff0c;例如&#xff1a; <ImageViewandroid:id"id…

Kotlin(十五) 高阶函数详解

高阶函数的定义 高阶函数和Lambda的关系是密不可分的。在之前的文章中&#xff0c;我们熟悉了Lambda编程的基础知识&#xff0c;并且掌握了一些与集合相关的函数式API的用法&#xff0c;如map、filter函数等。另外&#xff0c;我们也了解了Kotlin的标准函数&#xff0c;如run、…

最新版IDEA专业版大学生申请免费许可证教学(无需学校教育邮箱+官方途径+非破解手段)

文章目录 前言1. 申请学籍在线验证报告2. 进入IDEA官网进行认证3. 申请 JB (IDEA) 账号4. 打开 IDEA 专业版总结 前言 当你进入本篇文章时, 你应该是已经遇到了 IDEA 社区版无法解决的问题, 或是想进一步体验 IDEA 专业版的强大. 本文是一篇学生申请IDEA免费许可证的教学, 在学…

扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin

扁平的MutableList元素每隔若干元素一组装入新MutableList&#xff0c;Kotlin fun main(args: Array<String>) {val array arrayOf("a", "b", "c", "d", "e", "f", "g", "h", "i…

kotlin foreach 循环

java中的foreach循环也使用于kotlin &#xff0c;先回顾下java里面的foreach循环 java foreach循环格式 for(元素类型t 元素变量x : 遍历对象obj){引用了x的语句;} 例如&#xff1a; int[] intary {1,2,3,4};for (int a: intary) {Log.d("intary", String.value…

Android Kotlin语言下的文件存储

目录 将数据存储到文件中 创建文件和保存数据 读取文件 SharedPreferences存储 存储数据到SharedPreferences中 Context类中的getSharedPreferences()方法 Activity类中的getPreferences()方法 从SharedPreferences中读取数据 SQLite数据库存储 创建数据库 调用数据…

【Kotlin】静态方法

Kotlin 却极度弱化了静态方法这个概念&#xff0c;非常推荐使用单例类的方式来实现。 object Util {fun doAction() {println("do action") } }虽然这里的doAction()方法并不是静态方法&#xff0c;但是我们仍然可以使用Util.doAction()的方式来调用&#xff0c;这就…

【安卓中kotlin 泛型的基本用法】

泛型的基本用法 泛型主要有两种定义方式&#xff0c;一种是定义泛型类&#xff0c;另一种是定义泛型方法&#xff0c;使用的语法结构都是。当然括号内的T并不是固定要求的&#xff0c;事实上你使用任何英文字母或单词都可以&#xff0c;但是通常情况下&#xff0c;T是一种约定…

kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank

kotlin 中 isEmpty &#xff1a;如果判断的字符为空返回值返回true否则返回false 它的源码 kotlin.internal.InlineOnly public inline fun CharSequence.isEmpty(): Boolean length 0 length 0: 首先检查字符序列的长度是否为 0。如果长度为 0&#xff0c;则表明这个字…

Android studio报错误提示 Some Kotlin libraries attached to this project 问题解决方案

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 Android新建项目后&#xff0c;报以下错误 错误提示内容为&#xff1a; 这个项目附带的一…

Kotlin 作用域函数

作用域函数&#xff08;Scope Functions&#xff09; 函数参数返回值说明letitlambda result非空对象执行代码块applythis上下文对象用于对象配置操作alsoit上下问对象执行额外操作runthislambda result用于对象配置和计算结果withthislambda result非扩展函数&#xff0c;配置…

Android Serializable 和 Parcelable 的详解以及代码示例(Kotlin)

1. Serializable和Parcelable的区别&#xff08;简单记忆&#xff09;&#xff1a; Serializable适用于简单的对象序列化&#xff0c;而Parcelable适用于需要更高效的对象序列化和反序列化的情况&#xff0c;特别是在Android开发中。 Serializable是Java平台的标准接口&#xf…

kotlin——流程控制

when分支语句 when分支取代了Java原有的switch语句 var score Bwhen(score){A -> println("优秀")B -> println("良好")C -> println("中")D -> println("及格")else -> println("不及格")}不需要使用case…

Kotlin(十八)使用infix函数构建更可读的语法

什么是infix函数 infix函数是什么难理解的事物&#xff0c;它只是把编程语言函数调用的语法规则调整了一下而已&#xff0c;比如A to B这样的写法&#xff0c;实际上等价于A.to(B)的写法。 如何定义一个infix函数 在String类中&#xff0c;有一个startsWith()函数&#xff0…

DiffUtil + RecyclerView 在 Kotlin中的使用

很惭愧, 做了多年的Android开发还没有使用过DiffUtil这样解放双手的工具。 文章目录 1 DiffUtil 用来解决什么问题?2 DiffUtil 是什么?3 DiffUtil的使用4 参考文章 1 DiffUtil 用来解决什么问题? 先举几个实际开发中的例子帮助我们感受下: 加载内容流时,第一次加载了ABC,…

Rust与python联动进行多线程跑数据

最近有个学弟想请教我联动多线程爬取数据的案例&#xff0c;看了以前的模版没有合适的&#xff0c;我就利用空闲时间&#xff0c;专门给他写了一段模版作为参考。这里遇到注意的是需要代理IP介入&#xff0c;才能让多线程爬取减少网站风控限制。 以下是一个使用 Rust 编写的爬虫…

Android : Kotlin 基础 入门

1.Kotlin 基础 入门 1.kotlin你好世界 fun main(args: Array<String>) {println("Hello, Kotlin!") } 2.kotlin变量与输出 fun main() {val name "Kotlin"println("Hello, $name!") }10.kotlin 区间 fun main() {//区间 1..100 1到…

IntelliJ IDE 插件开发 | (三)消息通知与事件监听

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听 前言 在前两篇文章中讲解了关于插件开发的基础知识&…

Gradle 简单入门

Gradle简单介绍&#xff1a; Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置&#xff0c;也增加了基于Kotlin语言的kotlin-based DSL&#xff0c;抛弃了基于XML的各种繁琐配置。面向Java应用…

Android Canvas画布saveLayer与对应restoreToCount,Kotlin

Android Canvas画布saveLayer与对应restoreToCount&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.heigh…

Kotlin 类

1、声明 class 关键字声明类 类声明由类名、类头&#xff08;指定其类型参数、主构造函数等&#xff09;以及由花括号包围的类体构成&#xff1b;类头与类体都是可选的&#xff1b; 如果一个类没有类体&#xff0c;可以省略花括号 class Person { /*……*/ }// 没有声明任何…

Kotlin 属性

1、声明 关键字 var 声明为可变的 关键字 val 声明为只读的 class Address {val name: String "Holmes, Sherlock"val street: String "Baker"var city: String "London"var state: String? nullvar zip: String "123456" } …

常用设计模式全面总结版(JavaKotlin)

这篇文章主要是针对之前博客的下列文章的总结版本: 《设计模式系列学习笔记》《Kotlin核心编程》笔记:设计模式【Android知识笔记】FrameWork中的设计模式主要为了在学习了 Kotlin 之后,将 Java 的设计模式实现与 Kotin 的实现放在一起做一个对比。 一、创建型模式 单例模…

Kotlin基本语法 4 类

1.定义类 package classStudyclass Player {var name:String "jack"get() field.capitalize()set(value) {field value.trim()} }fun main() {val player Player()println(player.name)player.name " asdas "println(player.name)} 2.计算属性与防范…

二十一、使用Jetpack Compsoe编写一个写小说的Android应用:【TextField应用】文字滚动与键盘适配

这次的是基础功能实现&#xff0c;所以也算是初版吧&#xff0c;能提供个参考。 这个功能也是在最后才发现的&#xff0c;有如下现象&#xff1a; 1、初始效果 1.1 获取焦点时有问题 1.2 不跟随光标移动 经过百度发现这是TextField的问题&#xff0c;目前好像并没有解决&…

Coil:Android上基于Kotlin协程的超级图片加载库

Coil&#xff1a;Android上基于Kotlin协程的超级图片加载库 1. coil简介 在当今移动应用程序的世界中&#xff0c;图片加载是一个不可或缺的功能。为了让应用程序能够高效地加载和显示图片&#xff0c;开发人员需要依赖于强大的图片加载库。而今天&#xff0c;我将向大家介绍…

Android 13.0 系统framework修改低电量关机值为3%

1、讲在最前面 系统rom定制开发中&#xff0c;其中在低电量时&#xff0c;系统会自动关机&#xff0c;这个和不同的平台和底层驱动和硬件都有关系&#xff0c;需要结合这些来实际调整这个值&#xff0c;我们可以通过分析源码中电池服务的代码&#xff0c;然后进行修改如何实现…

kotlin的注解

在Kotlin中&#xff0c;注解&#xff08;Annotations&#xff09;是一种用于在程序代码中添加元数据的特殊标记。它们提供了对代码的描述性信息&#xff0c;但本身并不会影响程序的运行。注解可以应用于类、方法、属性等程序元素上&#xff0c;用于提供关于这些元素的额外信息。…

Kotlin程序设计(二)面向对象

Kotlin程序设计中级篇 我们在前面已经学习了Kotlin程序设计的基础篇&#xff0c;本章我们将继续介绍更多Kotlin特性&#xff0c;以及面向对象编程。 函数 其实函数我们在一开始就在使用了&#xff1a; fun main() {println("Hello World") }我们程序的入口点就是…

Android---Jetpack Compose学习002

Compose 布局。Compose 布局的目标&#xff1a;1&#xff09;实现高性能&#xff1b;2&#xff09;让开发者能够轻松编写自定义布局&#xff1b;3&#xff09;在 Compose 中&#xff0c;通过避免多次测量布局子级可实现高性能。如果需要进行多次测量&#xff0c;Compose 具有一…

Kotlin DSL C++项目引入OpenCV异常处理

现象 kotlin DSL(build.rgadle.kts)项目引入openCV sdk 编译提示Plugin [id: com.android.application, version: 8.2.1...错误 Plugin [id: com.android.application, version: 8.2.1, apply: false] was not found in any of the following sources:* Try: > Run with -…

android 自定义软键盘的显示和隐藏

记一下,以后不用找在InputMethodService中有这两个方法可以看到软键盘显示状态 //软键盘隐藏 override fun onWindowHidden() {super.onWindowHidden() } //软键盘显示 override fun onWindowShown() {super.onWindowShown() } 在activity中可以通过这种方法看到软键盘显示状…

Kotlin协程 SharingStarted

作用&#xff1a;用于定义在 shareIn 和 stateIn 操作符中启动和停止共享协程的策略。 这个函数接口提供了一组内置的策略 1. Eagerly val Eagerly: SharingStarted 在这种共享模式下&#xff0c;共享立即开始&#xff0c;并且永不停止。即使没有订阅者&#xff0c;共享也会…

【Kotlin】协程的字节码原理

前言 协程是Koltin语言最重要的特性之一&#xff0c;也是最难理解的特性。网上关于kotlin协程的描述也是五花八门&#xff0c;有人说它是轻量级线程&#xff0c;有人说它是无阻塞式挂起&#xff0c;有人说它是一个异步框架等等&#xff0c;众说纷芸。甚至还有人出了书籍专门介…

Kotlin 移动端多平台

支持多平台编程是 Kotlin 的主要优势之一。它减少了为不同平台编写和维护相同代码所花费的时间&#xff0c;同时保留了本机编程的灵活性和优势。 1. 基本概念 KMM&#xff1a;Kotlin Multiplatform for mobile&#xff08;移动设备的 Kotlin 多平台&#xff09; KMM 多平台的主…

Kotlin浮点数Float整数Int乘*除/精度损失

Kotlin浮点数Float整数Int乘*除/精度损失 fun main(args: Array<String>) {val af: Float 1.7fvar ci: Int (af / 2).toInt()val i: Int 5println(af / 2)println(ci)println(af / 2f)println(i / 2)println(i / 2f)println(af * i) } 0.85 0 0.85 2 2.5 8.5 Java小数…

kotlin map 与 flatmap

kotlin map 与 flatmap 是2个不同的概念的 map 是一种数据结构&#xff0c;flatmap 是一个高阶函数&#xff0c;处理集合用的 Map Map 是一种数据结构&#xff0c;它由一系列的键值对组成&#xff0c;每个键都是唯一的&#xff0c;并且与一个特定的值相关联。你可以通过键来…

九、Kotlin 注解

1. 什么是注解 注解是对程序的附件信息说明。 注解可以作用在类、函数、函数参数、属性等上面。 注解的信息可用于源码级、编译期、运行时。 2. 注解类的定义 使用元注解 Retention 声明注解类的作用时期。 使用元注解 Target 声明注解类的作用对象。 定义注解类时可以声…

Kotlin 协程 asyn和launch简单使用

在 Kotlin 协程中&#xff0c;async 和 launch 都是协程构建器&#xff0c;但它们有一些重要的区别&#xff1a; 返回值&#xff1a; launch 函数返回一个 Job 对象&#xff0c;代表一个在后台执行的任务。Job 可以用于等待任务完成、取消任务等操作。async 函数返回一个 Defer…

kotlin data clas 数据类

data class 介绍 kotlin 中 data class 是一种持有数据的特殊类 编译器自动从主构造函数中声明的所有属性导出以下成员&#xff1a; .equals()/.hashCode() 对 .toString() 格式是 "User(nameJohn, age42)" .componentN() 函数 按声明顺序对应于所有属性。…

Kotlin快速入门5

Kotlin的继承与重写 kotlin的继承 Kotlin中所有类都继承自Any类&#xff0c;Any类是所有类的超类&#xff0c;对于没有超类型声明的类是默认超类&#xff08;Any 不是 java.lang.Object&#xff09;&#xff1a; class LearnKotlin // 默认继承自Any Any类默认提供三个函数…

Kotlin 协程四 —— Flow 和 Channel 的应用

一、 Flow 与 Channel 的相互转换 1.1 Flow 转换为 Channel 1.1.1 ChannelFlow InternalCoroutinesApi public abstract class ChannelFlow<T>(// upstream contextJvmField public val context: CoroutineContext,// buffer capacity between upstream and downstrea…

协程 Coroutine 到底是个啥?

看了很多博客&#xff0c;也看了些在线课堂的课程。大神们说的协程 Coroutine 的概念&#xff0c;一直含糊不清。今天自己动手做做实验理解下。 1. 代码如下 private const val i1 1000000000class MainViewModel : ViewModel() {companion object {private const val TAG …

Kotlin for loop: in、 until、 step、 downTo

Kotlin for loop: in、 until、 step、 downTo fun loop1() {for (i in 0..5) {print("$i ")}println("\n1-end\n") }fun loop2() {for (i in 0 until 5) {print("$i ")}println("\n2-end\n") }fun loop3() {for (i in 0 until (5)) {…

Kotlin 协程1:深入理解withContext

Kotlin 协程1&#xff1a;深入理解withContext 引言 在现代编程中&#xff0c;异步编程已经变得非常重要。在 Kotlin 中&#xff0c;协程提供了一种优雅和高效的方式来处理异步编程和并发。在这篇文章中&#xff0c;我们将深入探讨 Kotlin 协程中的一个重要函数&#xff1a;wi…

IntelliJ IDE 插件开发 | (五)VFS 与编辑器

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…

Kotlin中的内置函数-apply、let

在使用Kotlin的过程中会经常用到其内置函数&#xff0c;包括apply&#xff0c;let&#xff0c;run&#xff0c;with&#xff0c;also&#xff0c;takeIf,takeUnless函数等&#xff0c;想要更好熟悉Kotlin&#xff0c;这些函数必须烂熟于心&#xff0c;接下来让我们来逐步了解&a…

【Flutter跨平台插件开发】如何实现kotlin跟C++的相互调用

【Flutter跨平台插件开发】如何实现kotlin跟C的相互调用 kotlin 调 c 在 Kotlin 中&#xff0c;可以使用 JNI (Java Native Interface) 来调用 C 代码 调用步骤: 创建 C 文件并实现函数。 // example.cpp #include <jni.h>extern "C" JNIEXPORT jstring J…

安卓4.X版本ssl: sslv3 alert handshake failure 握手失败

低版本https握手失败错误查看接口的协议改写代码&#xff08;网络访问采用原生的HttpsURLConnection&#xff09;参考博文&#xff1a;https://www.cnblogs.com/lwbqqyumidi/p/12063489.htmlhttps://blog.csdn.net/qq_16117167/article/details/52621112错误 如图所示&#xf…

Android常见的高级组件搭建移动应用界面

Android常见的高级组件结合可以搭建移动应用常见的界面结构&#xff0c;如下图所示&#xff1a; 上述的界面可以发现有侧滑菜单&#xff0c;界面的主内容区顶部可以显示Home键、应用标题以及菜单。在底部有导航栏方便导航。通过侧滑菜单和底部的导航可以方便实现界面内容的…

Kotlin编程实战——开始(03)

一 概述 基本语法习惯用法编码规范 二 基本语法 包的定义与导入程序入口点函数变量(var/val)注释字符串模板条件表达式空值与 null 检测类型检测与自动类型转换for 循环while 循环when 表达式使用区间&#xff08;range&#xff09;集合创建基本类及其实例 三 习惯用法 创建…

简简单单搞一个实用的Android端搜索框

Hello啊老铁们&#xff0c;今天带来一个非常实用的自定义搜索框&#xff0c;包含了搜索框、热门搜索列表、最近搜索列表等常见的功能&#xff0c;有类似的&#xff0c;大家可以直接复用&#xff0c;将会大大节约您的开发时间&#xff0c;有一点&#xff0c;很负责任的告诉大家&…

Kotlin读书笔记之优雅且高效的Kotlin

一. Kotlin的流畅性 1.1. 重载运算符 说到运算符重载&#xff0c;是不是想起来大学被C折磨的日子。传统上&#xff0c;我们对数值类型来创建表达式&#xff0c;例如&#xff1a;2 3 或 4.2 * 7.1。运算符重载是一种特性&#xff0c;是该语言对用户定义的数据类型扩展了使用运…

一起来学Kotlin:概念:17. Kotlin Extension Function / Method (扩展函数)

Kotlin&#xff1a;概念&#xff1a;17. Kotlin Extension Function / Method &#xff08;扩展函数&#xff09; Kotlin 语言支持使用新功能扩展类的能力&#xff0c;而无需通过类实现继承概念或使用设计模式&#xff0c;如装饰器&#xff08;Decorator&#xff09;。 这是通…

kotlin入门学习文档

kotlin入门学习文档 前言&#xff1a;本文会着重对比java和kotlin&#xff0c;方便Java选手理解 提前总结&#xff1a;kotlin在服务端应用本质上是基于Java进行的改进&#xff0c;底层都是由JVM翻译成底层语言&#xff0c;我们只需要关注kotlin本身的代码&#xff0c;无需担心…

视频播放 (一) VideoView的使用

1. 配置参数 1.1 AndroidManifest.xml 文件添加网络权限 <uses-permission android:name"android.permission.INTERNET" /> 1.2 http 明文请求设置 android:usesCleartextTraffic"true" 1.3 activity 配置屏幕变化&#xff0c;不重新加载 Activity …

【Kotlin】object 对象 ( object 关键字 | 对象声明 | 对象表达式 | 伴生对象 )

文章目录一、object 关键字二、对象声明三、对象表达式四、伴生对象一、object 关键字 object 关键字 可以定义 单例类 ; 使用 object 关键字修饰的类 , 只能创建一个实例对象 ; object 有 3 种使用方式 : 对象声明 : 定义单例类 ;对象表达式 : 定义匿名内部类 ;伴生对象 : 定…

记一次Spring for Kotlin中JacksonConfig配置Long转String失败

目录 起因真相解决方案 起因 众所周知&#xff0c;浏览器在处理 Long类型&#xff08;比如雪花算法生成的id&#xff09;时&#xff0c;往往会出大事情。 浏览器在处理长整型&#xff08;Long&#xff09;类型时可能会遇到问题&#xff0c;主要原因是浏览器在处理数字时有限制…

Kotlin:单例模式(项目使用实例)

摘要 单例模式主要的五种如下&#xff1a; 饿汉式懒汉式线程安全的懒汉式双重校验锁式&#xff08;Double Check)静态内部类式 一、项目使用单例模式实例场景 app在运行时缓存部分数据&#xff0c;作为全局缓存数据&#xff0c;以便其他页面及时更新页面对应状态的数据&…

DataBinding源码浅析---初始化过程

作为Google官方发布的支持库&#xff0c;DataBinding实现了UI组件和数据源的双向绑定&#xff0c;同时在Jetpack组件中&#xff0c;也将DataBinding放在了Architecture类型之中。对于DataBinding的基础使用请先翻阅前两篇文章的详细阐述。本文所用代码也是建立在之前工程基础之…

Android---QUMI实现沉浸式状态栏

沉浸式状态栏是指将 App 的状态栏与应用界面进行融合&#xff0c;使得应用界面能够占据整个屏幕的控件&#xff0c;从而提供更加沉浸式的用户体验。通过使用沉浸式状态栏&#xff0c;应用界面可以延伸到状态栏的区域&#xff0c;使得应用界面的内容更加丰富&#xff0c;同时也能…

【教程】Kotlin语言学习笔记(二)——数据类型(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 第二章 《数据类型》 文章目录 【Kotlin语言学习】系列文章一、基本数据…

【Kotlin】泛型 ① ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 )

文章目录一、泛型类二、泛型参数三、泛型函数四、多泛型参数五、泛型类型约束一、泛型类 定义一个 泛型类 , 将 泛型参数 T 放在 尖括号 <T> 中 , 该泛型参数放在 类名后 , 主构造函数之前 , 该泛型参数 T 是 类型占位符 , 在 该泛型类类中 可以使用 类型占位符 T 作为…

idea maven创建kotlin项目

第一步&#xff1a;打开idea 第二步&#xff1a;添加依赖 <repositories><repository><id>mavenCentral</id><url>https://repo1.maven.org/maven2/</url></repository></repositories><build><sourceDirectory>…

【Kotlin】泛型 ② ( 可变参数 vararg 关键字与泛型结合使用 | 使用 [] 运算符获取指定可变参数对象 )

文章目录一、可变参数 vararg 关键字与泛型结合使用二、使用 [] 运算符获取指定可变参数对象一、可变参数 vararg 关键字与泛型结合使用 如果 泛型类型 T 的参数 是 vararg 可变参数 , 则在接收 可变参数 时 , 需要使用 Array<out T> 类型 的变量进行接收 ; 参数为 vara…

Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家 &#x1f449;点击跳转到教程 一、Kotlin的可空性 null 在java中我们司空见惯的空指针异常NullPointerException,带给了我们很多麻烦。 Kotlin作为更强…

Springboot教程(二)——过滤器、拦截器

过滤器 过滤器可以在调用控制器方法之前进行一些操作&#xff0c;过滤器类一般放在filter包下。 配置类注册 使用过滤器时&#xff0c;要实现Filter接口&#xff0c;并重写doFilter方法&#xff1a; class TestFilter : Filter {override fun doFilter(request: ServletReq…

Kotlin实战基础 - 设置点击事件、Activity跳转、传值

不论是新手&#xff0c;还是从Java过度的老手&#xff0c;都需要简单看一下Kt在使用上的语法不同&#xff1b;当然如果有经验的话&#xff0c;分分钟过度完成&#xff1b;如果是新手的话&#xff0c;也完全不影响你学习。加油ing~ 今年的目标之一&#xff0c;清空草稿箱Blog&am…

探索Kotlin 1.8.20新特性

探索Kotlin 1.8.20新特性 Kotlin 1.8.20已经发布&#xff0c;我们将探索一些新功能和改进。 我们将仅涵盖新的语言功能和标准库更新。请参考参考资料部分以了解此版本的完整详情。 语言更新 Enum 类entries函数 为什么需要这个函数&#xff1f; values() - 返回数组&#x…

android kotlin 协程(四) 协程间的通信

android kotlin 协程(四) 协程间的通信 学完本篇你将会了解到: channelproduceactorselect 先来通过上一篇的简单案例回顾一下挂起于恢复: fun main() {val waitTime measureTimeMillis {runBlocking<Unit> {println("main start") // 1 // …

Retrofit+Hilt后端请求小项目3--Retrofit代码完善

目录ApiConstants定义实体类定义 API 接口定义 Repository定义 ApiModule定义 Application定义 ViewModelApiConstants 这一块存放 API 常量&#xff0c;即后端服务器 BASE_URL&#xff0c;以及对应的后缀 URL 代码清单&#xff1a;data/api/ApiConstants.kt object ApiConsta…

UI自动刷新大法:DataBinding数据绑定

之前我们讲了DataBinding在Activity、Fragment、RecyclerView中的基础使用&#xff0c;而那些常规使用方法里&#xff0c;每当绑定的变量发生数据变化时&#xff0c;都需要ViewDataBinding重新设值才会刷新对应UI。而DataBinding通过内部实现的观察者模式来进行自动刷新UI&…

【Kotlin】 yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细

时间格式 时间格式(协议)描述gg时期或纪元。y不包含纪元的年份。不具有前导零。yy不包含纪元的年份。具有前导零。yyyy包含纪元的四位数的年份。M月份数字。一位数的月份没有前导零。MM月份数字。一位数的月份有一个前导零。MMM月份的缩写名称&#xff0c;在AbbreviatedMonthN…

Kotlin MVVM之Jetpack系列ViewModel、LiveData的简单使用

一、MVVM是什么&#xff1f; MVVM分为Model&#xff0c;View&#xff0c;ViewModel 三个部分 Model:数据层&#xff0c;包含数据实体和对数据实体的操作 View:UI层&#xff0c;对应于Activity&#xff0c;XML&#xff0c;负责数据显示以及用户交互。 ViewModel&#xff1a;…

kotlin协程 coroutineScope 和 runBlocking

coroutineScope是一个suspend函数&#xff0c;创建一个新的协程作用域&#xff0c;并在该作用域内执行指定代码块&#xff0c;它并不启动协程。其存在的目的是进行符合结构化并发的并行分解&#xff08;将长耗时任务拆分为并发的多个短耗时任务&#xff0c;并等待所有并发任务完…

安卓递归获取文件夹以及子文件下所有文件

调用recursionAllFile方法获取(注意耗时操作放子线程)/*** 递归获取文件夹以及子文件夹下面所有文件* param path 路径*/ fun recursionAllFile(path: String): List<String>? {val allFiles: MutableList<String> ArrayList()if (TextUtils.isEmpty(path)) retu…

Kotlin之对象

主要内容 对象表达式对象申明伴生对象对象表达式和对象声明之间的语义差异创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。 Kotlin 用对象表达式和对象声明处理这种情况。 对象表达式 这里用了另外一篇文章来说明对象表达式,感兴趣可以点击进入查看 …

聊一聊:内存优化的目的是什么?

在开始之前需要先搞明白一个问题&#xff0c;为什么要做内存优化&#xff1f;或者说做内存优化的目的是什么&#xff1f; 内存优化的主要目的是提高应用程序运行的效率和性能&#xff0c;并减少应用程序由于内存问题导致的崩溃或者卡顿情况。当一个应用程序运行时&#xff0c;…

Java缺失的特性:操作符重载

本文介绍了什么是操作符重载、为什么需要操作符重载、如何在Java中实现操作符重载以及一些建议。 什么是操作符重载 操作符重载&#xff0c;就是把已经定义的、有一定功能的操作符进行重新定义&#xff0c;来完成更为细致具体的运算等功能。从面向对象的角度说&#xff0c;就…

Jetpack Compose基础组件之图片组件

概述 在Compose中&#xff0c;图片组件主要有两种&#xff0c;分别是显示图标的Icon组件和显示图片的Image组件&#xff0c;当我们显示一系列的小图标的时候&#xff0c;我们可以使用Icon组件&#xff0c;当显示图片时&#xff0c;我们就用专用的Image组件。在Android传统的Vi…

Kotlin 基础 笔记

这里写目录标题变量函数条件语句if/else 语句when 语句if/else 表达式 和 when 表达式Kotlin 中的null使用 ?: Elvis 运算符类和对象构造函数类之间的关系可见性修饰符定义属性委托变量 变量是存储单项数据的容器&#xff0c;必须先声明变量&#xff0c;才可以使用。 常见的数…

Day948.组件化成熟度评估,你的目的地在哪里呢 -系统重构实战

组件化成熟度评估&#xff0c;你的目的地在哪里呢 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于组件化成熟度评估&#xff0c;你的目的地在哪里呢的内容。 一、组件化成熟度模型 组件化成熟度模型可以帮助咱全局去思考当前的现状&#xff0c;并制定更有针对性的…

Kotlin中的?、!!、?:、:: 、== 符号

1、&#xff1f;和&#xff01;&#xff01; 刚学kotlin的时候&#xff0c;发现语法和java差不多&#xff0c;但是有些小符号很有意思。 fun find(name : String) : A ? ? 加在变量名后&#xff0c;系统在任何情况不会报它的空指针异常。 !! 加在变量名后&#xff0c;如果…

kotlin-运算符

区间运算符 闭区间运算符 a不能大于b var rang 1..9for(num in rang){print("${num}") //输出123456789}半开区间运算符 半开区间运算符a until b 用于定义一个从a~b(包括a边界值&#xff0c;但不包含b边界值)的所有值的区间&#xff0c;a不能大于b var rang 1 …

Android开发基础(四)

Android开发基础&#xff08;四&#xff09; 本篇将从Android数据存储方式去理解Android开发。 Android数据存储方式 Android提供了多种数据存储方式。 一、SharedPreferences存储 主要用于存储一些简单的配置信息&#xff0c;如登录账号密码等&#xff1b; 这种存储方式采…

《Kotlin核心编程》笔记:面向表达式编程

面向表达式编程 通俗地理解&#xff0c;表达式就是可以返回值的语句。 1 // 单纯的字面量表达式&#xff0c;值为1 -1 // 增加前缀操作符&#xff0c;值为-1 11 // 加法操作符&#xff0c;返回2 listOf(1,2,3) // 列表表达式 "kotlin".length // 值为6 这些都是非…

Android Activity的启动流程(Android-10)

前言 在Android开发中&#xff0c;我们经常会用到startActivity(Intent)方法&#xff0c;但是你知道startActivity(Intent)后Activity的启动流程吗&#xff1f;今天就专门讲一下最基础的startActivity(Intent)看一下Activity的启动流程&#xff0c;同时由于Launcher的启动后续…

Compose 二三事:绘制原理

setContent做了什么 我们基于一个最简单的例子进行分析 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {Text(text "Hello World!")}} }这里setContent做了什么…

Kotlin泛型<in, out, where>概念及示例

Kotlin泛型<in, out, where>概念及示例 在 Kotlin 中&#xff0c;泛型用于指定类、接口或方法可以操作的对象类型。 in in关键字用于指定泛型类型是“输入”类型&#xff0c;这意味着它将仅用作函数或类的参数。 interface ReadOnly {fun read(): Any }class ReadW…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin&#xff08;二&#xff09; 在 Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin-CSDN博客 基础上&…

三、Kotlin 类型初步

1. 类 & 接口 1.1 类的定义 1.1.1 空类的定义 Java 的定义&#xff1a; public class Foo {}Kotlin 的定义&#xff1a; class Foo注意&#xff1a; 类的访问权限修饰符默认为 public。 若类的 {} 为空&#xff0c;可以省略不写。 1.1.2 带成员的类的定义 Java 中定…

Android画布Canvas裁剪区域clipRect,Kotlin

Android画布Canvas裁剪区域clipRect&#xff0c;Kotlin 只需要把clipRect放在Android系统的super.onDraw之前&#xff0c;就只绘制“剪切”出来的区域。意图很简单&#xff0c;只绘制中心区域宽高为800,600的那一小块&#xff1a; class MyImageView : AppCompatImageView {pr…

java常量和kotlin常量

在java中使用final声明常量在kotlin中使用const val声明常量 常量在编译为字节码后会直接把调用常量的地方直接替换为常量值&#xff0c;示例如下&#xff1a; public class ConstDemo {public static final String NAME "Even";private static final int ID 100…

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure,Kotlin

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://sc…

圆角升级啦,来手把手一起实现自定义ViewGroup的各种圆角与背景

作者&#xff1a;newki 定制圆角与背景的自定义ViewGroup实现 前言 目前线上的一些第三方圆角容器大部分都只支持四周固定圆角&#xff0c;我们一些使用场景只需要顶部圆角&#xff0c;或者底部圆角&#xff0c;或者一个角圆角。 &#xff08;话说为什么我们的UI这么喜欢各种…

有趣的 Kotlin 0x14:Base64编码

前言 Concise. Cross‑platform. Fun. Kotlin 来到 1.8.20 版本, 又给开发者带来了很多更新, 今天关注下标准库中新增的 Base64 相关内容. 原理 Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式。它使用64个不同的字符&#xff08;通常是A-Z、a-z、0-9和两个额…

Kotlin基础

Kotlin基础 一.Kotlin介绍1.诞生2.Kotlin与JVM3.为什么学习kotlin&#xff1f;4.Kotlin跨平台特性 二.变量常量类型条件语句函数1.声明变量2.内置数据类型3.只读变量4.类型推断5.编译时常量6.条件语句&#xff1a;表达式7.String模板8.函数 三.匿名函数函数类型高阶函数&#x…

Kotlin 使用vararg可变参数

文章目录背景Kotlin中使用可变参数对Kotlin可变参数反编译资料背景 一般在项目开发中&#xff0c;我们经常会在关键节点上埋点&#xff0c;而且埋点中会增加一些额外参数&#xff0c;这些参数通常是成对出现且参数个数是不固定的。如下&#xff1a; //定义事件EVENT_ID const…

Android Jetpack之LiveData源码分析

LiveData 是一种可观察的数据存储器类。与常规的可观察类不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;意指它遵循其他应用组件&#xff08;如 activity、fragment 或 service&#xff09;的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的…

androidx.appcompat 升级到1.5.1 趟过的坑

APP 要上google play&#xff0c;Android SDK 版本要升级到32&#xff1b;接了一个第三方SDK&#xff0c;不巧的是这个SDK引用appcompat是1.5.1&#xff0c;顺手把appcompat 包升级到1.5.1&#xff0c;这草率的一升&#xff0c;带来的不止一地鸡毛&#xff0c;还有精神上被残忍…

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

Android 中的控件非常的丰富&#xff0c;我们会陆陆续续的进行介绍&#xff0c;从第九节开始&#xff0c;关于Kotlin 的语法特性就差不多结束&#xff0c;后面如果有发现需要说明的语法&#xff0c;再进行相关的补充。 在Android的控件中&#xff0c;RecyclerView算是一个大控…

Android Compose——Paging3

Paging3效果视频简述HiltRetrofit访问接口网络实例PagingSourceViewModelView效果视频 简述 本Demo采用HiltRetrofitPaging3完成&#xff0c;主要为了演示paging3分页功能的使用&#xff0c;下列为Demo所需要的相关依赖 //retrofitimplementation com.squareup.retrofit2:retr…

Android - LiveData(MutableLiveData)

一、介绍 LiveData是Jetpack提供的一种响应式编程组件&#xff0c;它可以包含任何类型的数据&#xff0c;并在数据发生 变化的时候通知给观察者。LiveData特别适合与ViewModel结合在一起使用&#xff0c;虽然它也可以单 独用在别的地方&#xff0c;但是在绝大多数情况下&#…

什么情况下Activity会被杀掉呢?

作者&#xff1a;Yocn 首先一个报错来作为开篇&#xff1a; Caused by androidx.fragment.app.Fragment$InstantiationException Unable to instantiate fragment xxx: could not find Fragment constructor这个报错原因就是Fragment如果重载了有参的构造方法&#xff0c;没有…

[Android]网络框架之Retrofit(kotlin)

目录 Retrofit简介 Retrofit基本使用 Retrofit的注解 Retrofit的转换器 文件的上传与下载 Retrofit简介 Retrofit是一款由Square公司开发的网络库&#xff0c;但是它和OkHttp的定位完全不同。 OkHttp侧重的是底层通信的实现&#xff0c;而Retrofit侧重的是上层接口的封装…

个人认为重要的Android面试总结六

Activity,Dialog,Toast的Window创建过程 上篇文章说过Dialog的创建&#xff0c;先来回顾下&#xff1a; 1&#xff09;Dialog //构造函数 Dialog(Context context, int theme, boolean createContextThemeWrapper) {//......//获取了WindowManager对象&#xff0c;mContex…

Kotlin和Java 单例模式

Java 和Kotlin的单例模式其实很像&#xff0c;只是Kotlin一部分单例可以用对象类和委托lazy来实现 Java /*** 懒汉式&#xff0c;线程不安全*/ class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance() {if (insta…

Kotlin手记(二):进阶知识

变量的延迟初始化 lateinit和by lazy{} // 可以使用lateinit关键字修饰&#xff0c;可以在使用的时候进行初始化 private lateinit var user:User//调用的时候&#xff0c;需要先初始化user user.getName()但是使用user的时候&#xff0c;必须先要初始化&#xff01; privat…

Kotlin基本语法2基本内置方法

1.Kotlin的可空性 fun main() {var str:String? "butterfly" //?问好代表可空类型str null } 安全的管理 1.1 安全操作调用符 fun main() {var str:String? "butterfly" //?问好代表可空类型str nullprintln(str?.capitalize())//当String为null时…

kotlin伴生对象

Kotlin中没有静态成员&#xff0c;主要原因在于它允许包级属性和函数的存在&#xff1b;Kotlin为静态成员提供了多种替代的方案&#xff1a; 使用包级属性和函数&#xff1a;主要用于全局常量和工具函数&#xff1b; 使用伴生对象&#xff1a;主要用于与类有紧密联系的变量和函…

Kotlin函数和对象

1.高阶函数 如果一个函数的参数是函数类型或者返回值是函数类型&#xff0c;那么这个函数就是高阶函数。 在kotlin中函数也是有类型的&#xff0c;跟整型、字符串类型是同样的性质&#xff0c;函数类型就是将函数的“输入参数类型”和“返回值类型”的抽象表达&#xff0c;如&…

Kotlin学习 6

1.接口 interface Movable {var maxSpeed: Intvar wheels: Intfun move(movable: Movable): String}class Car(var name: String, override var wheels: Int 4, _maxSpeed: Int) : Movable {override var maxSpeed: Int _maxSpeedget() fieldset(value) {field value}overr…

Kotlin中定义List变量却发现找不到clear、addAll等常用方法

问题描述&#xff1a; private val mDatas: List<String> ArrayList()上面这个kotlin代码中定义了一个List&#xff0c;但是在使用的时候却发现没有clear、addAll等常用方法 分析问题&#xff1a; 分析kotlin源码发现&#xff0c;List接口中确实没有定义clear、addAll…

Kotlin实现Android网络请求

1HttpURLConnection的实现方案 网络请求时需要用户确定请求的权限&#xff0c;在xml中加入网络请求的权限 <uses-permission android:name"android.permission.INTERNET"/>网络请求的简单实现 class HttpURLConnectionTest:AppCompatActivity() {override fu…

Android 上的协程(第一部分):了解背景

本系列文章 Android 上的协程&#xff08;第一部分&#xff09;&#xff1a;了解背景 Android 上的协程&#xff08;第二部分&#xff09;&#xff1a;入门 Android上的协程 (第三部分): 实际应用 Android 上的协程&#xff08;第一部分&#xff09;&#xff1a;了解背景 这篇…

Kotlin 面向对象(二)

【文字内容源于《疯狂Kotlin讲义》&#xff0c;代码内容原创】 Kotlin 面向对象&#xff08;一&#xff09;_桃子不出的博客-CSDN博客 目录 四、隐藏和封装 1、包和导包 2、Kotlin的默认导入 3、使用访问控制符 五、深入构造器 1、主构造器和初始化块 2、次构造器和构…

Kotlin学习之旅(D13)-第一个App之功能完善

Kotlin学习之旅第十三天 今天主要是编写代码&#xff0c;继续实现其他的功能 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学…

Kotlin学习之旅(D5)-高级语法

Kotlin学习之旅第五天 今天的主题是&#xff1a;高级语法 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 高级语法 空安全 写过Java代码的人都知道&#xff0c;空指…

Kotlin在Android开发中的应用与实践

Kotlin在Android开发中的应用与实践 通过本篇文章你将了解到下面内容&#xff1a; 介绍Kotlin语言&#xff1a;简述Kotlin语言的背景、特点和优势&#xff0c;为什么Kotlin在Android开发中变得越来越流行。 Kotlin与Java的对比&#xff1a;对比Kotlin和Java在语法、编程范式、…

Kotlin 1.6.0 的新特性

1、稳定版对于枚举、密封类与布尔值主语穷尽 when 语句 一个详尽的when语句包含了所有主题可能的类型或值的分支&#xff0c;或者对于一些类型包含一个else分支。它覆盖了所有可能的情况&#xff0c;使您的代码更加安全。 我们即将禁止非详尽的when语句&#xff0c;以使行为与…

Android开发—入门Kotlin编程语言

一、Kotlin简介 为什么Kotlin能代替Java此为Android官方第一支持的开发语言&#xff1f; 1&#xff09;Kotlin的语法更加简洁&#xff0c;对于同样的功能&#xff0c;使用Ktolin开发的代码量可能会比使用Java开发减少50%甚至更多&#xff1b; 2&#xff09;Kotlin语法更加高…

【Kotlin】流程控制

1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句&#xff0c;并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() {var score 85if (score > 90) {println("优秀")} else if (score > 80) {println("良好")} else if (score &…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

Kotlin协程的JVM实现源码分析(上)

本文从协程的启动launch源码入手分析&#xff0c;协程JVM实现分为两篇&#xff1a; 协程启动和执行源码分析无栈协程 和 Continuation 基本环境&#xff1a; IntelliJ IDEA 2023.3.2Kotlin 1.8.20kotlinx-coroutines-core 1.7.3gradle 8.2 一、协程的启动和执行 以 Global…

Kotlin小知识之高阶函数

文章目录高阶函数定义高阶函数函数类型高阶函数示例内联函数内联函数的作用内联函数的用法noinline与crossinline高阶函数 定义高阶函数 高阶函数和Lambda的关系是密不可分的.像接受Lambda参数的函数就可以称为具有函数式编程风格的API了当我们想要定义自己的函数式API那就得…

Kotlin之基础语法

Kotlin基本语法 程序入口点函数变量注释字符串模板条件表达式空值与 null 检测类型检测与自动类型转换for 循环while 循环when 表达式使用区间(range)集合创建基本类及其实例程序入口点 Kotlin 应用程序的入口点是 main 函数 fun main() {println

Kotlin 惰性集合操作-序列 Sequence

文章目录集合操作函数 和 序列序列中间和末端操作创建序列总结集合操作函数 和 序列 在了解 Kotlin 惰性集合之前&#xff0c;先看一下 Koltin 标注库中的一些集合操作函数。 定义一个数据模型 Person 和 Book 类&#xff1a; data class Person(val name: String, val age:…

Kotlin 面向对象(一)

【文字内容源于《疯狂Kotlin讲义》&#xff0c;代码内容原创】 目录 一、类和对象 1.定义类 2.对象的产生和使用 3.对象的this引用 二、方法详解 1.方法与函数的关系 2.中缀表示法 3.componentN方法与解构 4、数据类和返回多个值的函数 5、在Lambda表达式中结构 三…

【Kotlin】Kotlin基本数据类型

1 变量声明 var a : Int // 声明整数类型变量 var b : Int 1 // 声明整数类型变量, 同时赋初值为1 var c 1 // 声明整数类型变量, 同时赋初值为1 val d 1 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名规范如下。 变量名可以由字母、数字、下划线&#xff08;_&a…

Kotlin~ProtoType原型设计模式

介绍 用原型实列指定创建对象的种类&#xff0c;通过拷贝这些实例创建对象。调用者无需关系内部细节&#xff0c;不调用构造函数。 kt中怎么实现原型模式&#xff0c;就需要借助浅拷贝和深拷贝 浅拷贝&#xff1a;生成一个新对象&#xff0c;新对象和原对象完全相同&#xff…

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置,Kotlin

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置&#xff0c;Kotlin 借鉴 Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心&#xff0c;Kotlin&#xff08;2&#xff09;-CSDN博客 在此基础上实现手指在屏幕上点击后&…

Android---Jetpack Compose学习006

1. 点击 clickable 修饰符允许应用检测对已应用该修饰符的元素的点击。 示例&#xff1a;点击控件&#xff0c;使得内容发生改变 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setCo…

Kotlin基本语法3集合

1.List集合 1.1 只读List fun main() {val list listOf("Jason", "Jack", "Jacky")println(list.getOrElse(3){"Unknown"})println(list.getOrNull(3)?:"Unknown") } 1.2 可变List fun main() {val mutableList mutabl…

【Kotlin】Kotlin流程控制

1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句&#xff0c;并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() {var score 85if (score > 90) {println("优秀")} else if (score > 80) {println("良好")} else if (score &…

registerForActivityResult使用

目录 针对 activity 结果注册回调 启动 activity 以获取其结果 在单独的类中接收 activity 结果 测试 创建自定义协定 registerForActivityResult()是startActivityForResult&#xff08;&#xff09;的替代&#xff0c;简化了数据回调的写法 启动另一个 activity&#x…

Android问题笔记 -关于Kotlin插件版本的问题

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断…

来吧!接受Kotlin 协程--线程池的7个灵魂拷问

前言 之前有分析过协程里的线程池的原理&#xff1a;Kotlin 协程之线程池探索之旅(与Java线程池PK)&#xff0c;当时偏重于整体原理&#xff0c;对于细节之处并没有过多的着墨&#xff0c;后来在实际的使用过程中遇到了些问题&#xff0c;也引发了一些思考&#xff0c;故记录之…

Android 项目开发,增加调试面板,及进入调试面板的入口问题

文章目录前言在每个Activity中都创建一个悬浮窗基于运行时注解&#xff0c;以避免在调试相关的Activity中&#xff0c;添加悬浮窗前言 项目开发过程中&#xff0c;总会遇到一些问题&#xff0c; 需要手动改动一个开关的值&#xff0c;重新编译运行需要手动改动接口地址&#…

Kotlin 基本语法5 继承,接口,枚举,密封

1.继承与重写的Open关键字 open class Product(val name:String ) {fun description() "Product: $name"open fun load() "Nothing .."}class LuxuryProduct:Product("Luxury"){//继承需要调用 父类的主构造函数override fun load(): String {…

Jetpack全家桶手册之ViewModel 源码分析

前言&#xff1a;分析源码时我们可以不计较细枝末节&#xff0c;只分析主要的逻辑即可。因此我们来思考几个问题&#xff0c;并从源码中寻找答案如何做到 activity 重建后 ViewModel 仍然存在&#xff1f;如何做到 fragment 重建后 ViewModel 仍然存在&#xff1f;如何控制作用…

【Kotlin】Kotlin 与 Java 互操作 ② ( @JvmField 注解字段给 Java | @JvmOverloads 注解修饰函数 | @JvmStatic 注解声明静态成员 )

文章目录一、使用 JvmField 注解暴露 Kotlin 字段给 Java1、Java 类中通过 Getter 和 Setter 方法访问 Kotlin 字段2、Java 类中直接访问被 JvmField 注解修饰的 Kotlin 字段二、使用 JvmOverloads 注解修饰 Kotlin 函数1、Kotlin 默认参数函数调用示例2、Java 中调用 Kotlin 默…

深入浅出 Compose Compiler(1) Kotlin Compiler KCP

前言 Compose 的语法简洁、代码效率非常高&#xff0c;这主要得益于 Compose Compiler 的一系列编译期魔法&#xff0c;帮开发者生成了很多样板代码。但编译期插桩也阻碍了我们对于 Compose 运行原理的认知&#xff0c;想要真正读懂 Compose 就必须先了解它的 Compiler。本系列…

你真的了解kotlin中协程的suspendCoroutine原理吗?

文章目录 什么是协程suspendCoroutineUninterceptedOrReturnsuspendCoroutineUninterceptedOrReturn存在的问题suspendCoroutinesuspendCancellableCoroutine ​ 引言&#xff1a; 在Kotlin协程中&#xff0c;如何让一个suspned 函数挂起&#xff1f;如何让挂起协程恢复&#…

个人认为重要的Android面试总结五

kotlin kotlin为什么被设计出来&#xff1f; kotlin被设计出来并被Google推广&#xff0c;主要有以下优势&#xff1a; 完全兼容Java更少的空指针异常更少的代码量&#xff0c;更快的开发速度 kotlin工作原理 首先&#xff0c;我们了解下Java的工作原理&#xff1a; Java …

Compose使用快捷方式shortcut

目录简述静态定义shortcuts.xmlstrings.xmlandroidmanifest.xml动态注册添加快捷方式到桌面添加快捷方式源码点击按钮添加简述 以下代码均基于 compose 编写 Android7.1 开始加入了长按应用弹出快捷菜单 可以通过 shortcut 自定义该弹出菜单&#xff0c;比如我们接下来要实现的…

Android App异常崩溃处理详解

异常崩溃是Android项目中一个棘手的问题&#xff0c;即使你做了很多的try - catch处理&#xff0c;也不能保证不崩溃&#xff0c;一旦崩溃就会出现下图的弹窗&#xff0c;xx应用就会停止运行这种体验对于用户来说是很差的&#xff0c;所以很明显我们做的app已经崩溃了。 像现在…

Android kotlin 系列讲解(进阶篇)Jetpack系列之LiveData

<<返回总目录 文章目录 一、LiveData是什么二、LiveData测试一、LiveData是什么 LiveData是Jetpack提供的一种响应式编程组件,它可以包括任何类型的数据,并在数据发生变化的时候通知给观察者。LiveData特别适合与ViewModel结合在一起使用,虽然它也可以单独在别的地方…

Android代码重构系列-02-使用Kotlin协程实现一个支持任务编排的轻量级启动器

前言虽然本文的主题是启动器&#xff0c;但是笔者不打算去写怎么做启动优化&#xff0c;以及怎么实现一个完美的启动器。关于开源的第三方Android启动器已经有很多优秀的轮子了&#xff0c;比如阿里巴巴的alpha&#xff0c;参考 alpha 并改进其部分细节的Anchors&#xff0c;St…

Kotlin语法-Day2

文章目录基本语法1.1函数头学习1.2具名函数参数1.3反引号中函数名特点1.4隐式返回1.4.1分开写函数&#xff08;无参&#xff09;1.4.2合并写函数&#xff08;有参数&#xff09;1.5it关键字1.6匿名函数的类型推断基本语法 1.1函数头学习 fun main() {method01("Tom"…

Android异步消息机制

一、异步消息处理机制Handler Android中的异步消息处理主要由4个部分组成&#xff1a;Message、Handler、MessageQueue和Looper。 Message Message是在线程之间传递的消息&#xff0c;它可以在内部携带少量的信息&#xff0c;用于在不同线程之间传递数据。如Message的what字段…

Android Jetpack-Databinding基本使用

文章目录 让你的项目支持Databinding基本使用布局和绑定表达式常用运算符判空null获取对象属性避免空指针异常其他控件引用资源引用 事件处理import,variables,and includesimportVariablesIncludes 数据更新->UI更新监听字段变化更新监听对象变化更新 UI更新->数据更新绑…

Jetpack Compose中的列表控件LazyRow和LazyColumn详解

背景 如果你需要显示大量的条目&#xff08;或一个未知长度的列表&#xff09;&#xff0c;使用像 Column 这样的布局会导致性能问题&#xff0c;因为所有的条目都会被组合和布局&#xff0c;无论它们是否可见。那么&#xff0c;在Compose中有没有像RecycleView的控件可以滑动…

Android“真正的”模块化

作者&#xff1a;bytebeats 模块化背后的原则概述 “如果说SOLID原则告诉我们如何将砖块排列成墙和房间, 那么组件原则则告诉我们如何将房间排列成建筑.” ~ Robert C. Martin, Clean Architecture 你应该分层打包还是分特性打包?还有其他方法吗? 如何提高项目的编译时间? 你…

深入学习 Kotlin 枚举的进阶用法:简洁又高效~

翻译自&#xff1a;https://towardsdev.com/mastering-enums-in-kotlin-a-guide-to-simplify-your-code-130b5934cb16 Kotlin 作为现代的、强大的编程语言&#xff0c;可以给开发者提供诸多特性和工具&#xff0c;得以帮助我们编写更加高效、更具可读性的代码。 其中一个重要的…

kt:reified和sam转换(Single Abstract Method Conversions)

什么是refied关键字 ​由于我们都知道Kotlin和Java一样都存在着泛型擦除问题&#xff0c;而Kotlin它知道Java所带来的这个问题&#xff0c;所以对此Kotlin留了一个后门&#xff0c;就是通过inline函数保证使得泛型类的类型实参在运行时能够保留&#xff0c;这样的操作 Kotlin 中…

Android实现动态换肤-原理篇

学习是一个过程。 文章目录Activity中LayoutInflater加载布局总体时序图LayoutInflater源码讲解&#xff08;api28&#xff09;LayoutInflater设置Factory2实现方式LayoutInflater源码总结Activity中LayoutInflater加载布局总体时序图 LayoutInflater源码讲解&#xff08;api28…

Android项目配置kotlin环境,加载kotlin包

1.可以直接改环境。 或者手动添加&#xff0c;项目gradle&#xff1a; buildscript {ext.kotlin_version 1.3.50dependencies {...classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"...// NOTE: Do not place your application dependencies…

Android应用-开发框架设计

目录 1. &#x1f4c2; 简介 1.1 背景 1.2 专业术语 2. &#x1f531; 总体设计思想 2.1 分层&#xff1a;组件化设计框架 2.2 分类&#xff1a;应用开发架构图 3. ⚛️ 框架详细设计 3.1 组件化框架外形 3.2 业务模块化 3.3 代码编程框架 4. &#x1f4a0; 框架其他…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(4)移植到compose-jb实现跨平台

前言 在上一篇文章中&#xff0c;我们已经实现了游戏的所有界面和逻辑代码&#xff0c;并且在 Android 上已经可以正常运行。 这篇文章我们将讲解如何将其从使用 jetpack compose 修改为使用 compose-jb 从而实现跨平台。 老规矩&#xff0c;先看效果图&#xff1a; 可以看到…

kotlin协程async与await

kotlin协程async与await import kotlinx.coroutines.* import kotlin.system.measureTimeMillisfun main() {val time measureTimeMillis {runBlocking {/*** async 是 CoroutineScope 扩展函数&#xff0c;async 和 launch 的区别在于async 可以返回协程结果&#xff0c;而 l…

使用kotlin用回溯法解决电话号码的字母组合问题

17. 电话号码的字母组合 难度中等 2474 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#…

Kotlin学习 - Kotlin中的标准函数let、with、run、apply

Kotlin标准函数&#xff1a; 标准函数let fun main() {val student Student("lucky", 19);study(student) }fun study(student: Student?) {study?.doHomework()study?.readBooks() }在Kotlin学习 - 可空系统类型中&#xff0c;如果入参是可以为空的&#xff0…

KMM初探与编译过程详解

本文字数&#xff1a;22817字 预计阅读时间&#xff1a;58分钟 简介 KMM&#xff0c; 即Kotlin Multiplatform Mobile&#xff0c;是由Kotlin发布的移动端跨平台框架。相比于其他跨平台框架&#xff0c;KMM是原生UI逻辑共享的理念&#xff0c;共享重复逻辑性的工作来提升开发效…

kotlin用CoroutineScope启动协程async等待结果返回

kotlin用CoroutineScope启动协程async等待结果返回 例如&#xff1a; import kotlinx.coroutines.*object MyCoroutineScope {private val coroutineContext Job() Dispatchers.Default CoroutineName("my_context")val coroutineScope CoroutineScope(corouti…

【小沐学Android】Material Design设计规范之颜色篇

文章目录 1、简介1.1 Android1.2 Material Design 2、Material Design 12.1 材料设计2.2 颜色 3、Material Design 23.1 材料系统3.2 颜色 4、Material Design 34.1 颜色样式4.2 配色方案4.3 Material Theme Builder 结语 1、简介 1.1 Android 谷歌在2007年发布了第一个测试版…

Kotlin 协程的基本概念及用法

协程是什么&#xff1f; 协程是一种编程思想&#xff0c;并不局限于特定的语言。除 Kotlin 以外&#xff0c;其他的一些语言&#xff0c;如 Go、Python 等都可以在语言层面上实现协程。 Kotlin Coroutine 本质上是 Kotlin 官方提供的一套线程封装 API&#xff0c;其设计初衷是…

车载 Android开发面试习题

随着车联网技术的不断发展和普及&#xff0c;越来越多的汽车厂商开始使用 Android 操作系统作为车载娱乐和信息娱乐系统的核心。在这个趋势下&#xff0c;车载 Android 应用开发程序员的需求也日益增加。 像一些车企大厂不惜给出 30K~60K的高资&#xff0c;去广招这方面的技术人…

Android JetPack组件之Lifecycle

官方文档地址&#xff1a;https://developer.android.google.cn/topic/libraries/architecture/lifecycle 定义 Lifecycle是Jetpack提供的一个组件&#xff0c;可以感知Activity,Fragment的生命周期变化。这些组件可以根据 Activity 或 Fragment 的当前生命周期状态自动调整其…

切底掌握Android中的Kotlin DSL

前言 在这篇文章中&#xff0c;我们将学习如何在您的 Android 项目中编写 Kotlin DSL。 这个文章会很长&#xff0c;所以花点时间&#xff0c;让我们一起来写你的 DSL。我们将讨论以下主题&#xff0c; 什么是简单英语中的 DSL&#xff1f;您使用任何 DSL 吗&#xff1f;为什…

Kotlin从小白到大牛第1篇 【Kotlin】基础视频课程-关东升-专题视频课程

Kotlin从小白到大牛第1篇 【Kotlin】基础视频课程—7239人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第一部分&#xff0c;主要内容包括&#xff1a;Kotlin语法基础、Kotlin编码规范、数据类型、字符串、运算符、程序流程控制、函数、面向…

null安全与异常

一、null安全 Kotlin把运行时间可能会出现的null问题&#xff0c;以编译时错误的方式&#xff0c;提前在编译期&#xff0c;而不是等到运行时报错&#xff0c;防患于未然&#xff0c;提高了程序的健壮性。可空性 在Kotlin中&#xff0c;除非另有规定&#xff0c;变量不可为nul…

Jetpack Compose 中组件使用教程(比较全面)

前言 在本文中&#xff0c;我们将学习 Jetpack Compose&#xff0c;这是一个用于构建原生 UI 的现代工具包。 通过这个完整的教程&#xff0c;我们将学习如何使用 Text、TextField、Preview、Column、Row、Button、Card、AlertDialog、MaterialDesign 元素等。因此&#xff0…

Android kotlin 系列讲解(进阶篇)高级项目架构模式 - MVVM

<<返回总目录 1、MVVM是什么 MVVM是Model-View-ViewModel的缩写&#xff0c;是一种高级项目架构模式。 MVVM架构可以将程序结构主要分成三个部分&#xff1a; Model&#xff1a;数据模型部分&#xff0c;包括从服务端获取的json数据或者从本地获取的数据等等View&…

命令模式----读书笔记

定义 命令模式将“请求”封装成对象&#xff0c;以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销操作。 例子 我们写一个遥控器的例子。在遥控器上按lightOn的按钮&#xff0c;远程控制电灯打开。 interface Command {//命令接口&#xff0c;其他命…

[Android Material Design]组件15 - BottomNavigationView

文章目录效果图关键代码源码地址效果图 越来越多的APP采用底部五个TAB页的布局&#xff0c;因此谷歌官方直接提供了现成的组件BottomNavigationView&#xff0c;需要结合Fragment来使用&#xff0c;为每个TAB页添加Fragment实例来实现各自的逻辑。 关键代码 class MainActivi…

【Gradle】settings.gradle学习

settings.gradle.kts或settings.gradle有如下作用: 自定义插件仓库地址, 这对于中国用户非常重要pluginManagement {repositories {maven {setUrl("https://maven.aliyun.com/repository/gradle-plugin")}gradlePluginPortal()mavenCentral() }定义多模块: 2.1. 同级…

Android BitmapDrawable.bitmap与BitmapFactory.decodeResource获取不到原始图像素级真实宽高,Kotlin

Android BitmapDrawable.bitmap与BitmapFactory.decodeResource获取不到原始图像素级真实宽高&#xff0c;Kotlin 当一个图片放在ImageView里面后&#xff0c;用以下方式获取图的宽高&#xff1a; val bmp1 (this.drawable as BitmapDrawable).bitmapLog.d("fly", &…

Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解

在Kotlin编程语言中&#xff0c;为了更好地处理可能为null的对象引用&#xff0c;引入了一系列优雅且实用的操作符和函数。本文将深入探讨其中三个关键工具&#xff1a;安全导航操作符?.、空合并运算符?:以及let函数&#xff0c;并通过示例代码展示其应用场景。 安全导航操作…

安卓 Kotlin 面试

&#x1f525; 1、请简述什么是 Kotlin&#xff1f;它有哪些特性&#xff1f;&#x1f525; kotlin和java一样也是一门jvm语言最后的编译结果都是.class文件,并且可以通过kotlin的.class文件反编译回去java代码,并且封装了许多语法糖,其中我在项目中常用的特性&#xff1a;扩展…

二十七 超级数据查看器 讲解稿 APP的用途 能做什么

二十七 超级数据查看器 讲解稿 APP的用途 能做什么 ​ 点击此处 访问B站 以新页面观看教学视频 点击此处 访问豌豆荚 下载APP 讲解稿全文: 大家好&#xff0c;今天我们讲一下超级数据查看器 的用途 也就是讲软件有什么用&#xff0c;能做什么&#xff0c;应用场景&#xff0…

【Kotlin】运算符函数、解构函数、中缀函数

1 一元运算符 1.1 符号和函数 符号函数aa.unaryPlus()-aa.unaryMinus()!aa.not()aa.dec()a--a.inc() 1.2 案例 fun main() {var stu Student("Tom", 13)println(-stu) // 打印: [moT, 31] }class Student(var name: String, var age: Int) {operator fun unaryM…

Kotlin学习 - 选择控制if 和when

Kotlin中的选择控制有两种方式&#xff1a;if和when if选择语句 Kotlin的if语句和Java中的类似&#xff1a; fun max(a: Int, b: Int): Int {return if (a > b) a else b }只有一行语句可以省略大括号&#xff0c;返回类型可自动推导出来&#xff0c;所以最后可以写成 f…

安卓Kotlin面试题 41-50

41、如何在 Kotlin 中实现 Builder 模式?首先,在大多数情况下,您不需要在 Kotlin 中使用构建器,因为我们有默认和命名参数,但如果您需要使用://add private constructor if necessary class Car( val model: String?,val year: Int) { private constructor(build…

Android Kotlin知识汇总(四)Kotlin 协程实践

Kotlin的重要优势及特点之——结构化并发 Kotlin 协程是一种并发设计模式&#xff0c;可以在 Android 平台上让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理&#xff0c;例如网络调用、本地数据访问等任务的管理。 简单来说&#xff0c;协程就是一种轻量级的非…

Kotlin中的Map集合

在Kotlin中&#xff0c;Map集合用于存储键值对&#xff08;Key-Value Pair&#xff09;&#xff0c;其中键&#xff08;Key&#xff09;是唯一的&#xff0c;而值&#xff08;Value&#xff09;可以重复。Map集合分为可变集合&#xff08;MutableMap&#xff09;和不可变集合&a…

【第一阶段】kotlin的函数

函数头 fun main() {getMethod("zhangsan",22) }//kotlin语言默认是public,kotlin更规范&#xff0c;先有输入&#xff08; getMethod(name:String,age:Int)&#xff09;再有输出(Int[返回值]) private fun getMethod(name:String,age:Int): Int{println("我叫…

Kotlin跨平台的网络请求框架-跨平台的Retrofit

前言 一般安卓开发中网络请求框架都是使用OkHttpRetrofit,但其只能应用于jvm平台上 而Kotlin可用于jvm,js,native 因此一个Kotlin跨平台的网络请求框架必不可少 而ktor-client是Kotlin官方提供的网络请求框架,可以跨平台的进行网络请求(官网) 与之对应的还有ktor-server可以…

[Kotlin] 玩Android代码学习之-模块化+Retrofit+协程+viewModel的数据层封装

文章目录 1:前言玩Android APP 源码本贴的目的参考贴 2: kotlin下的模块化(捎带一嘴)3:Retrofit协程viewModel3.1基础网络层搭建lib_home:Bannerlib_common: BaseResp lib_common:RetrofitManagerlib_home: HomeApi 3.2基础网络层接口测试3.3 基础网络层优化-koin依赖注入框架…

kotlin + LiveData 测试

viewModel测试&#xff1a;https://developer.android.com/codelabs/basic-android-kotlin-compose-test-viewmodel#3 androidTestImplementation "org.jetbrains.kotlin:kotlin-test:1.9.0"androidTestImplementation org.jetbrains.kotlinx:kotlinx-coroutines-tes…

Android kotlin 跳转手机热点开关页面和判断热点是否打开

Android kotlin 跳转手机热点开关页面和判断热点是否打开 判断热点是否打开跳转手机热点开关页面顺带介绍一些其他常用的设置页面跳转 其他热点的一些相关知识Local-only hotspot 参考 判断热点是否打开 网上方法比较多&#xff0c;我这边使用了通过WifiManager 拿反射的getWi…

Android Bitmap详解(下)之图片缓存详解

前言&#xff1a; 之前有出过俩篇关于bitmap相关的讲解&#xff0c;分别是Bitmap详解(上)常用概念和常用API和Bitmap详解(中)之像素级操作&#xff0c;今天主要是来一个系统的总结。 认识Bitmap&#xff1a; Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像…

Kotlin 协程与生命周期感知组件一起使用

一、build.gradle 引入 //CoroutineScope 生命周期感知组件 协程implementation androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0implementation androidx.lifecycle:lifecycle-runtime-ktx:2.4.0implementation androidx.lifecycle:lifecycle-livedata-ktx:2.4.0 二、View…

Kotlin 高阶函数详解

高阶函数 在 Kotlin 中&#xff0c;函数是一等公民&#xff0c;高阶函数是 Kotlin 的一大难点&#xff0c;如果高阶函数不懂的话&#xff0c;那么要学习 Kotlin 中的协程、阅读 Kotlin 的源码是非常难的&#xff0c;因为源码中有太多高阶函数了。 高阶函数的定义 高阶函数的…

Android JNI修改ByteArray参数并返回

在JNI中修改ByteArray类型的参数并返回&#xff1a; 添加native方法 class TestLib {companion object{init {System.loadLibrary("jnitest")}}external fun modifyByteArray(data:ByteArray):ByteArray } var data byteArrayOf(1,2,3,4,5,6) Log.i(TAG,"in …

探索Kotlin的魔法:高阶函数与内联函数的奇妙世界

高阶函数就是指那些接受其他函数&#xff08;或 Lambda 表达式&#xff09;作为参数&#xff0c;或者返回一个函数&#xff08;或 Lambda 表达式&#xff09;作为结果的函数。这种特性使得函数成为了一等公民&#xff0c;可以像其他数据类型一样在代码中传递、操作和使用。 在…

Android~Kotlin——基于android studio环境搭建

环境配置自录视频下载地址&#xff08;从创建工程开始&#xff09;&#xff1a; http://pan.baidu.com/s/1eSuUGKi 吐槽&#xff1a;原来打算用IntellJ IDEA 2016.1,但是安卓环境总是出问题&#xff0c;所以还是选择 android studio了

Android studio使用干货(七)

1.bitmap文件转换为File&#xff1a; Throws(IOException::class)fun saveFile(bm: Bitmap, fileName: String): File { //将Bitmap类型的图片转化成file类型&#xff0c;便于上传到服务器val path Environment.getExternalStorageDirectory().toString() "/Ask"va…

【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

文章目录 一、页面跳转间的传统的数据传递方式1、传统的数据传递方式 - Bundle 传递数据1、Navigation 组件中的 Bundle 数据传递2、传统数据传递实现步骤3、FragmentA 完整代码示例4、FragmentB 完整代码示例5、执行结果 2、使用 Bundle 传递数据安全性差 二、页面跳转间的传统…

6、深入解析Kotlin类与对象:构造、伴生、单例全面剖析

前言 本篇文章将带您了解Kotlin编程中的重要概念&#xff1a;类及构造函数、访问修饰符、伴生对象和单例模式。就像搭积木一样&#xff0c;我们会逐步揭开这些概念的面纱&#xff0c;让您轻松理解它们的作用和用法。无论您是编程新手还是有经验的开发者&#xff0c;本文都将为…

Kotlin 协程 - 生命周期 Job

一、概念 对于每一个由协程构建器开启的协程&#xff0c;都会返回一个 Job 实例用来管理协程的生命周期。launch()直接返回 Job实现&#xff0c;async() 返回的 Deferred 实现了 Job接口。 Job public fun start(): Boolean public fun cancel(cause: CancellationException? …

Kotlin 中的协程 flow

一、Flow概述 Flow 具有异步挂起 suspend 响应式编程&#xff0c;可以使用挂起函数来异步生产和消费事件&#xff0c;Flow 的设计灵感也来源于响应式流以及其各种实现。 二、Flow 的生产和消费 suspend fun test1() {flow<Int> {(0..4).forEach {emit(it)//生产者发送…

Kotlin中reified 关键字

前言 在开始之前&#xff0c;让我们先讨论一下泛型。泛型用于为类、函数或接口提供通用的实现。下面是一个示例泛型方法&#xff1a; fun <T> displayValue(value: T) {println(value) }fun main() {displayValue<String>("Generics")displayValue<…

Kotlin中的数值类型

在Kotlin中&#xff0c;Byte、Short、Int、Long、Float和Double是基本数据类型&#xff0c;用于表示不同范围和精度的数值。 Byte&#xff08;字节&#xff09;&#xff1a;Byte类型是8位有符号整数类型&#xff0c;取值范围为-128到127。在Kotlin中&#xff0c;可以使用字面值…

buildSrc使用kotlin开发plugin配置

buildSrc使用kotlin开发plugin配置 配置 apply plugin: java-gradle-plugin apply plugin: kotlinbuildscript {repositories {mavenLocal()maven {url uri("${rootProject.rootDir}/.repo")}maven { url https://maven.aliyun.com/nexus/content/groups/public }m…

Kotlin笔记2-操作符和扩展方法

1. kotlin的操作符可以重载&#xff0c;在方法前面加 operator 关键字&#xff0c;如下面的重载 运算符 data class Counter(var index: Int)operator fun Counter.plus(increment: Int): Counter {return Counter(index increment) }fun main(args: Array<String>) {…

Flow深入浅出系列之在ViewModels中使用Kotlin Flows

Flow深入浅出系列之在ViewModels中使用Kotlin FlowsFlow深入浅出系列之更聪明的分享 Kotlin FlowsFlow深入浅出系列之使用Kotlin Flow自动刷新Android数据的策略 Flow深入浅出系列之在ViewModels中使用Kotlin Flows Flow出现后&#xff0c;LiveData仍然可以用&#xff0c;并且…

Kotlin_高阶函数详解

Kotlin_高阶函数详解 定义高阶函数高阶函数用法高阶函数模仿实现apply 内联函数的作用高阶函数的实现原理内联函数 noinline和crossinlinenoinline非内联函数局部返回内联函数返回使用内联函数可能会有的错误 参考 定义高阶函数 高阶函数: 如果一个函数接收另一个函数作为参数…

Kotlin 类委托(by)实战

前言&#xff1a; 这篇博客&#xff0c;会以一个实际业务场景为例&#xff0c;逐步教你类委托是如何使用的&#xff0c;同时&#xff0c;也会教你一些关于&#xff0c;提高代码质量的实现思想和实现方式。 如果你只想了解类委托&#xff0c;则可以跳过该部分。 有kotlin使用经…

View 生命周期分析

View 生命周期 View生命周期函数意义onFinishInflateView中所有的子元素均被映射成xml时触发onAttachedToWindow该方法在当前View被附到一个Window上时被调用onMeasureView确定所有子元素的大小onSizeChanged当View大小发生变化时触发onLayout当View分配所有子元素的位置和大小…

Kotlin-小抄(四)类与面向对象编程

声明类 空类 使用class关键字声明类&#xff0c;可以声明一个空类&#xff08;什么都不干&#xff09; 声明类和构造函数 在Kotlin中可以在声明类的同时声明构造函数&#xff0c;声明构造函数直接在类名的后面使用括号将构造函数的参数列表包含即可 // 通常使用这种 class…

学习协程2: 取消和超时

Kotlin协程官方网址 Cancelling coroutine execution 对于长时间运行的程序&#xff0c;需要进行粒度控制&#xff0c;在合适的时间结束协程。launch返回一个job对象&#xff0c;可以使用该对象取消正在运行的协程。取消是抛出 CancellationException&#xff0c;如果不捕捉&…

Kotlin 协程的挂起和阻塞的区别

一&#xff0c;简介 Kotlin协程引入了非常强大的异步编程模型&#xff0c;通过挂起而不是阻塞来实现并发操作。以下是有关Kotlin协程挂起和阻塞的详细介绍&#xff1a; 挂起&#xff08;Suspending&#xff09;&#xff1a; 挂起是指一个协程的执行可以在不阻塞线程的情况下暂…

判断RecyclerView的条目是否满一个屏幕

判断RecyclerView的条目是否满一个屏幕 问题代码实例 问题 经常我们在变成过程中会遇到如何判断RecyclerView条目是否满屏幕的判断&#xff0c;比如搜索框&#xff0c;满屏下滑不显示&#xff0c;滑回来再显示等。 可参考如下代码进行实现。 代码实例 /*** Desc : 验证Recyc…

省去findViewById()方法,kotlin-android-extensions插件

在app模块中引入 plugins {id kotlin-android-extensions } kotlin-android-extensions 这个插件会根据布局文件中定义的控件的id自动生成一个具有相同名称的变量,而不用再调用findViewById()方法了

Android--kotlin语言学习资源

需要的自己下载&#xff0c;地址&#xff1a;http://download.csdn.net/download/chaoyu168/10026899

检查kotlinx-serialization-json的bean类是否都加了@Serializable注解

前言 json解析框架有很多,但Kotlin跨平台只能使用kotlinx-serialization-json 而kotlinx-serialization-json使用的时候需要给bean类加上注解,不然运行时会报错,如下: Serializable class HelpBean(val key: String,val value: String, ) 而官方没有提供检查是否bean类都加…

kotlin教程4:函数进阶

文章目录 可变参数尾递归函数函数式 kotlin教程&#xff1a;编程基础&#x1f48e;数据结构&#x1f48e;面向对象 可变参数 kotlin的函数定义非常灵活&#xff0c;既可以按照顺序传参&#xff0c;也可以通过参数名传参&#xff0c;而且可以设置参数默认值&#xff0c;这些在…

Kotlin协程 - Launch和Async的区别

如果想要在一个非挂起(suspend)方法中调用协程&#xff0c;则需要使用launch或async方式。 launch和async对比 相同点&#xff1a; launch 和 async 构建器都可以用于异步执行任务。 它们都可以在协程上下文中启动一个新的协程&#xff0c;并且该协程的执行是异步的&#xf…

Android CameraX的PreviewView预览圆角

Android CameraX的PreviewView预览圆角 一、需求 相机预览 使用的控件是androidx.camera.view.PreviewView 希望四个角是圆角 二、解决 第一步&#xff0c;将PreviewView 的控件背景 设置为圆角背景**&#xff08;很重要&#xff09;** 第二部&#xff0c;发现OutlineProvider…

JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流

JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流 文章目录JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流1.简介&#xff1a;2.竖向的StaggeredGrid参数&#xff1a;3.简单使用如下&#xff1a;4.竖向瀑布流效果如下&#xff1a;5.横向的…

Kotlin学习 - 类和对象

类定义 使用Java定义一个Person类&#xff0c;代码如下&#xff1a; public class Person {private final String name;private final int age;public Person() { }... }使用Kotlin来定义这个类 class Person {var name ""var age 0fun printInfo() {prin…

Kotlin学习 - 数据类与单例类

数据类 在Java代码中&#xff0c;数据类通常需要重写equals()、hashCode()、toString()这几个方法。虽然有快捷方式可以自动生成&#xff0c;但是还是要我们去点击生成下&#xff0c;并且一个简单的数据类就算没有其他复杂逻辑看着也挺繁琐的&#xff0c;代码如下&#xff1a;…

【kotlin笔记02】kotlin之区间和步长、数组、类型转换和null值处理、kotlin中的函数定义

这篇文章,主要介绍kotlin之区间和步长、数组、类型转换和null值处理、kotlin中的函数定义。 目录 一、kotlin语言 1.1、kotlin的区间和步长 (1)区间设置 (2)步长设置

第2章 探究新语言,快速入门Kotlin编程 2.8Kotlin中的小魔术

2.8.1 字符串内嵌表达式 就是字符串中嵌入变量&#xff0c;这个在C中也使用过&#xff0c;没有啥特别的(变量)如果是单变量的化&#xff0c;只需写成(变量) 如果是单变量的化&#xff0c;只需写成(变量)如果是单变量的化&#xff0c;只需写成变量名即可 2.8.2 函数的参数默认值…

微信公众号--发送模板消息

目录 一、登录微信公众平台二、开通模板消息三、增加及选择模板四、在项目中配置使用五、遇见的问题 一、登录微信公众平台 1、搜索微信公众平台 2、扫码登录后即可跳转 二、开通模板消息 1、在左侧菜单栏找到模板消息 若找不到则点击新的功能 2、点击新的功能后&#x…

初识kotlin—3、控制语句

前言&#xff1a;今年谷歌宣布kotlin&#xff08;以下简称为kt&#xff09;已经成为安卓的官方开发语言&#xff0c;kt的重要性可想而知。就我大约接触一个月的时间来看&#xff08;中间有事情耽误了&#xff09;&#xff0c;16年的时候以为kt还比较新&#xff0c;但是没想到17…

优化细节令人惊叹,用户体验直接拉满!你的App也能如此丝滑!

启动时间是App使用者的第一体验&#xff0c;很多大厂都通过A/B实验论证启动速度的优化可以带来用户留存的显著收益&#xff0c;尤其是体量大的用户&#xff0c;启动时间缩短一点&#xff0c;留存增长一点&#xff0c;那就带来了非常大的收益。因此&#xff0c;启动性能优化一直…

Compose中快捷监听软键盘收起弹出状态方法(兼容Android各个版本)

Compose中快捷监听软键盘收起弹出状态方法 非compose方法监听软键盘收起在compose中监听软键盘收起状态 非compose方法监听软键盘收起 在我们开发compose项目之前就有很多获取软键盘状态的方法&#xff0c;比如如下法1&#xff1a; fun getImeVisible(activity: Activity, cal…

Jetpack Compose实现 验证码输入框

highlight: androidstudio Jetpack Compose 作为 Android 的新一代 UI 开发框架,提供了非常强大的工具来构建用户界面。 今天,我们就利用 Compose 来实现一个炫酷的验证码输入框! 开始的思路是用6个TextField来实现 // 用于存储验证码的长度 val codeLength 6 // 定义一个…

整合来自多个Aurora数据库数据,亚马逊云科技为用户提供数据分析一体化融合解决方案

亚马逊云科技近日在沙利文联合头豹研究院发布的《2023年中国数据管理解决方案市场报告》中再次获评中国数据管理解决方案的领导者位置&#xff0c;并在增长指数和创新指数上获得最高评分。亚马逊云科技凭借其独特的数据服务和数据湖组合、全面的无服务器选项、打破数据传输壁垒…

kotlin Calendar打印每天的信息

fun printEveryDay(){val calendar Calendar.getInstance()calendar.firstDayOfWeek Calendar.MONDAY // 设置一周的第一天为周一val year calendar[Calendar.YEAR]val month calendar[Calendar.MONTH]calendar[year, month] 1 // 设置日期为月份的第一天for (day in 1..c…

【C语言趣味教程】第一章:你好, 世界! 「热门 C 语言专栏《维生素C语言》2023 全新重制」

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; —— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是一套 C 语言趣味教学专栏&#xff0c;目前正在火热连载中&#xff0c;欢迎猛戳订阅&#xf…

Kotlin DSL 现已成为全新 Gradle 构建的默认设置

作者 / Kotlin 产品经理 James Ward、开发者关系工程师 Boris Farber 四年来&#xff0c;Android 一直贯彻 "Kotlin 优先" 的原则&#xff0c;许多 Android 开发者已经做出了改变&#xff0c;陆续推出了效率更高、性能更稳定的应用。然而&#xff0c;尽管 Kotlin (bu…

Kotlin学习之旅(D10)- Unit Test with Kotlin

Kotlin学习之旅第十天 今天的主题是 - - Unit Test with Kotlin 前言 Kotlin学习之旅(D1)-学习计划&基本语法 Kotlin学习之旅(D2)-基本语法 Kotlin学习之旅(D3)-类与继承 Kotlin学习之旅(D4)-函数与Lambda表达式 Kotlin学习之旅(D5)-高级语法 Kotlin学习之旅(D6)-K…

Fragment回退栈

所谓的回退栈管理其实就是将事务添加到栈中&#xff0c;每次popBackStack返回之前的状态。事务回滚。 /*** 跳转到特定的 Fragment** param containerViewId fragment 容器 id* param fragment 对象* param tag 标识*/public void switchToFragment(int con…

Android shader编译原理

作者&#xff1a;tmaczhang 1. 什么是着色器编译卡顿&#xff1f; 着色器是在 GPU&#xff08;图形处理单元&#xff09;上运行的代码。当 Flutter 渲染的 Skia 图形后端首次看到新的绘制命令序列时&#xff0c;它有时会生成和编译一个自定义的 GPU 着色器用于该命令序列。使得…

【Android】Kotlin 快速编译背后的黑科技,了解一下~

前言 快速编译大量代码一向是一个难题&#xff0c;尤其是当编译器必须执行很多复杂操作时&#xff0c;例如重载方法解析和泛型类型推断。 本文主要介绍在日常开发中做一些小改动时&#xff0c;Kotlin编译器是如何加快编译速度的 为什么编译那么耗时? 编译时间长通常有三大原…

聊聊线程安全的操作文件

目录 背景&#xff1a; 解决方案&#xff1a; 方案一&#xff1a; 方案二&#xff1a; 方案三&#xff1a; 方案四&#xff1a; 一点启发&#xff1a; 背景&#xff1a; 最近遇到一个Bug&#xff0c;根因是多个线程执行某方法&#xff0c;会同时操作同一文件。 具体来…

【Android】FFmpeg实现视频剪辑,并兼容Android 12

需求分析 需求很简单&#xff0c;在安卓手机上进行视频裁剪&#xff0c;只要裁短&#xff0c;不要求拼接&#xff0c;也不要求裁剪画面。编码形式直接复制原本的&#xff0c;分辨率码率帧率都直接照搬原本的。 找轮子 尽量不要重复造轮子&#xff0c;有现成的直接找现成的。…

Kotlin学习 - 高阶函数和内联函数

高阶函数定义 如果一个函数接收另一个函数作为参数&#xff0c;或者返回值的类型是另一个函数&#xff0c;那么该函数就称为高阶函数。 以前开发的时候&#xff0c;入参或返回值都是基本类型或者对象&#xff0c;但是在Kotlin中出现了一个新的类型&#xff1a;函数类型。就是…

Kotlin中的委托、属性委托和延迟加载

委托模式是一种常用的设计模式&#xff0c;用于将某个对象的责任委托给另一个对象来处理。在Kotlin中&#xff0c;委托可以通过关键字by来实现&#xff0c;主要分为类委托和属性委托两种形式。此外&#xff0c;Kotlin还提供了延迟加载的功能&#xff0c;可以在需要时才进行初始…

kotlin-小抄(二)操作符和重载

操作符优先级表 eg&#xff1a;重载操作符 data class Counter(var index : Int) // 实现重载必须使用operator修饰符修饰一个从重载操作符函数 operator fun Counter.plus(increment : Int) :Counter {return Counter(index increment) }使用 val counter Counter(1) val …

Kotlin中的Lambda表达式基本定义和使用

在Kotlin中&#xff0c;Lambda表达式是一种简洁的方式来定义匿名函数。Lambda表达式可以作为函数的实际参数或者返回值&#xff0c;使得函数成为高阶函数。本篇博客将介绍Lambda表达式的基本概念以及使用方法&#xff0c;并提供相关的示例代码。 Lambda表达式的基本概念 Lamb…

Kotlin Lambda表达式与标准库中的高阶函数

在Kotlin中&#xff0c;Lambda表达式和标准库中的高阶函数为我们提供了一种简洁而强大的方式来处理集合和执行各种操作。本篇博客将介绍Lambda表达式的基本概念&#xff0c;并结合标准库中的高阶函数示例&#xff0c;展示它们的用法和功能。 Lambda表达式的基本概念 Lambda表…

Kotlin泛型:灵活的类型参数化

在Kotlin中&#xff0c;泛型是一项强大的特性&#xff0c;它允许我们编写可重用、类型安全且灵活的代码。通过泛型&#xff0c;我们可以将类型参数化&#xff0c;使得我们的代码可以适用于不同类型的数据&#xff0c;同时保持类型安全性。本篇博客将介绍Kotlin中的泛型类、泛型…

Android managed configurations(设置受管理的配置)

文章目录 Android managed configurations(设置受管理的配置)远程配置概览定义托管配置检查托管配置读取和应用托管配置监听托管配置更改向 EMM 发送托管配置反馈键控应用状态的组成部分发送托管配置反馈报告已解决的错误为您的应用添加对键控应用状态的支持第 1 步:将 Google…

Android NDK开发详解之针对中间件供应商的建议

Android NDK开发详解之针对中间件供应商的建议 选择 API 级别和 NDK 版本使用 STL在 AAR 中分发原生库包含 JNI 库的 Java 中间件 分发使用 NDK 构建的中间件会引发其他问题&#xff0c;但应用开发者无需对此感到担心。预构建库会为用户提供一些实现选项。 选择 API 级别和 ND…

Android NDK开发详解之使用预构建库

Android NDK开发详解之使用预构建库 声明预构建库从其他模块引用预构建库导出预构建库的头文件调试预构建库为预构建库选择 ABI NDK 支持使用预构建库&#xff08;同时支持静态库和共享库&#xff09;。此功能有以下两个主要用例&#xff1a; 向第三方 NDK 开发者分发您自己的库…

Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图,Kotlin(5)

Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import android.view.…

requests 在 Python 3.2 中使用 OAuth 导入失败的问题与解决方案

问题背景 在Python 3.2中&#xff0c;尝试使用Request的OAuth支持时&#xff0c;遇到了OAuth导入失败的问题。以下代码&#xff1a;import requests from requests.auth import OAuth1url https://api.twitter.com/1/account/settings.jsonqueryoauth OAuth1(client_key, cli…

Kotlin中的lambda从入门到进阶

欢迎关注 Android茶话会 回 学习之路 取Android技术路线经典电子书回 pdf 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍。回 天涯 取天涯论坛200精彩博文&#xff0c;包括小说、玄学等 lambda表达式是Kotlin 函数式编程 的一个重要概念&#xff0c;是函数式编…

【第二阶段】匿名函数隐式返回函数参数

1.匿名函数简单举例 fun main() {//第一种写法,count()获取字符长度val info"kotlin".count()println(info)//第二种写法&#xff0c;使用匿名函数val len"kotlin".count(){//it代表字符串中 k o t l i n 的字符itl}println(len) }执行结果 2.隐式返回 …

【第二阶段】kotlin的lambda学习

匿名函数lambdm表达式 1.两数相加 fun main() {//匿名函数lambda表达式//两数相加 等价&#xff1a;val addResult:(Int,Int)->String{a,b->"两数相加结果&#xff1a;${ab}"}val addResult{a:Int,b:Int->"两数相加结果${ab}"}println(addResul…

帮你解锁 Android 性能优化五大误区和两大疑点!

近年来&#xff0c;社区充斥着关于 Android 性能优化的各种误区&#xff0c;本文本着误区终结者的精神&#xff0c;使用具体的性能检测工具&#xff0c;结合真实案例仔细分析这些情况&#xff0c;并对比它们的测试结果&#xff0c;也会聚焦 Android 开发者平时在编码过程的实际…

Android AlertDialog setView,kotlin

Android AlertDialog setView&#xff0c;kotlin <?xml version"1.0" encoding"utf-8"?> <com.google.android.material.textfield.TextInputLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width…

Kotlin 为什么可以和Java混合开发

学&#xff01; 本文&#xff1a;https://www.jianshu.com/p/e3afe651052b 文章目录前言Kotlin互操作性总结参考文献前言 闲来无聊&#xff0c;和一个朋友聊天。 他突然问我&#xff1a;你知道Kotlin和Java为啥可以混合开发相互调用么&#xff1f; 我&#xff1a;&#xff1f;…

kotlin关键字

object 用于创建单例模式 实例:object Resource {val name "Name" } lazy 懒属性(延迟加载) 实例:object Resource {val name "Name" } when 用于判断 相当于java中的switch()语句 实例:when(color) {"Red" -> 0"Green" -> 1&…

Kotlin高阶函数定义模板

Kotlin高阶函数 高阶函数定义格式示例1&#xff1a; /*** 高阶函数* 此高阶函数接收两个参数&#xff0c;第一个参数是String类&#xff0c;第二个参数是接收String值且返回值为Int的函数。整体返回值是Int类型*/ private fun fun3(str:String,mapper:(String) -> Int):In…

Android 使用Retrofit 表单 上传多张图片

Android 使用Retrofit 表单 上传多张图片 1.ApiService接口声明方法 1.1 headers 里面可以添加业务自己的header参数 Multipart POST("api/uploadPic") fun uploadFiles( HeaderMap headers: HashMap<String, String?> Part parts: List<MultipartBody.…

Kotlin笔记9-Inline functions 内联函数 和 noinline crossinline修饰符

目录 一、 Inline functions 二、noinline 三、Non-local returns 四、Reified type parameters 具体参数类型 五、内联属性 Inline properties (since 1.1) 一、 Inline functions 参考官网对于Inline functions的介绍&#xff1a;http://kotlinlang.org/docs/referenc…

JAVA代码的Kotlin写法(内含代码示例)

&#x1f604;&#x1f604;个人介绍 光子郎.进行开发工作七年以上&#xff0c;目前涉及全栈领域并进行开发。会经常跟小伙伴分享前沿技术知识&#xff0c;java后台、web前端、移动端&#xff08;Android&#xff0c;uniapp&#xff0c;小程序&#xff09;相关的知识以及经验体…

Kotlin的异步机制

Kotlin的异步机制主要建立在协程&#xff08;Coroutines&#xff09;之上&#xff0c;它是一种轻量级的并发编程解决方案。协程允许以顺序的方式编写异步代码&#xff0c;同时提供了简洁、可读性强且易于维护的语法。 Kotlin的协程具有以下特点和概念&#xff1a; 挂起函数&a…

ARouter使用自定义注解处理器,自动生成跳转Activity的代码,避免手动填写和管理path

大家都知道ARouter要跳转目标Activity需要两步&#xff1a; 1.在Activity上添加Route注解 // Add annotations on pages that support routing (required) // The path here needs to pay attention to need at least two levels : /xx/xx Route(path "/test/activity&…

Android中关于使用Kotlin

在项目的app下的build.gradle文件中 apply plugin:com.android.application//创建项目自带的 //下边三个是使用Kotlin开发用到的 apply plugin:kotlin-android apply plugin: kotlin-android-extensions apply plugin:com.goole.gms.oss.licenses.plugin 会报&#xff1a…

Python自动检测Chrome浏览器版本号并下载对应驱动文件[chromedriver.exe]

说明 实现原理是当使用的chromedriver.exe与当前Chrome浏览器版本不一致时会抛出异常&#xff0c;在异常信息中会包含当前Chrome版本信息和Chrome浏览器安装地址信息&#xff0c;通过捕获异常信息&#xff0c;正则匹配就可以过滤出Chrome版本号&#xff0c;然后再去官方动态下…

kotlin从入门到精通之内置类型

基本类型 声明变量 val&#xff08;value的简写&#xff09;用来声明一个不可变的变量&#xff0c;这种变量在初始赋值之后就再也不能重新赋值&#xff0c;对应Java中的final变量。 var&#xff08;variable的简写&#xff09;用来声明一个可变的变量&#xff0c;这种变量在初始…

【Android Jetpack】DataStore的介绍

DataStore Jetpack DataStore是一种数据存储解决方案&#xff0c;允许您使用协议缓冲区存储键值对或类型化对象。DataStore使用Kotlin协程和Flow以异步、一致的事务方式存储数据。 注意&#xff1a;如果您需要支持大型或复杂数据集、部分更新或参照完整性&#xff0c;请考虑使…

Kotlin学习 - 顶层方法和扩展函数

顶层函数 Java中所有的方法是需要定义在类中的&#xff0c;因此我们在封装一些工具方法的时候会先建一个Util的工具类&#xff0c;然后在里面添加我们需要用到的静态方法。 Kotlin中消除了这些静态工具类&#xff0c;可以用顶层方法来替代。 先来个示例&#xff1a; 1、新建…

【kotlin笔记04】kotlin之单例模式、伴生对象、委托机制、异常处理、集合框架

这篇文章,主要介绍kotlin之单例模式、伴生对象、委托机制、异常处理、集合框架。 目录 一、kotlin笔记 1.1、kotlin单例模式 (1)单例类 (2)伴生对象 1.2、委

Android使用Kotlin利用Gson解析多层嵌套Json数据

文章目录 1、依赖2、解析 1、依赖 build.gradle(app)中加入 dependencies { implementation com.google.code.gson:gson:2.8.9 }2、解析 假设这是要解析Json数据 var responseStr "{"code": 200,"message": "操作成功","data&quo…

Kotlin非常用关键字使用记录

1&#xff0c;typealias 声明一个类型别名。 样例&#xff1a; typealias MyBeanItemBean data class ItemBean(val title: String, val intent: Intent) val beanMyBean("11", Intent()) 实现了将ItemBean数据模型取了一个别名MyBean&#xff0c;后续我们可以像…

在assembleRelease之前执行自定义任务

背景 在实际的Gradle项目开发中&#xff0c;我们总是会遇到一些需求&#xff0c;要在release编译的时候执行一些任务&#xff0c;但debug时不需要。然而&#xff0c;Gradle编译有自己的一套生命周期&#xff0c;比如Android项目的assembleRelease任务在编译启动之前是没有办法…

Java反射调用kotlin中的类,Object类,Companion对象

Java反射调用kotlin中的类&#xff0c;Object类&#xff0c;Companion对象 1. Java反射调用kotlin中的普通类 kotlin普通类&#xff1a; package com.common; class TestNormal {fun get():String{return "Nolmal abc"}fun showNum(v:Int){println("Nolmal s…

【Kotlin】类与接口

文章目录 类的定义创建类的实例构造函数主构造函数次构造函数init语句块 数据类的定义数据类定义了componentN方法 继承AnyAny&#xff1a;非空类型的根类型Any?&#xff1a;所有类型的根类型 覆盖方法覆盖属性覆盖 抽象类接口:使用interface关键字函数&#xff1a;funUnit:让…

Kotlin学习——kt里的作用域函数scope function,let,run,with,apply,also

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Kotlin应用——使用kt进行web开发 使用h2database进行初始化数据库 mybatis-plus使用

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 kt入门的合集文章如下&#xff1a; Kotlin学习——kt入门合集博客 &…

算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin

算法&#xff1a;笛卡尔平面坐标系上&#xff0c;若干连接点形成线&#xff0c;剔除距离小于阈值的点&#xff0c;Kotlin const val THRESHOLD 0.6f //距离小于这个点将被剔除。data class Point(val x: Float, val y: Float)fun removeNearbyPoint(points: List<Point>…

Android11适配已安装应用列表

Android11适配已安装应用列表 之前做过已安装应用列表的适配&#xff0c;最近国内版SDK升级到33和隐私合规遇到很多问题&#xff0c;于是把已安装应用列表记录一下&#xff1a; 1、在Android11及以上的适配&#xff1a; package com.example.requestinsttallapplistdemoimpo…

Kotlin作用域函数:let、also、run、apply、with

​​​​​​​ let函数 使用场景&#xff1a;可空变量的操作&#xff0c;无需判空 p?.let {it.name "lily"it.age "21"} also函数 使用场景&#xff1a;多个扩展函数链式调用&#xff08;返回值是本身&#xff09; p?.also {it.name "den…

Kotlin:常用标准库函数(let、run、with、apply、also)

一、let 扩展函数 Kotlin标准库函数let可用于范围确定和空检查。当调用对象时&#xff0c;let执行给定的代码块并返回其最后一个表达式的结果。对象可以通过引用(默认情况下)或自定义名称在块中访问。 let扩展函数源码 let.kt文件代码 fun main() {println("isEmpty $is…

Kotlin 笔记 -- Kotlin 语言特性的理解(一)

函数引用、匿名函数、lambda表达式、inline函数的理解 双冒号对函数进行引用的本质是生成一个函数对象只有函数对象才拥有invoke()方法&#xff0c;而函数是没有这个方法的kotlin中函数有自己的类型&#xff0c;但是函数本身不是对象&#xff0c;因此要引用函数类型就必须通过双…

kotlin take 和 drop

kotlin take的作用 从头开始获取指定数量的元素 val numbers listOf("one", "two", "three", "four", "five", "six") // 取集合的4个集合 Log.d("take", numbers.take(3).toString()) // 打印结果[…

Kotlin 协程 supervisorScope {} 运行崩溃解决

前言 简单介绍supervisorScope函数&#xff0c;它用于创建一个使用了 SupervisorJob 的 coroutineScope&#xff0c; 该作用域的特点&#xff1a;抛出的异常&#xff0c;不会 连锁取消 同级协程和父协程。 看过很多 supervisorScope {} 文档的使用&#xff0c;我照抄一摸一样…

演示kotlin的structured concurrency简化并发异步操作

文章目录 准备http客户端同步调用异步调用structured concurrency用例与机制浅析补充说明 用springboot的 kotlin demo&#xff0c;帮助理解structured concurrency简化异步并发调用的机制 准备http客户端 使用同时支持同步和异步调用的java.net.http.HttpClient Configurat…

Kotlin程序设计(三)高级用法

Kotlin程序设计高级篇 在学习了前面的内容之后&#xff0c;相信各位小伙伴应该对Kotlin这门语言有了一些全新的认识&#xff0c;我们已经了解了大部分的基本内容&#xff0c;从本章开始&#xff0c;就是对我们之前所学的基本内容的进一步提升。 泛型 在前面我们学习了最重要…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin

Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin 手指在上面的图上移动&#xff0c;“剪切”出上面图中以手指触点为中心的图&#xff08;半径图&#xff09;&#xff0c;然后在下面的ImageView显示。 impor…

【Kotlin精简】第3章 类与接口

1 简介 Kotlin类的声明和Java没有什么区别&#xff0c;Kotlin中&#xff0c;类的声明也使用class关键字&#xff0c;如果只是声明一个空类&#xff0c;Kotlin和Java没有任何区别&#xff0c;不过定义类的其他成员会有一些区别。实例化类不用写new&#xff0c;类被继承或者重写…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)

Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图的圆切图&#xff0c;Kotlin&#xff08;4&#xff09; 这篇 Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin&am…

kotlin sealed关键字理解

Kotlin中的"sealed"关键字用于声明一个"密封类"&#xff08;sealed class&#xff09;。密封类是一种特殊的抽象类&#xff0c;用于限制可以继承它的子类。 密封类的主要特点是&#xff0c;它的子类必须定义在与密封类相同的文件中&#xff0c;这样做可以…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin

Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin 在 Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图的圆切图&#xff0c;Kotlin&#xff08;4&#xff09;-CSDN博客 的…

Android黑科技之微信语音助手-长辈关怀利器

前段时间在跟一个长辈交流过程中发现他不识字。但是能听懂普通话。虽然能正常使用微信进行语音聊天。但是文字认不出来&#xff0c;朋友圈也只能看图片。这无疑少了许多乐趣。而且通过进一步沟通了解到如果是工作日有什么事找子女咨询&#xff0c;因为在上班子女也不方便使用语…

Android开发:使用Kotlin+协程+自定义注解+Retrofit的网络框架

对项目的基本介绍 1.整个框架主要是给MVVM框架使用的&#xff0c;自己写完interface接口后&#xff0c;通过自定义的注解就能自动生成接口方法2.用Kotlin的Flow去代替Rxjava&#xff0c;因为我发现RxJava功能很强大&#xff0c;但是大家都只是在Http层面使用了一下&#xff0c…

发布包含源码的Kotlin项目aar包到Maven

以上标题只是个总结&#xff0c;此篇文章实际是踩坑记录。 起因 接手Kotlin项目时&#xff0c;前辈跟我说&#xff0c;项目中依赖的第一方Kotlin库无法调试。排查调用栈时&#xff0c;依赖的第一方库的类竟然没有源码&#xff0c;是反编译出来的。 直接起因 其实前辈跟我说…

Kotlin 解构声明

在一些像 Python 的高级语言中&#xff0c;支持 多返回值的&#xff0c;例如 x, y get_position() 这样操作接收。 而在 Kotlin 中&#xff0c;虽然不支持 多返回值&#xff0c;但有类似的 解构&#xff08;destructure&#xff09; 对象功能&#xff0c;叫做 解构声明。 用…

Android Studio单独编译运行一个Kotlin文件

Android Studio单独编译运行一个Kotlin文件 前言 网上关于Android Studio下Kotlin Android 环境搭建的文章非常多&#xff0c;都是怎么介绍创建Kotlin Android的环境的&#xff0c;但是做为初学者&#xff0c;我想要的没有这么多&#xff0c;我就想通过Android Studio学习Kotli…

kotlin $ (字符串模版)的使用

$ 在kotlin 中当做字符串模版使用&#xff0c;作用就是在字符串里面识别自己定义的字符 例如打印一个字符 这个时候编译就提示我们使用字符串模版的是个 $ 的作用就是识别字符串里面的i 字数有点少了&#xff0c;在写一个demo private fun String.appendArchive(): String …

kotlin sum 与 sumOf

kotlin 中 sum 的作用&#xff1a; 计算一个列表里面数字的总和&#xff1a; val numbers listOf(1, 2, 3, 4, 5) val sum numbers.sum() println("The sum is: $sum") // 打印结果: The sum is: 15 kotlin中sumOf的作用&#xff1a; 也是计算一个列表里面数字…

八、Kotlin 反射

1. 什么是反射 反射是允许在运行时期访问 程序结构 的一类特性&#xff08;程序结构包括&#xff1a;类、接口、方法、属性等&#xff09;。 2. 反射的依赖库 Kotlin 中不仅自己实现了一套 Kotlin 反射的 API&#xff0c;还可以使用 Java 反射的 API。 Kotlin 反射的 API 是…

二、Kotlin 内置类型

1. 基本类型 1.1 Kotlin 和 Java 的基本类型对比 KotlinJava字节Bytebyte/Byte整型Int & Longint/Integer & long/Long浮点型Float & Doublefloat/Float & double/Double字符Charchar/Chararcter字符串StringString 1.2 定义变量 1.2.1 val 只读变量 &…

Kotlin快速入门系列9

Kotlin对象表达式和对象声明 对象表达式 有时&#xff0c;我们想要创建一个对当前类有些许修改的对象同时又不想重新声明一个子类。如果是Java&#xff0c;可以用匿名内部类的概念来解决这个问题。kotlin的对象表达式和对象声明就是为了实现这一点(创建一个对某个类做了轻微改…

Kotlin快速入门系列11

Kotlin的集合 集合类 Java类库有一套相当完整的容器集合类用来持有对象。跟Java一样&#xff0c;集合类存放的都是对象的引用&#xff0c;而非对象本身(我们经常说的集合指的是集合中对象的引用)&#xff0c;Kotlin的集合类是在Java的集合类库基础上进行的优化&#xff0c;新引…

【Hilt】【kotlin】IllegalStateException: Unsupported metadata version. Check that your Kotlin version is

问题&#xff1a; 在kotlinjava混合项目中接入Hilt后编译时报错如下&#xff1a; Execution failed for task :app:kaptDebugKotlin. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction> ja…

Kotlin第5篇项目实战2:开发【Kotlin】版QQ2006聊天工具-关东升-专题视频课程

Kotlin第5篇项目实战2&#xff1a;开发【Kotlin】版QQ2006聊天工具—420人已学习 课程介绍 本视频是智捷课堂推出的一套“Kotlin语言学习立体教程”的视频第五部分项目实战2&#xff0c;主要内容讲解QQ2006聊天工具开发过程课程收益读者以及观看群是零基础小白 通过本视频的…

leetcode1985. 找出数组中的第 K 大整数

给你一个字符串数组 nums 和一个整数 k 。nums 中的每个字符串都表示一个不含前导零的整数。 返回 nums 中表示第 k 大整数的字符串。 注意&#xff1a;重复的数字在统计时会视为不同元素考虑。例如&#xff0c;如果 nums 是 ["1","2","2"]&am…

java 是一种什么类型的语言,附源代码

学好java语言到底能做什么呢?学好java语言到底能做什么呢?1.可以自己设计游戏与其玩游戏,不如自己设计游戏;或许你不知道,在以前,我们玩的很多手机游戏都是通过Java开 就是java。实力君认为这些都是最经常使用的用Java编写的桌面应用程序吧。 Java设计模式种类一、什么是Java…

Android中的WorkManager

Android中的WorkManager 在后台运行任务会消耗设备有限的资源&#xff0c;如RAM和电池。这可能会导致用户体验不佳。例如&#xff0c;后台任务可能会降低设备的电池寿命或用户在观看视频、玩游戏、使用相机等时可能会遇到设备性能不佳的情况。 为了提高电池性能&#xff0c;An…

【kotlin笔记05】kotlin之Lambda表达式、lambda作为函数参数、lambda作为函数返回值、lambda表达式调用的几种方式

这篇文章,主要介绍kotlin之Lambda表达式、lambda作为函数参数、lambda作为函数返回值、lambda表达式调用的几种方式。 目录 一、kotlin笔记 1.1、lambda表达式 (1)无参数有返回值 (2)有参数有返回值

android实现外部xml文件动态转view布局

首先用as创建xml布局文件&#xff0c;然后用aapt或者as进行编译生成二进制xml文件存放服务器&#xff0c;app下载编译后的xml文件&#xff0c;调用系统解析器XmlResourceParser解析&#xff0c;最后LayoutInflater转换成View。 /*** 二进制xml转view** param context* param b…

Kotlin~迭代器模式

概念 提供一种遍历集合元素的方法&#xff0c;而不暴露集合内部的实现。 角色介绍 iterator 迭代器接口: 定义访问和遍历集合元素的接口&#xff0c;一般包含next和hasNext方法。concrete iterator 具体迭代器: 实现迭代器接口&#xff0c;迭代器的核心逻辑实现。aggregate …

[Android Material Design]组件01 - FloatActionButton

文章目录效果图关键代码源码地址效果图 关键代码 xml布局文件如下 <com.google.android.material.floatingactionbutton.FloatingActionButtonandroid:id"id/fab"android:layout_width"wrap_content"android:layout_height"wrap_content"an…

再聊对称加密、非对称加密(Kotlin)

对称加密 发送方和接收方 用同一个秘钥对数据加密解密 例&#xff1a; A和B约定好秘钥"123456"&#xff08;比如客户端和服务端&#xff09; A给B发消息&#xff1a;"我喜欢你" A用 "123456" 对 “我喜欢你” 加密得到结果 “乱码”&#x…

Android Jetpack(二) 基础

1、Android KTX - 编写更简洁、惯用的 Kotlin 代码 KTX 拥有的一些 扩展程序列表 dependencies { //androidx.activity implementation "androidx.activity:activity-ktx:1.1.0" //androidx.benchmark implementation "androidx.benchmark:benchmark-junit4:1…

根据WanAndroid开放Api打造自己的WanAndroid App

WanAndroid 适合新手学习的项目 根据鸿神提供的WanAndroid开放Api来制作的WanAndroidApp, 基本实现了所有的功能&#xff0c;使用Java/kotlin语言开发&#xff0c;基于Material DesignAndroidX MVP RxJava Retrofit等优秀的开源框架&#xff0c;实现的一个尽可能体验较佳的…

简单的Image Picker:使用Jetpack Compose无需权限申请

简单的Image Picker&#xff1a;使用Jetpack Compose无需权限申请 学习如何在Android应用中轻松选择、存储和加载本地图像&#xff0c;无需繁琐的权限处理。 作为一名Android开发者&#xff0c;我知道在应用中实现本地图像选择时处理权限可能会让人感到沮丧。这就是为什么我想…

Android Jetpack(一) 介绍

Jetpack 是一套库、工具和指南&#xff0c;可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务&#xff0c;以便您将精力集中放在所需的代码上。 Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着&…

Android 学习之《第一行代码》第三版 笔记(一)Kotlin 继承时的括号到底写不写

内容学习来源&#xff1a; 第 2 章 探究新语言&#xff0c;快速入门 Kotlin编程 目录一、问题来源二、继承与构造函数&#xff08;一&#xff09;前置知识&#xff08;二&#xff09;括号代表了什么&#xff08;三&#xff09;继承时&#xff0c;什么时候不要加括号1. 子类的括…

Android Studio获取系统当前时间

//注意要引用下面两个包//import java.text.SimpleDateFormat//import java.util.*val 自定义时间格式 SimpleDateFormat("YYYY-MM-dd HH:mm:ss")//定义一个时间格式val 当前时间 Date(System.currentTimeMillis()) //获取系统当前时间val 当前自定义时…

android studio全局变量的使用

新建一个 Kotlin 文件&#xff0c;在里面新建一个对象然后在其它任意 Activity中就可以 直接引用如&#xff1a;公共变量对象.姓名“张三” 在其它Activity中引用 var 姓名公共变量对象.姓名

【Kotlin】第三方支付

新建kotlin项目AlipayProject 引入anko&#xff0c;关于如何引入可以查看之前的文章&#xff1a;增量更新 打开支付宝开放平台中的APP支付&#xff0c;下载App支付sdk&demo

【Kotlin】热修复

文章目录使用Andfix获取差分包不足资源下载使用Andfix AS创建kotlin项目 AndroidManifest增加权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" />activity_main.xml放一个TextView <TextViewandroid:id"id/tv_resul…

【Kotlin】坦克大战2:地图和我方坦克绘制

文章目录创建模型按照地图绘制我方坦克绘制创建模型 新建一个Wall类 class Wall {//位置var x:Int 100var y:Int 100//宽高var width:Int Config.blockvar height:Int Config.block//显示行为fun draw(){Painter.drawImage("img/wall.gif",x,y)} }我们在绘制墙…

【Kotlin】数据类 data class、copy、componentN函数

文章目录data class应用场景data class为我们做了什么copy函数componentN函数-解构声明(Destructuring Declarations)两个等号和三个等号data class 应用场景 创建一些类除了保存数据不干其他事情&#xff0c;比如我们解析网络请求下来的数据。Kotlin就提供了一个非常方便的c…

【kotlin】面向对象、封装、继承、多态

文章目录面向对象封装继承多态主构造函数和次构造函数面向对象 fun main(args: Array<String>) {var rect01 Rect(20,10)println("矩形的宽度&#xff1a;"rect01.width"&#xff0c;矩形的高度&#xff1a;"rect01.height) }class Rect(var width…

【kotlin】人机交互和异常处理

文章目录人机交互异常处理人机交互 我们从键盘输入两个数字&#xff0c;然后打印它们的和 首先先得到从键盘输入的字符串 println("请输入第一个数字")var num1Str readLine()println("请输入第二个数字")var num2Str readLine()然后转数字 我们发现报…

【kotlin】默认参数和具名参数

我们来计算一个半径为2.0f的圆的周长 fun main(args: Array<String>) {println(getCircleArea(3.14f,2.0f)) }//获取长方形面积 fun getRectArea(x:Float,y:Float):Float{return x*y } //根据半径获取圆周长 fun getCircleArea(PI:Float,r:Float):Float{return 2*PI*r }…

kotlin withTimeoutOrNull超时返回

kotlin withTimeoutOrNull超时返回 import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeoutOrNullfun main(args: Array<String>) {testTimeOut(1000) //如果是2000&#xff0c;则正常返回 OK }fun testTimeOut(…

【kotlin】字符串

文章目录字符串模板字符串比较空值字符串和数字间的转换字符串模板 fun main(args: Array<String>) {println(diaryGenerator("中山公园")) }fun diaryGenerator(placeName:String):String{var temple "今天天气很晴朗&#xff0c;今天去${placeName}玩…

【kotlin】函数和命令行交互式终端

文章目录函数布尔值进一步了解函数函数的声明命令行交互式终端下载配置环境变量使用命令行完成刚才的运算函数 打印一个菱形 fun main(args: Array<String>) {print1star()print3star()print5star()print3star()print1star() } fun print1star(){println(" *&quo…

Kotlin 消息摘要

常用算法&#xff1a;md5、sha1、sha256 特点&#xff1a;不可逆&#xff08;加密后无法破解&#xff09; 应用场景&#xff1a; 1. 对用户密码进行md5加密后保存到数据库里 2. 软件下载站使用消息摘要计算文件指纹&#xff0c;防止被篡改 3. 数字签名 /*** 消息摘要*/ obje…

Android kotlin序列化之@Parcelize详解与使用

一、介绍 在Android开发过程中&#xff0c;序列化使用概率一直很高。在页面之间传递的对象&#xff0c;需要要使用序列化&#xff0c;常见的序列化&#xff1a;Parcelable、Serialization。 由于Parcelable在传递压缩比高&#xff0c;效率高&#xff0c;一直被Google官方推荐。…

Android生态下的Kotlin有哪些更新#GoogleIO 2023

Android生态下Kotlin有哪些更新#GoogleIO 2023 自Android官方宣布Kotlin作为Android开发的第一语言&#xff0c;过去将近6年时间。下面是GoogleIO 2023宣布的Android生态的4项重要更新。 Kotlin编译器2.0版本 如果你是一位Kotlin开发者&#xff0c;你可能会对听到这个消息感…

学习Kotlin~字符串

字符串 substring字符串截取 支持inRange类型的参数&#xff0c;表示的是一个整数范围的类型until创建的范围不包括上限值 const val NAME "Jimmys friend"fun main() {val index NAME.indexOf("\")println(index)//until创建的范围不包括上限值val st…

一起看 I/O | 将 Kotlin 引入 Web

作者 / 产品经理 Vivek Sekhar 我们将在本文为您介绍 JetBrains 和 Google 的早期实验性工作。您可以观看今年 Google I/O 大会中的 WebAssembly 相关演讲&#xff0c;了解更多详情: https://youtu.be/RcHER-3gFXI?t604 应用开发者想要尽可能地在更多平台上最大限度地吸引用户…

Android Studio 离线本地 TTS语音合成 Kotlin代码

1、activity_main.XML 中的内容如下 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools&…

MQTT通讯之连接MQTT服务器

根据 添加链接描述 和 添加链接描述 我的APP已经成功连接上MQTT服务器&#xff0c;至于怎么发布和接收&#xff0c;正在研究&#xff0c;研究好了&#xff0c;发上来。 作者写的代码是Java的&#xff0c;但现在都推荐Kotlin 我就把转好的Kotlin代码发出来 package com.examp…

今天对前面学的进行复习一下

Android Studio 是支持中文变量和函数名称的 尽量使用自己的手机直接连接上电脑进行真机调试&#xff0c;我发现模拟器有些问题。强烈不建议使用。 使用 Crtl Alt L 整理代码 这个会与QQ的热键冲突&#xff0c;重新设置QQ热键为其它即可 第一章 讲了怎么开始玩 安卓系统架构…

第2章 探究新语言,快速入门Kotlin编程 2.6Lambda 编程

2.6.1 集合的创建与遍历 这里没有啥特别的&#xff0c;根据书上说的&#xff0c;基本都可以理解 2.6.2 集合的函数式API 所谓的Lambda就是一小段可以作为参数据传递的代码片段。这个也可以理解。目前本人用的不是太多&#xff0c;理解即可&#xff0c;用的时候再仔细看 2.6.3 J…

SurfaceView 截屏方案

1.PixelCopy这个类是安卓提供的截取SurfaceView 的一个类&#xff1a; val surfaceView: SurfaceView binding.realTimeMap.getBinding()val bitmap Bitmap.createBitmap(surfaceView.width, surfaceView.height, Bitmap.Config.ARGB_8888)val surfaceHolder surfaceView.ho…

第2章 探究新语言,快速入门Kotlin编程2.1到2.5

这个我完整的看过了&#xff0c;整个第2章&#xff0c;这一章节主要是对编程语言Kotlin科特林进行讲解&#xff0c;这个是谷歌推荐在Android Studio编程语言&#xff0c;前面尝试N多次学习失败&#xff0c;也和没有学习这个语言有关系&#xff0c;看到N多的&#xff1a;冒号搞不…

Rx、kotlin、retrofit三者结合封装的网络请求库

源代码&#xff1a;RxKotlinRetrofitDemo 1.定义统一的返回结果类 ResultData data class ResultData<T>(var code: Int, var message: String, var data: T?) code&#xff1a;接口返回数据状态码&#xff08;状态码与后台人员协商&#xff09;&#xff0c;0代表成功&a…

Android 循环录制最近一段时间的视频

Android 循环录制最近一段时间的视频 在日常开发测试中&#xff0c;往往发生问题了再去想办法复现录屏、抓取日志的工作&#xff0c;往往会出现偶现问题很难复现&#xff0c;导致问题很难定位。在这里给出一个能抓取历史操作视频的解决方案&#xff1a; 将录屏的视频帧数据一…

一份全面 详细的Kotlin入门教程指南(基础、类与对象、函数与 Lambda 表达式.....)

前言 Kotlin被Google官方认为是Android开发的一级编程语言。是一种在 Java 虚拟机上运行的静态类型编程语言&#xff0c;被称之为 Android 世界的Swift&#xff0c;由 JetBrains 设计开发并开源。 这里将给大家献上一份全面 、详细的 《Kotlin入门教程指南》&#xff0c;内容…

深入解析构建 Kotlin 项目实践

编者按&#xff1a;今年的 Google I/O 大会上&#xff0c;Google 宣布 Kotlin 成为 Android 开发的官方语言&#xff0c;一时之间&#xff0c;究竟使用 Java 还是 Kotlin 开发&#xff0c;也成为众多开发者热议的话题。近日&#xff0c;Android 大神 Jake Wharton 发推文称已入…

进行 Kotlin 实战开发前,你应了解的那些技术点

本文概览&#xff1a; Kotlin 的基本示范Kotlin 语言的主要特征Android 和服务器端开发的可能性Kotlin 与其他语言的区别用 Kotlin 编写并运行代码 Kotlin 到底是什么 ? 它是一种针对 Java 平台的新编程语言。Kotlin 简洁、安全、务实&#xff0c;并且专注于与 Java 代码的互操…

用于 Android 开发的 Kotlin:是重量级语言还是毫无意义的炒作?

原文&#xff1a;Kotlin for Android Development: Heavyweight Language or Hopeless Hype? 作者&#xff1a;Jose Luis Franconetti 翻译&#xff1a;陈云龙 在 2017 Google I/O 大会的 Keynote 演讲中&#xff0c;我们了解到&#xff0c;Kotlin 编程语言将在 Android 上正…

Google 官方应用架构的最佳实践指南

本文作者&#xff1a;Hevin&#xff0c;已获授权&#xff0c;版权归原作者所有&#xff0c;未经作者同意&#xff0c;请勿转载。 责编&#xff1a;屠敏&#xff0c;关注物联网、移动开发、VR/AR 领域&#xff0c;寻求报道或投稿请发邮件tumincsdn.net。 导语&#xff1a;虽然说…

Parcel-Binder流水线的打包侠

前言 在我们日常开发中&#xff0c;有可能会接触到Parcel&#xff0c;这是一个在android中非常有趣的类&#xff0c;本章将通过对Parcel的作用出发&#xff0c;了解到Parcel类设计的出发点&#xff0c;同时通过一个例子实践&#xff0c;使我们能通过Parcel去监控我们的跨进程数…

最全Android Kotlin 学习路线(Kotlin 从入门、进阶到实战)

Kotlin 是由 jetBrains 开发的一门现代多平台应用的静态编程语言&#xff0c;Kotlin 代码即可以编译成 Java 字节码&#xff0c;又可以编译成 JavaScript&#xff0c;Kotlin 是开源的&#xff0c;源码在这。 Kotlin 包含了大量的语法糖&#xff0c;在编码的时候&#xff0c;会…

【Android开发】事件分发和处理机制

前言 我们首先要知道&#xff0c;Android 中的事件是用 MotionEvent 对象来表示&#xff0c;那么它的哪些类型呢&#xff1f; 事件类型触发时机ACTION_DOWN手指初接触到屏幕时触发ACTION_MOVE手指在屏幕上滑动时触发&#xff0c;会多次触发ACTION_UP手指离开屏幕时触发ACTION…

年薪80万的滴滴程序员被亲戚看不起,不如二本教书的....

前言 最近&#xff0c;论坛上有这样一个热门帖子&#xff0c;“年薪80万的滴滴程序员被亲戚看不起&#xff0c;不如二本教书的博士生”&#xff0c;到底怎么回事&#xff1f;请往下看。 这名网友发帖称&#xff1a; 自己是一名程序员&#xff0c;工作5年&#xff0c;年薪近8…

我用kotlin写了一个项目之后就开始后悔了

前言 以前没使用kotlin的原因还是因为成见。我曾经因为成见而一直不肯接受kotlin&#xff0c;既然Java就够用了&#xff0c;为什么还需要另外一个语言&#xff1f;。但我真的用kotlin写了一个项目之后就开始后悔&#xff1a;后悔接触它太晚了。 就2021年JVM生态系统报告来看&…

买卖股票最大收益

买卖股票最大收益 假设你有一个数组&#xff0c;其中第 i 个元素是股票在第 i 天的价格。 你有一次买入和卖出的机会。&#xff08;只有买入了股票以后才能卖出&#xff09;。请你设计一个算法来计算可以获得的最大收益。 解题思路&#xff1a; 由于只有一次买卖机会&#x…

(二)kotlin基础语法概述

记录学习过程&#xff0c;用简短的话描述核心价值。 本文主要对kotlin的一些基本知识进行简单的介绍。 1、函数 kotlin中&#xff0c;代码末尾不需要分号&#xff08;&#xff1b;&#xff09;结束&#xff0c; 用fun声明一个函数&#xff0c;以下是声明一个无返回值的函数&…

获取Bitmap中主色调的取色器

颜色空间 RGB色彩空间 RGB颜色空间以R&#xff08;红&#xff09;、G&#xff08;绿&#xff09;、B&#xff08;蓝&#xff09;三种基本色为基础&#xff0c;进行不同程度的叠加&#xff0c;呈现不同的颜色–>三原色模式RGB颜色空间 可以使用一个立方体来表示颜色&#x…

Jetpack -- App StartUp

定义 App StartUp是Google Jetpack新增的一个组件&#xff0c;该组件在App启动时提供了一个直接、高效的方式来初始化组件&#xff0c;同时开发者可以使用App Startup这个组件来简化启动顺序并且显示地设置初始化顺序&#xff0c;通过App Startup这个组件提供了一个ContentPro…

Jetpack组件结合MVVM架构的Kotlin版本WanAndroid来啦

&#x1f525;&#x1f525;&#x1f525;WanAndroid-Kotlin 项目 根据鸿神提供的WanAndroid开放Api来制作的WanAndroidApp, 基本实现了所有的功能&#xff0c;使用kotlin语言开发&#xff0c;基于Material DesignAndroidX MVVM ViewModel LiveData Coroutines(已经替换掉…

Jetpack -- WorkManager

简介 WorkManager适合处理一些定时执行的任务&#xff0c;它可以根据操作系统的版本自动选择底层是使用AlarmManager实现还是JobScheduler&#xff0c;降低我们的使用成本&#xff0c;同时他还支持周期性任务、链式任务处理等功能。WorkManager可以在应用退出或者手机重启的情…

Kotlin--小抄(十一)协程

简介 协程是一种并发设计模式&#xff0c;可以使用协程来简化异步代码 为什么需要协程 顺序执行的代码是同步的&#xff0c;即下面的工作要执行必须等待之前的工作执行完毕&#xff0c;每一行代码都会阻塞当前的线程&#xff0c;显然主线程阻塞会导致明显的卡顿 &#xff0c…

Kotlin:使用flow实现倒计时功能

一、效果图 二、ExtendContext.kt 文件代码 注意&#xff1a;创建ExtendContext.kt选择file 使用kotlin扩展方法的特性创建countDown扩展方法&#xff0c;避免多个地方使用倒计时重复创建countDown方法 package com.example.baselib.extensionimport androidx.fragment.app.Fr…

Android将自己写的maven库上传至jitpack(2024靠谱版)

浏览了一堆陈年旧贴&#xff0c;终于实验成功了 第一步 将自建空项目同步至github并保证能正常运行第二步新增一个library类型的modul第三步 在新建的library里面写一些测试用的代码第四步在library的gradle文件增加插件和发布脚本第五步新建一个配置文件第六步 把所有更改push…

安卓kotlin面试题 61-70

61. Kotlin中顶层函数、中缀函数、解构声明的实质原理?1、顶层函数 顶层文件会反编译成一个容器类。(类名一般默认就是顶层文件名+”Kt”后缀,注意容器类名可以自定义) 顶层函数会反编译成一个static静态函数,如代码中的formateFileSize和main函数 注意: 通过Kotlin中的@fil…

Kotlin:内联类

点击查询内联类中文文档 点击查询内联类英文文档 简介 提醒&#xff1a;内联类仅在 Kotlin 1.3 之后版本可用 有时候&#xff0c;业务逻辑需要围绕某种类型创建包装器。然而&#xff0c;由于额外的堆内存分配问题&#xff0c;它会引入运行时的性能开销。此外&#xff0c;如果…

Android NDK入门:在应用中加入C和C++的力量

引 自诩方向是android方向的移动端开发工程师&#xff0c;却从来没有真正仔细了解过NDK&#xff0c;这里就详细的整理了解一下ndk是什么。 笼统的说&#xff0c;NDK和平时经常打交道的SDK对比&#xff1a;SDK为应用开发提供了一套全面的工具和接口&#xff0c;适用于大多数开…

Android15功能和 API 概览

Android 15 面向开发者引入了一些出色的新功能和 API。以下部分总结了这些功能&#xff0c;以帮助您开始使用相关 API。 如需查看新增、修改和移除的 API 的详细列表&#xff0c;请参阅 API 差异报告。如需详细了解新的 API&#xff0c;请访问 Android API 参考文档&#xff0…

kotlin中使用myibatis-plus的lambdaQuery的问题

kotlin中使用myibatis-plus的lambdaQuery的问题 代码&#xff1a;lambdaQuery().eq(User::username, username).one()报错&#xff1a;org.apache.ibatis.reflection.ReflectionException: Error parsing property name register$lambda$0. Didnt start with is, get or set.解…

Android获取本地文件目录

一、实现效果 一个简单的demo。点击按钮&#xff0c;获取本地文件目录&#xff0c;可以选择图片&#xff0c;展示选取的对应图片和展示存储路径。如图所示&#xff1a; 二、实现方式 1. 权限 AndroidManifest.xml文件里面添加权限 <uses-permission android:name"a…

我的C++奇迹之旅:值和引用的本质效率与性能比较

文章目录 &#x1f4dd;引用&#x1f320;引用概念&#x1f309;引用特性 &#x1f320;使用场景&#x1f309;做参数&#xff08;传值与传地址&#xff09;&#x1f309;传值、传引用效率比较 &#x1f320;引用做返回值&#x1f309;引用和指针的区别 &#x1f320;常引用&am…

Android Glide配置AppGlideModule定制化线程池,Kotlin(1)

Android Glide配置AppGlideModule定制化线程池&#xff0c;Kotlin&#xff08;1&#xff09; plugins {id org.jetbrains.kotlin.kapt }implementation com.github.bumptech.glide:glide:4.16.0kapt com.github.bumptech.glide:compiler:4.16.0 import android.content.Context…

安卓Glide加载失败时点击按钮重新加载图片

需求 假设此时已经用load指定一个url: String&#xff0c;又用into指定了一个img: ImageView开始加载&#xff0c;但是网络突然中断&#xff0c;导致图片加载失败。在这种情况下&#xff0c;想要通过点击一个Button重新加载。 Glide.with(context).load(url).placeholder(loa…

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…

Kotlin-小抄(十)Kotlin创建DSL

DSL简介 DSL (领域特定语言&#xff09;指的是专注于特定问题领域的计算机语言&#xff0c;即对一个特定问题的方案模型更高层次的抽象表达&#xff0c;使之更加简单易懂。DSL只是问题解决方案模型的外部封装&#xff0c;这个模型可能是一个API库&#xff0c;也可能是一个完整…

Jetpack -- ViewModel使用与分析

简介 使用Android AAC组件构建自己的应用之后&#xff0c;为了不让自己停留在仅仅是使用的层面&#xff0c;所以从头开始总结一边AAC组件的使用以及注意的要点ViewModel旨在以注重生命周期的方式存储和管理界面相关的数据&#xff0c; ViewModel 类让数据可在发生屏幕旋转等配…

Kotlin +MVVM+Livedata+ViewModel实战来啦

WanAndroid-Kotlin 项目 根据鸿神提供的WanAndroid开放Api来制作的WanAndroidApp, 基本实现了所有的功能&#xff0c;使用kotlin语言开发&#xff0c;基于Material DesignAndroidX MVVM ViewModel LiveData RxJava Retrofit等优秀的开源框架&#xff0c;实现的一个尽可能…

Android辅助功能AccessibilityService监听当前包名变化

1.继承系统的AccessibilityService服务&#xff0c;实现自己的辅助功能服务 class MyAccessibilityService: AccessibilityService(){companion object {const val TAG "MyAccessibilityService"}override fun onAccessibilityEvent(event: AccessibilityEvent) {v…

Android中富文本用法包括点击事件处理

Android中富文本用法包括点击事件处理关于只需要富文本展示效果&#xff0c;不需要点击事件展示富文本加点击事件关于 最近项目需要中需要用到富文本展示及富文本点击功能&#xff0c;先去百度了一下&#xff0c;大多数的说法是如果涉及到字符串国际化问题   因为项目涉及多国…

Android解决请求接口的一些奇葩路径参数等

Android解决请求接口的一些奇葩路径参数等关于关于 一般的接口请求类似"device/http/auth&uidxxx" 本篇主要记录开发中&#xff0c;使用retorfit请求接口遇到的如下类似问题&#xff1a; 请求参数在接口路上上面&#xff08;"device/xxxx/xxxxx/report&quo…

【kotlin】高阶函数详解

文章目录定义高阶函数内联函数的作用高级函数的应用简化SharedPreferences 的用法简化 ContentValues 的用法定义高阶函数 如果一个函数接收另一个函数作为参数&#xff0c;或者返回值的类型是另一个函数&#xff0c;那么该函数就称为高阶函数 这就涉及到另一个概念了&#x…

【kotlin】if、when、for循环、loop和range

文章目录ifwhenfor循环if Kotlin 中 if 语句相比于 Java 有一个额外功能&#xff0c;它是可以有返回值的&#xff0c;返回值就是 if 语句每一个条件中最后一行代码的返回值。例如下面函数的作用是返回较大的一个数 fun largeNumber(num1:Int,num2:Int):Int {return if(num1&g…

时间相减 示例kotlin LocalDateTime

时间相减 示例kotlin LocalDateTime fun test1(){val d1: LocalDateTime LocalDateTime.parse("2023-05-06 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))val d2: LocalDateTime LocalDateTime.parse("2023-05-07 15:12:00"…

Kotlin 1.9 新特性预览:data object (数据单例)

前言 data object (数据单例) 是 Kotlin 1.9 中预定引入的新特性 &#xff0c;但其实从 1.7.20 开始就可以预览了。启动预览需要在 gradle 中升级 KotlinCompileVersion&#xff1a; tasks.withType<KotlinCompile> {kotlinOptions.languageVersion "1.9" }…

Kotlin-小抄(七)集合类

简介 在kotlin.collections包下&#xff0c;在Java类库的基础之上进行改造实现了不可变集合类&#xff0c;同时Kotlin的集合类中不仅仅可以持有普通对象&#xff0c;而且能够持有函数类型的变量 集合类概述 Kotlin集合类分为&#xff1a;可变集合类&#xff0c;不可变集合类…

Kotlin-小抄(六)扩展函数与属性

扩展函数 在Kotlin中我们可以完全自由扩展任何类的方法和属性&#xff0c;在不修改原类的情况下&#xff0c;Kotlin能给一个类扩展新功能而无需继承该类 eg: /** * 给String扩展一个firstChar函数 */ fun String.firstChar(): String {if (this.length 0) {return "&qu…

Kotlin-小抄(五)函数与函数式编程

简介 函数式编程是一种编程范式&#xff0c;它与命令式编程最大的不同是&#xff0c;函数式编程的焦点在于数据的映射&#xff0c;命令式编程的焦点是解决问题的步骤&#xff0c;函数式编程强调的是一种编程思维&#xff0c;解决问题的思考方式&#xff0c;也叫面向函数编程 e…

Android在GoogleMap(百度地图)实现自定义指南针旋转与回正功能

Android在GoogleMap&#xff08;百度地图&#xff09;实现自定义指南针旋转与回正功能关于效果图实现&#xff08;这里只讲googleMap&#xff09;关于 因为项目需要&#xff0c;需要在googleMap上面自定义指南针&#xff0c;实现指南针实时根据地图方位变化转动&#xff0c;点击…

大家知道为什么要加 final 关键字了

原文链接&#xff1a;www.jianshu.com/p/acc8d9a67d0c 在开发过程中&#xff0c;由于习惯的原因&#xff0c;我们可能对某种编程语言的一些特性习以为常&#xff0c;特别是只用一种语言作为日常开发的情况。但是当你使用超过一种语言进行开发的时候就会发现&#xff0c;虽然都…

【第一阶段】kotlin中反引号中的函数名特点

在kotlin中可以直接中文定义函数&#xff0c;使用反引号进行调用 eg: fun main() {2023年8月9日定义的函数(5) }private fun 2023年8月9日定义的函数(num:Int){println("反引号的用法$num") }执行结果 在Java中is,in可以定义方法&#xff0c;但是在kotlin中is,in是…

Android使用kotlin+协程+room数据库的简单应用

前言&#xff1a;一般主线程&#xff08;UI线程&#xff09;中是不能执行创建数据这些操作的&#xff0c;因为等待时间长。所以协程就是为了解决这个问题出现。 第一步&#xff1a;在模块级的build.gradle中引入 id com.android.application// roomid kotlin-androidid kotlin…

侧滑置顶,取消置顶

第一步:布局 <?xml version"1.0" encoding"utf-8"?> <com.ddmh.magic.camera.ui.widget.SwipeMenuLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…

【第二阶段】在函数中定义参数是函数的函数

1.理解&#xff1a;在一个函数中有一个参数a,这个参数a又属于一个函数&#xff0c;a即时参数又是函数 2.用kotlin实现登录 /*** You can edit, run, and share this code.* play.kotlinlang.org*/ fun main() {//调用传参//普通参数传入即可,针对在调用函数中的参数函数传入使用…

【第二阶段】kotlin语言的匿名函数类型推断

1.常规匿名函数写法&#xff1a; 如果使用了":",必须给定参数类型和 返回值类型如下&#xff1a; val meThod:()->Int{}2.匿名函数“”&#xff0c;返回类型推断 使用类型推断“”&#xff0c;根据返回值的类型推断 fun main() {/** 常规匿名函数写法&#xff1a…

Kotlin 基础教程一

Kotlin 基本数据类型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…

Kotlin入门:变量和函数——02

目录 一、Kotlin 基本数据类型 ​编辑 二、变量 val 关键字&#xff1a; var 关键字: 类型推断: 可空类型: 三、函数 基本函数语法&#xff1a; 单表达式函数&#xff1a; 默认参数值&#xff1a; 命名参数&#xff1a; 一、Kotlin 基本数据类型 Kotlin 的基本数…

【第二阶段】kotlin函数引用

针对上篇传入函数参数我们也可以重新定义一个函数&#xff0c;然后在main中调用时传入函数对象 lambda属于函数类型的对象&#xff0c;需要把普通函数变成函数类型的对象&#xff08;函数引用&#xff09;&#xff0c;使用“&#xff1a;&#xff1a;” /*** You can edit, ru…

Kotlin和Java互操作时的可空性

注&#xff1a;文中demo的kt版本是1.7.10 一、kotlin语言中的可空性设计 在Java语言中的NPE&#xff08;NullPointerException&#xff09;可以说非常常见&#xff0c;而且诟病已久。 kotlin做为后起之秀&#xff0c;在空指针的问题上进行了升级&#xff0c;即&#xff1…

Kotlin开发笔记:类层次结构和继承

Kotlin开发笔记&#xff1a;类层次结构和继承 简介 面向对象编程的语言中&#xff0c;关于对象层次的抽象是很重要的&#xff0c;这会涉及到类层次的结构&#xff0c;接口和继承等内容&#xff0c;本篇文章将会介绍与之相关的内容&#xff0c;包括&#xff1a; 接口的相关内容…

Kotlin优点及为什么使用Kotlin

文章目录 一 Hello Kotlin二 Kotlin优点三 团队为什么采用 Kotlin 一 Hello Kotlin Kotlin和Andriod 二 Kotlin优点 三 团队为什么采用 Kotlin

kotlin的数据类型和类型转换

在 Kotlin 中&#xff0c;数据类型是变量或表达式的属性&#xff0c;确定了存储的数据类型以及可以在该数据上执行的操作。Kotlin 支持与 Java 类似的基本数据类型&#xff0c;但还引入了一些增强的数据类型和类型安全的特性。 一&#xff0c;基本数据类型 Byte&#xff1a;8…

kotlin字符串方法

以下是一些常用的 String 方法示例&#xff1a; 1.获取字符串长度&#xff1a; val str "Hello, Kotlin" val length str.length2.字符串比较&#xff1a; val str1 "apple" val str2 "banana" val compareResult str1.compareTo(str2)3…

kotlin的列表

在 kotlin中&#xff0c;列表是一种常见的数据结构&#xff0c;用于存储有序的元素集合。 kotlin的标准库提供了 List 接口及其实现类 ArrayList、LinkedList 等&#xff0c;以及一些扩展函数来操作和处理列表。 1.创建列表 // 创建一个可变列表 val mutableList mutableLis…

Kotlin的数组

在 Kotlin 中&#xff0c;数组是一种固定大小的有序集合&#xff0c;可以存储相同类型的元素。Kotlin 提供了两种类型的数组&#xff1a;原生数组和数组类。以下是 Kotlin 中数组的详细使用方法&#xff1a; 1.创建数组 Kotlin 支持使用 arrayOf() 函数来创建数组&#xff1a;…

Kotlin-小抄(九)文件I/O操纵、正则表达式与多线程

文件I/O操作 写入读取文件 val file File("test.txt") // 写入文件 if (!file.exists()) {file.createNewFile() } file.writeText("hhhhhhh", Charset.defaultCharset()) // 覆盖写入字符串&#xff0c;默认"UTF-8" file.appendText("aaa…

【第三阶段】kotlin中使用带let的安全调用

let常常和&#xff1f;.配合使用&#xff0c;如果前面的对象为null,let不执行&#xff0c;能够执行到let里面 对象一定不为null 1.不为null fun main() {var name:String?"kotlin" //name是一个可空类型&#xff0c;发出广播&#xff0c;调用的地方必须补救措施var…

Kotlin Flow 冷流

协程&#xff1a;Flow 1、Flow是什么&#xff1f; 处理异步事件流可取消&#xff1a;通过取消协程取消Flow组合操作符&#xff1a;复杂逻辑处理缓冲和背压&#xff1a;发送和接收时用不同速度处理&#xff0c;实现流量控制、避免数据丢失 2、传统事件处理方案&#xff1a;同…

RecyclerView嵌套WebView导致itemView自动滑动

简介 分析解决方法android:descendantFocusability 详解beforeDescendantsafterDescendantsblocksDescendants 做一帖子详情页,是某种类型帖子后,需使用WebView来显示帖子内容.但是滑动到帖子底部查看评论是自动滑动到内容itemWebView了. 分析 RecyclerView 和WebView 是都可…

Kotlin 基础教程二

constructor 构造器一般情况下可以简化为主构造器 即: class A constructor(参数) : 父类 (参数) 也可以在构造器上直接声明属性constructor ( var name) 这样可以全局访问 init { } 将和成员变量一起初始化 data class 可以简化一些bean类 比如get / set ,自动生成copy 函数…

Kotlin 开发环境配置指南

一、下载与安装 Kotlin 编译器 步骤 1&#xff1a;获取最新版 Kotlin 编译器 要配置 Kotlin 开发环境&#xff0c;首先需要从 JetBrains 官方 GitHub 仓库下载最新的 Kotlin 编译器。访问以下链接以获取最新版本的编译器&#xff1a; [https://github.com/JetBrains/kotlin/…

Kotlin快速入门系列8

Kotlin的泛型 与Java一样&#xff0c;Kotlin也提供泛型。泛型&#xff0c;即 "参数化类型"&#xff0c;将类型参数化&#xff0c;可以用在类&#xff0c;接口&#xff0c;方法上。可以为类型安全提供保证&#xff0c;消除类型强转的烦恼。声明泛型类的格式如下&…

Kotlin 协程:深入理解 ‘async { }‘

Kotlin 协程&#xff1a;深入理解 ‘async { }’ Kotlin 协程是一种强大的异步编程工具&#xff0c;它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中&#xff0c;async {} 是一个关键的函数&#xff0c;它允许我们启动一个新的协程&#xff0c;并返回一…

Kotlin:组合挂起函数

点击查看&#xff1a;组合挂起函数 中文官网 点击查看&#xff1a;组合挂起函数 英文文档 默认顺序调用 假设我们在不同的地方定义了两个进行某种调用远程服务或者进行计算的挂起函数。我们只假设它们都是有用的&#xff0c;但是实际上它们在这个示例中只是为了该目的而延迟了…

【Kotlin】函数

1 常规函数 1.1 无参函数 fun main() {myFun() }fun myFun() {println("myFun") // 打印: myFun } 1.2 有参函数 1&#xff09;常规调用 fun main() {myFun("myFun") // 打印: myFun }fun myFun(str: String) {println(str) } 2&#xff09;形参指定默…

Spring Boot整合zxing实现二维码登录

zxing是google的一个二维码生成库&#xff0c;使用时需配置依赖&#xff1a; implementation("com.google.zxing:core:3.4.1") implementation("com.google.zxing:javase:3.4.1") zxing的基本使用 我们可以通过MultiFormatWriter().encode()方法获取一个…

安卓kotlin面试题 91-100

91. 阐述Kotlin中性能优化之局部函数 ?就是像正常定义普通函数的语法一样,在其他函数体内部声明该函数。这些被称为局部函数,它们能访问到外部函数的作用域。 fun someMath(a: Int): Int { fun sumSquare(b: Int) = (a + b) * (a + b) return sumSquare(1) +…

Kotlin:runBlocking导致App应用出现ANR问题实例

runBlocking简介 runBlocking 是常规函数&#xff1b; runBlocking 方法会阻塞当前线程来等待&#xff1b; runBlocking 的主线程会一直 阻塞 直到 runBlocking 内部的协程执行完毕。 runBlocking导致App应用出现ANR问题实例的效果 点击页面上的 刷新按钮 调用 refreshByrunBlo…

Android Kotlin(六)协程的并发问题

书接上回&#xff1a;Android Kotlin知识汇总&#xff08;三&#xff09;Kotlin 协程 协程的并发问题 在一个协程中&#xff0c;循环创建10个子协程且单独运行各自Default线程中&#xff0c;并让每个子协程对变量 i 进行1000次自增操作。示例如下&#xff1a; fun main() …

让Android应用活起来: Retrofit 和 OkHttp的比较参考

目录 前言 OkHttp Retrofit 对比 前言 在构建现代 Android 应用时&#xff0c;处理网络请求是一个不可或缺的部分。其中Square 的两个开源库&#xff0c;Retrofit 和 OkHttp&#xff0c;GitHub Star数很多&#xff0c;被很多人选择。在我刚成为一个Android er 的时候&…

【代码】JetpackComposeKotlin分享Bitmap图片

目录 1. 发送函数2. 配置fileProvider3. bitmap保存本地的函数4. 全局变量5. 封装的ButtonIcon函数 Android12在jetpack compose中使用Kotlin代码分享Bitmap图片。 1. 发送函数 Composable fun Share() {val context LocalContext.currentButtonIcon(icon Icons.Rounded.Sha…

Kotlin/Java重写equals后==表现(2)

Kotlin/Java重写equals后表现&#xff08;2&#xff09; 如果不重写默认的equals方法&#xff0c;即使用Object默认的equals()方法&#xff0c;而Object默认的equals方法&#xff0c;其实比较两个对象的地址&#xff1a; fun main(args: Array<String>) {val u1 User(&…

Android Drawable转BitmapDrawable再提取Bitmap,Kotlin

Android Drawable转BitmapDrawable再提取Bitmap&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

【第三阶段】kotlin语言中的数字安全转换函数(String转Int)

字符串有整形相关的转换&#xff0c;尽量使用toIntOrNull&#xff08;&#xff09;函数 fun main() {//String转Intvar num1"666"println(num1.toInt())//Double不能自动转换为Int,会崩溃&#xff0c;解决崩溃如下&#xff1a;toIntOrNull()如果转换失败会转为nullv…

Kotlin手写RxJava变换符

Kotlin手写RxJava变换符 本文链接&#xff0c;点击这里进入 1、核心点&#xff1a;中转站存储之前的数据 2、三行代码实现RxJava 使用create、map、observer fun main() {// create构造出RxJavaCore存放&#xff0c;lambda执行完的结果create{"WCH"}.map{ // 扩展…

Kotlin Channel 热流

协程&#xff1a;Channel 热流 1、Channel是什么&#xff1f; 生产者&#xff1a;多个协程消费者&#xff1a;多个协程中间&#xff1a;Channel 管道 并发安全队列发送send接收recv 协程间通信 1、Channel可以用于协程间通信 // 通道Channelval channel Channel<Int>…

Kotlin 中的 设计模式

单例模式 饿汉模式 饿汉模式在类初始化的时候就创建了对象&#xff0c;所以不存在线程安全问题。 局限性&#xff1a; 1、如果构造方法中有耗时操作的话&#xff0c;会导致这个类的加载比较慢&#xff1b; 2、饿汉模式一开始就创建实例&#xff0c;但是并没有调用&#xf…

Kotlin开发笔记:使用委托进行拓展

Kotlin开发笔记&#xff1a;使用委托进行拓展 导言 在OO语言(面向对象)中&#xff0c;我们经常会用到委托或者代理的思想。委托和代理在乍一看很相似&#xff0c;其实其各有各的侧重点&#xff0c;这里我引用ChatGpt的回答&#xff1a; 委托&#xff08;Delegation&#xff09…

Kotlin差异化分析,let,run,with,apply及also

作用域函数是Kotlin比较重要的一个特性&#xff0c;共分为以下5种&#xff1a;let、run、with、apply 以及 also&#xff0c;这五个函数的工作方式可以说非常相似&#xff0c;但是我们需要了解的是这5种函数的差异&#xff0c;以便在不同的场景更好的利用它。 读完这篇文章您将…

使用Kotlin实现Java的优先队列PriorityQueue

前言 上周在面试时&#xff0c;偶然一个算法用到了优先队列思想。我只懂效果不懂实现&#xff0c;当时感觉和堆排序的思想差不多。今天深入源码&#xff0c;自己又实现一遍加深印象。 源码有什么 具有Queue和Collection集合和Queue队列的性质可以保证每次取出的元素都是最值…

Kotlin-小抄(八)泛型

简介 参数化类型&#xff1a;在Java5中引入该机制&#xff0c;将类型由原来的具体类型参数化&#xff08;类型参数&#xff09;&#xff0c;然后在使用时传入具体的类型 引入泛型原因&#xff1a; 之前使用的是object[]数组&#xff0c;当在向集合添加元素的时候&#xff0c;没…

Kotlin-小抄(三)类型系统

Java类型系统 Kotlin类型系统 上面两个图 对比之后&#xff0c;会发现Kotlin中全是包装类型&#xff0c;原始类型哪里去了&#xff1f; Kotlin只有包装类型&#xff0c;在编译器编译代码的时候&#xff0c;自动优化性能&#xff0c;把对应的包装类型拆箱为原始类型 装箱和拆箱…

kotlin 比较 let apply

let 和 apply 是 Kotlin 标准库中的两个非常有用的函数&#xff0c;它们用于在代码中实现更简洁和可读的操作。它们通常在函数式编程和链式调用中使用&#xff0c;以简化代码并提高可维护性。下面是关于这两个函数的详细解释&#xff1a; let let 函数是一个作用域函数&#…

Kotlin 中的 协程 基础篇

一、什么叫协程 协程可以称为轻量级线程&#xff0c;线程代码块&#xff1b; 二、GlobalScope 协程 CoroutineScope (协程作用域) 的上下文中通过 launch、async 等构造器来启动。GlobalScope ,即全局作用域内启动了一个新的协程&#xff0c;这意味这该协程的生命周期只受整…

Android上的基于协程的存储框架

在Android上&#xff0c;经常会需要持久化本地数据&#xff0c;比如我们需要缓存用户的配置信息、用户的数据、缓存数据、离线缓存数据等等。我们通常使用的工具为SharePreference、MMKV、DataStore、Room、文件等等。通过使用现有的存储框架&#xff0c;结合协程&#xff0c;我…

【Kotlin】类和对象

1 前言 Kotlin 是面向对象编程语言&#xff0c;与 Java 语言类似&#xff0c;都有类、对象、属性、构造函数、成员函数&#xff0c;都有封装、继承、多态三大特性&#xff0c;不同点如下。 Java 有静态&#xff08;static&#xff09;代码块&#xff0c;Kotlin 没有&#xff1…

Kotlin编程权威指南学习知识点预览

一、变量、常量和类型&#xff1a; 变量、常量以及 Kotlin 基本数据类型。变量和常量在 应用程序中可用来储值和传递数据。类型则用来描述常量或变量中保存的是什么样的数据。 1、声明变量: // 变量定义关键字 —— 变量名 —— 类型定义 —— 赋值运算符 —— 赋值var na…

Kotlin 环境下解决属性初始化问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Kotlin 丰富的函数特性

Kotlin 是一门基于 JVM 的现代编程语言&#xff0c;它提供了丰富的函数特性&#xff0c;使得编写简洁、灵活且可读性强的代码成为可能。以下是 Kotlin 函数的一些主要特性&#xff1a; 一、函数声明与调用 在 Kotlin 中&#xff0c;使用 fun 关键字来声明函数。函数声明的基本…

Android使用Gradle kotlin dsl 优雅配置构建项目

目录 概述1.Gradle Kotlin-DSL配置1.1 在根目录下建立一个buildSrc目录&#xff0c;1.2.新建build.gradle.kts文件并添加Kotlin dsl相关配置 2.Gradle Kotlin DSL 的编写2.1 定义项目的版本号信息2.2.定义Dependencies管理项目中需要使用的库依赖2.3 定义APK的打包脚本构建APK的…

解锁编程的新契机:深入探讨Kotlin Symbol Processor (KSP)的编写

解锁编程的新契机&#xff1a;深入探讨Kotlin Symbol Processor (KSP)的编写 1. 引言 随着软件开发领域的不断发展&#xff0c;新的工具和技术不断涌现&#xff0c;以满足开发者在构建高效、可维护和创新性的代码方面的需求。Kotlin Symbol Processor&#xff08;KSP&#xf…

Kotlin+MVVM 构建todo App 应用

作者&#xff1a;易科 项目介绍 使用KotlinMVVM实现的todo app&#xff0c;功能界面参考微软的Todo软件&#xff08;只实现了核心功能&#xff0c;部分功能未实现&#xff09;。 功能模块介绍 项目模块&#xff1a;添加/删除项目&#xff0c;项目负责管理todo任务任务模块&a…

Kotlin开发Android之基础问题记录

1、Kotlin中如何直接通过组件id来操作组件&#xff1f; 解决方案&#xff1a;在build.gradle中添加对相应插件的使用即可。 plugins {id com.android.applicationid kotlin-androidid kotlin-android-extensions }2、Kotlin中Button设置背景颜色没有效果。 解决方案&#xf…

Kotlin(六) 类

目录 创建类 调用类 类的继承------open 构造函数 创建类 创建类和创建java文件一样&#xff0c;选择需要创建的目录New→Kotlin File/Class Kotlin中也是使用class关键字来声明一个类的&#xff0c;这一点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功…

Kotlin变量与控制条件的基本用法

一、变量与控制条件 1、var与val var&#xff1a;可修改变量 val&#xff1a;只读变量&#xff0c;只读变量并非绝对只读。 编译时常量只能在函数之外定义&#xff0c;因为函数内常量是在运行时赋值&#xff0c;编译时常量要在变量赋值前存在。并且值是无法修改的。 const…

KNN算法回归问题介绍和实现

上篇博客中&#xff0c;介绍了使用KNN算法实现分类问题&#xff0c;本篇文章介绍使用KNN算法实现回归问题。介绍思路是先使用sklearn包提供的方法实现一个KNN算法的回归问题。再自定义实现一个KNN算法的回归问题工具类。 一、sklearn包使用KNN算法 1. 准备数据 使用sklearn包…

Kotlin面向对象基础使用方法(继承、接口、Lambda、空指针检查机制等)

三、面向对象 1、继承 1.1 open改变类的继承属性 在kotlin设计时默认所有的非抽象类是无法被继承的&#xff0c;如果想要使得一个非抽象类可以被继承&#xff0c;我们需要使用open关键字。 open class Person {var name "";var age 0;fun eat() {println(name …

Java 已老,Kotlin 或将取而代之?

把你们的想法在在下面评论席上发表出来 小编会一个一个看的 Java已经成为历史。它无法发展成现代语言&#xff0c;同时保证向后兼容性。但它为我们带来了最好的JVM生态系统&#xff0c;并引导了许多优秀语言的诞生&#xff0c;如Groovy、Scala、Clojure、Kotlin等。 ▌欢迎年纪…

Kotlin Files Paths write ByteArray writeString写多行BufferedWriter

Kotlin Files Paths write ByteArray writeString写多行BufferedWriter import java.nio.file.Files import java.nio.file.Paths import java.nio.file.StandardOpenOptionfun main(args: Array<String>) {val filePath "./myfile.txt"val path Paths.get(…

kotlin使用教程

写在前面&#xff1a;现在工作越来越不好找&#xff0c;搞不好突然就会离开开发。为了在离开时候&#xff0c;如果想要写kotlin还能想起来怎么写&#xff0c;所以写了一篇教程给自己。 变量表达式方法类扩展属性及函数Function正则表达式kotlin常用的apikotlin协程和flow 先来…

【第四阶段】kotlin语言的mutator函数学习

1.mutator特性1&#xff1a;使用list可以直接 - fun main() {val list mutableListOf(123,456,789)//特性1 可是直接使用list -list 111list-123println(list) }执行结果 2.mutator特性2&#xff1a;removeIF() 如果实现是true 会自动遍历整个集合&#xff0c;一个一个的移除…

Kotllin实现ArrayList的基本功能

前言 上次面试时&#xff0c;手写ArrayList竟然翻车&#xff0c;忘了里面的扩容与缩容的条件&#xff0c;再次实现一次&#xff0c;加深印象 源码讲了什么 实现了List列表和RandomAccess随机访问接口List具有增删改查功能&#xff0c;RandomAccess支持下标访问内部是一个扩容…

Kotlin学习之密封类

Kotlin中的密封类: kotlin中的密封类&#xff0c;用关键词Sealed修饰&#xff0c;且还有一个规定&#xff1a;Sealed类的子类应该是Sealed类的嵌套类&#xff0c;或者应该在与Sealed类相同的文件中声明。 当我们想定义一个有相同父类&#xff0c;但是有不同子类的时候&#xf…

【技术支持】Android8.0发送广播方式(隐式/显式,单应用/跨应用)

Android8.0之前 若要在不打开app的情况下&#xff0c;接受隐式广播&#xff0c;需要将targetSdkVersion 在 25或以下的App&#xff0c;其Receiver不受影响&#xff0c;即使在Android8.0以上的机器上运行 隐式广播 val intent Intent("com.daban.broadcast") this…

Kotlin全方位-简单解析

Kotlin是一种现代化的静态类型编程语言&#xff0c;由JetBrains公司开发。它可以在Java虚拟机&#xff08;JVM&#xff09;上运行&#xff0c;并且可以与Java代码无缝地进行互操作。Kotlin旨在提供更简洁、更安全、更具表达力和更高效的编程语言。 Kotlin主要运用 Android开发…

Kotlin 中 OkHttp 使用及解析

build.gradle dependencies {//OkHttpimplementation com.squareup.okhttp3:okhttp:4.9.0 } 简单使用例子 val okHttpClient OkHttpClient.Builder().connectTimeout(Duration.ofSeconds(10)).readTimeout(Duration.ofSeconds(10)).writeTimeout(Duration.ofSeconds(10)).re…

协程(一)单机--》并发--》协程

目录 一 协程的概述1.1 并行与并发1.2 线程1.3 新的思路1.4 Goroutine 二 第一个入门程序 一 协程的概述 我查看了网上的一些协程的资料&#xff0c;发现每个人对协程的概念都不一样&#xff0c;但是我认可的一种说法是&#xff1a;协程就是一种轻量级的线程框架&#xff08;K…

Kotlin读写分离CopyOnWriteArrayList

Kotlin读写分离CopyOnWriteArrayList 基于读写分离思想Copy-On-Write(COW)设计的线程安全ArrayList变体&#xff0c;读读共享、写写互斥、读写互斥、写读互斥。读时直接读&#xff0c;不用加锁同步&#xff0c;线程安全。写/删/修改数据时复制一个副本&#xff0c;在新的List副…

Kotlin的遍历方法

for循环 在下面代码中1…10表示的是1到10&#xff0c;两边都是闭包&#xff0c;输出12345678910 for (i in 1..10) println(i)加上花括号也支持 for (i: Int in 1..10) {println(i)}另外&#xff0c;当对整数进行for循环时&#xff0c;Kotlin还提供了一个step函数来定义迭代的…

Navigation的基本使用

参考&#xff1a; Navigation Navigation的基本使用 目录 一、Navigation是什么&#xff1f;二、Navigation的三大件三、基本使用1. 导入依赖2. 创建三个不同的fragment用于页面的切换3. 创建导航图4. 设置导航menu5. Activity使用 四、Navigation源码原理解析 一、Navigation是…

LinkedHashMap实现LRU缓存cache机制,Kotlin

LinkedHashMap实现LRU缓存cache机制&#xff0c;Kotlin LinkedHashMap的accessOrdertrue后&#xff0c;访问LinkedHashMap里面存储的元素&#xff0c;LinkedHashMap就会把该元素移动到最尾部。利用这一点&#xff0c;可以设置一个缓存的上限值&#xff0c;当存入的缓存数理超过…

Kotlin return 和 loop jump

再聊 return 在上一篇文章《Kotlin inline、noinline、crossinline 深入解析》 我们介绍到,在 lambda 中不能使用 return,除非该函数是 inline 的。如果该高阶函数是 inline ,调用该函数时,在传入的 lambda 中使用 return,则 return 的是离它最近的 enclosing function,…

万字解读 Android 车机核心 :CarService 的构成和链路~

前言 关于 Android 车机&#xff0c;之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理&#xff0c;但都局限于 Car Service 内 Input 相关模块。 一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制 本文将结合 Android 系…

Android Glide in RecyclerView,only load visible item when page return,Kotlin

Android Glide in RecyclerView&#xff0c;only load visible item when page return&#xff0c;Kotlin base on this article&#xff1a; Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片&#xff0c;Kotlin_zhangphil的博客…

recyclerview优化:DiffUtil使用过程中遇到的问题总结-kotlin中==未比较equals的问题分析

https://blog.csdn.net/fitaotao/article/details/84314043 使用DiffUtil&#xff1a;DiffUtil是Android Support Library中的一个工具类&#xff0c;可以帮助计算新旧数据集的差异并高效更新RecyclerView的数据。通过使用DiffUtil&#xff0c;可以避免不必要的数据刷新和界面…

resource android:attr/lStar not found.和unknown tag <:string>问题

resource android:attr/lStar not found. 检查androidx.core:core-ktx包的版本是否指定&#xff0c;没有指定版本需要指定版本号 implementation ‘androidx.core:core-ktx:1.3.2’ unknown tag <:string> 原因与字符串数组有关。在你的string.xml检查你是否有空 或类…

100行 python实现Android与windows局域网文件夹同步

编程解决一切烦恼 Obsidian搭建个人笔记 最近在使用Obsidian搭建个人云笔记 尽管我使用腾讯云COS图床gitee实现了云备份&#xff0c;但是在Android上使的Obsidian备份有点麻烦。还好我主要是在电脑端做笔记&#xff0c;手机只是作为阅读工具。 所以&#xff0c;我写一个局域…

mapbox 导航记录(release-v2.15分支 纯kotlin)

一、简单使用示例 1. 初始化 MapboxNavigation 初始化时使用 NavigationOptions 设置一些参数&#xff0c;包括accessToken、appMetaData、LocationEngine等&#xff0c;其它还有很多&#xff0c;具体可以详看 NavigationOptions 类的内部。 下面示例中 LocationEngine 使用…

协程 VS 线程,Kotlin技术精讲

协程(coroutines)是一种并发设计模式&#xff0c;您可以在Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的&#xff0c;它基于来自其他语言的既定概念。 在 Android 上&#xff0c;协程有助于管理长时间运行的任务&#xff0c;如果管理不当&a…

使用Kotlin优化Java开发

使用Kotlin优化Java开发 一、简介1.1 Kotlin概述1.2 Kotlin和Java的关系1.3 Kotlin的优点与特性 二、Kotlin基础语法2.1 数据类型2.2 空安全2.3 函数和Lambda表达式2.4 扩展函数2.5 类和对象2.6 接口、抽象类和继承2.7 单例模式 三、与Java互操作3.1 Kotlin调用Java代码3.2 Jav…

用kotlin 开发一个简单的多页面跳转

本文介绍一个简单的安卓应用的页面跳转例子&#xff0c;用的是kotlin。 运行时主页面是一个hello 和Jump 按钮&#xff0c;你按一下jump 按钮就转到 从页面&#xff0c;只是标识从页面。 开始建立一个简单工程&#xff0c;名为hello&#xff0c; 选择的是Empty views Activit…

Android 开发错误集合

&#x1f525; 开发错误集合一 &#x1f525; Caused by: java.lang.ClassNotFoundException: Didnt find class "com.mask.app.ui.LoginRegisterActivity" on path: DexPathList[[zip file "/data/app/~~NMvHVhj8V6-HwGbh2amXDA/com.mask.app-PWbg4xIlETQ3eVY…

Android kotlin开源项目-功能标题目录

目录 一、BRVAH二、开源项目1、RV列表动效&#xff08;标题目录&#xff09;2、拖拽与侧滑&#xff08;标题目录&#xff09;3、数据库&#xff08;标题目录&#xff09;4、树形图(多级菜单)&#xff08;标题目录&#xff09;5、轮播图与头条&#xff08;标题目录&#xff09;6…

【Kotlin精简】第1章 基础类型

1 Kotlin基础类型 Kotlin中&#xff0c;我们可以调用任何变量的成员函数和属性&#xff0c;从这个角度来说&#xff0c;一切皆对象。某些类型可以有特殊的内部表现。例如&#xff1a;数字、字符和布尔型在运行时可以表现为基础类型&#xff08;primitivetypes&#xff09;。 …

不用休眠的 Kotlin 并发:深入对比 delay() 和 sleep()

本文翻译自&#xff1a; https://blog.shreyaspatil.dev/sleepless-concurrency-delay-vs-threadsleep 毫无疑问&#xff0c;Kotlin 语言中的协程 Coroutine 极大地帮助了开发者更加容易地处理异步编程。该特性中封装的诸多高效 API&#xff0c;可以确保开发者花费更小的精力去…

objList=strList为什么报错

代码复现 先看下面一段代码 List<String> strList new ArrayList<>(); List<Object> objList strList; // 报错乍一看好像没什么问题&#xff0c;但为什么追报错呢&#xff1f; 先别急&#xff0c;看下面一段代码 List<Integer> intList new A…

Android kotlin系列讲解(进阶篇)解析XML格式数据

点击查看>返回总目录< | 上一篇:Android kotlin系列讲解(入门篇)使用HTTP访问网络 文章目录 1、Pull解析方式2、SAX解析方式 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器上获取数据。不过这个时…

Android kotlin系列讲解(入门篇)使用HTTP访问网络

点击查看>返回总目录< | 上一篇:Android kotlin系列讲解(入门篇)WebView的用法 文章目录 1、使用HttpsURLConnection2、使用OkHttp1、使用HttpsURLConnection 在过去,Android上发送HTTP请求一般有两种方式:HttpsURLConnection和HttpClient。不过由于HttpClient存在…

【第四阶段】kotlin语言中的数组类型

1.kotlin语言中的数组类型 类型定义IntArrayintArrayOf()DoubleArraydoubleArrayOf()LongArraylongArrayOf()ShortArrayshortArrayOf()ByteArraybyteArrayOf()FloatArrayfloatArrayOf()BooleanArraybooleanArrayOf()Array<对象类型>arrayOf() 2.Intarry常规操作的越界崩…

Android官方推荐 无需向应用授予的照片选择器工具

官网链接 Photo picker | Android Developers 不能跳转链接看这 Photo picker 照片选择器对话框会显示在您的设备上的媒体文件中。选择一张照片与应用程序分享。 图1. 照片选择器提供了一个直观的用户界面&#xff0c;用于与您的应用程序分享照片。 照片选择器提供了一个可…

学习Kotlin看哪些书?【赠书活动|第八期《深入实践Kotlin元编程》】

文章目录 图书简介01 《深入实践Kotlin元编程》02 《Spring Boot学习指南》03 《Kotlin编程实战》 抽奖方式 与Java一样&#xff0c;Kotlin也是用于Android应用程序开发的编程语言&#xff0c;是Android官方支持的第二种编程语言。 2016年Kotlin正式发布&#xff0c;在Android“…

Kotlin使用infix关键字构建高可读性代码

自从Google推出Kotlin作为官方开发语言后&#xff0c;一堆像我这样的习惯Java开发的程序员从不习惯到爱上这门语言只用了很短的时间&#xff0c;相比于Java语言&#xff0c;kotlin集各家所长&#xff0c;可以使用更少的代码&#xff0c;实现更多更复杂的需求&#xff0c;而且可…

Android Mvvm设计模式的详解与实现

一、介绍 在开发设计模式中&#xff0c;模式经历了多次迭代&#xff0c;从MVC到MVP&#xff0c;再到如今的MVVM。发现的过程其实很简单&#xff0c;就是为了项目更好的管理。 设计模式严格来说属于软件工程的范畴&#xff0c;但是如今在各大面试中或者开发中&#xff0c;设计模…

Android Kotlin 高阶详解

前言 本文主要讲述kotlin高阶相关的内容&#xff0c;如果对kotlin基础还不了解的&#xff0c; 可以参考文章Android Kotlin 基础详解_袁震的博客-CSDN博客 1&#xff0c;与Java的相互调用 1.1在kotlin中调用java代码 大多数的java代码都可以直接在kotlin中调用&#xff0c…

kotlin实现java的单例模式

代码 package com.flannery.interviewdemo.singleinstance//https://blog.csdn.net/Jason_Lee155/article/details/128796742 Java实现 //public class SingletonDemo { // private static SingletonDemo instancenew SingletonDemo(); // private SingletonDemo() // …

epoxy+mavericks初次使用记录

前言 android 的架构模式从早期的MVC&#xff0c;到分离activity职责的MVP&#xff0c;到数据双向绑定的MVVM&#xff0c;到最近开始了解到新的架构模式mvi。虽然MVVM已经很成熟&#xff0c;但是有新的东西总归要了解下。然而MVI比较典型的代表自然是Airbnb的 Mavericks了&…

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片,Kotlin

Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.RE…

Kotlin中的泛型理解与应用

前言 泛型是一种在编程中用于增加代码的灵活性和重用性的概念。它允许我们编写可以在多种类型上工作的通用代码&#xff0c;而不需要为每种类型都编写不同的代码。 泛型应用 在Kotlin中&#xff0c;泛型可以应用于类、函数和接口等。下面是一些关于泛型在Kotlin中的理解和示例…

Android 使用Kotlin封装RecyclerView

文章目录 1.概述2.运行效果图3.代码实现3.1 扩展RecyclerView 3.2 扩展Adapter3.3 RecyclerView装饰绘制3.3.1 以图片实现分割线3.3.2 画网格线3.3.3空白的分割线3.3.4 不同方向上的分割线 3.4 使用方法 1.概述 在一个开源项目上看到了一个Android Kotlin版的RecyclerView封装…

Kotlin 作用域函数(apply、also、run、let、takeIf)

在 Kotlin 中&#xff0c;作用域函数是一组用来在特定作用域中操作对象的函数。它们允许在给定作用域内对对象进行属性赋值、方法调用、转换等操作&#xff0c;并返回相应的结果。 Kotlin提供了几个常用的作用域函数&#xff1a; apply&#xff1a; apply 函数将对象作为上下…

当下最流行的10种编程语言你都知道哪些?

当下最流行的10种编程语言&#xff0c;排序不分先后&#xff0c;有你正在使用或者学习的编程语言么&#xff1f; 1. Python # 示例&#xff1a;打印"Hello, World!" print("Hello, World!")推荐理由&#xff1a; Python 是一种简单易学、功能强大且多用途…

Android Studio默认使用Kotlin语言创建新项目的原因及如何选择Java语言

Android Studio默认使用Kotlin语言创建新项目的原因及如何选择Java语言 在创建新的Android项目时,你可能会注意到Android Studio默认选中了Kotlin作为项目的主要语言。这是因为Kotlin是一种现代化、功能强大而且与Java完全互操作的语言,被广泛认可为Java开发的替代品。然而,…

kotlin实现ArrayDeque

Deque双端队列&#xff0c;一直在使用&#xff0c;却从未了解过源码。 内部逻辑其实很简单 可扩容数组循环队列&#xff0c;循环栈扩容倍数1.5&#xff0c;sizesize(size shr 1)只从两端存取元素 fun main() {val deque MyArrayDeque()repeat(16) {deque.addLast(it)}while …

Kotlin协程CoroutineScope异步async取消cancel等待await的任务

Kotlin协程CoroutineScope异步async取消cancel等待await的任务 import kotlinx.coroutines.*fun main(args: Array<String>) {runBlocking {val mScope CoroutineScope(Dispatchers.IO).async {println("->")delay(999999)println("<-")"…

Kotlin函数作为参数指向不同逻辑

Kotlin函数作为参数指向不同逻辑 fun sum(): (Int, Int) -> Int {return { a, b -> (a b) } }fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) } }fun main(args: Array<String>) {var math: (Int, Int) -> Intmath sum()println(m…

优化|优化处理可再生希尔伯特核空间的非参数回归中的协变量偏移

原文&#xff1a;Optimally tackling covariate shift in RKHS-based nonparametric regression. The Annals of Statistics, 51(2), pp.738-761, 2023.​ 原文作者&#xff1a;Cong Ma, Reese Pathak, Martin J. Wainwright​ 论文解读者&#xff1a;赵进 编者按&#xff1a; …

【Android 从入门到出门】第一章:Android开发技能入门指南

&#x1f935;‍♂️ 个人主页&#xff1a;艾迦洼的个人主页 ✍&#x1f3fb;作者简介&#xff1a;后端程序猿 &#x1f604; 希望大家多多支持&#xff0c;如果文章对你有帮助的话&#xff0c;欢迎 &#x1f4ac;&#x1f44d;&#x1f3fb;&#x1f4c2; 目录 &#x1f44b;第…

Kotlin笔记(四):高阶函数

1. 高阶函数 1.1 定义高阶函数 高阶函数和Lambda的关系是密不可分的。一些与集合相关的函数式API的用法&#xff0c;如map、filter函数等,Kotlin的标准函数&#xff0c;如run、apply函数等。这几个函数有一个共同的特点&#xff1a;它们都会要求我们传入一个Lambda表达式作为参…

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1)

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1) 假设实现一个简单的功能&#xff0c;对传入要加载的path路径增加一定的筛选、容错或“重定向”&#xff0c;需要自定义一个模型&#xff0c;基于这个模型&#xff0c;让Glide自动匹配模型…

Kotlin注释

一、设置注释样式 按需配置 二、单行多行注释 fun main() {// 单行注释println("单行注释") //单行注释/** 多行注释* */println("多行注释") }

Kotlin中的比较运算符

在Kotlin中&#xff0c;我们可以使用比较运算符进行值的比较和判断。下面对Kotlin中的等于、不等于、小于、大于、小于等于和大于等于进行详细介绍&#xff0c;并提供示例代码。 等于运算符&#xff08;&#xff09;&#xff1a; 等于运算符用于判断两个值是否相等。如果两个值…

Kotlin中布尔类型、字符类型、字符串类型和数组类型

在Kotlin中&#xff0c;布尔类型、字符类型、字符串类型和数组类型是常用的数据类型之一。下面我将对它们进行详细描述并提供示例代码。 布尔类型&#xff08;Boolean&#xff09;&#xff1a; 布尔类型表示逻辑值&#xff0c;只有两个可能的取值&#xff1a;true和false。在K…

Kotlin中的算数运算符

在Kotlin中&#xff0c;我们可以使用各种算术运算符来进行数值计算和操作。下面对这些运算符进行详细描述&#xff0c;并提供示例代码。 正号&#xff08;正数&#xff09;和负号&#xff08;负数&#xff09;&#xff1a; 正号用于表示一个正数&#xff0c;不对数值进行任何…

Kotlin中的选择结构语句

在 Kotlin 中&#xff0c;有几种选择结构语句可以根据条件执行不同的代码块。这些选择结构语句包括 if-else、when 表达式和三元操作符&#xff08;也称为三元表达式&#xff09;。 if-else 语句 if-else 语句是最基本的选择结构语句&#xff0c;在 Kotlin 中使用起来非常简单…

Kotlin中的变量与常量

在Kotlin中&#xff0c;val和var是用于声明变量的关键字。 val用于声明不可变的变量&#xff0c;也就是说一旦初始化之后&#xff0c;其值就不能再被修改。它类似于Java中的final关键字。val声明的变量可以通过类型推断自动推断其类型&#xff0c;也可以显式定义类型。 以下是…

Kotlin中类型转换

在 Kotlin 中&#xff0c;类型转换是一种常见的操作&#xff0c;用于将一个数据类型转换为另一个数据类型。在本篇博客中&#xff0c;我们将介绍 Kotlin 中的类型转换&#xff0c;并提供示例代码演示智能类型转换、强制类型转换以及可空类型的转换。 智能类型转换是 Kotlin 中…

解决AndroidStudio 2022.3.1版本 引入maven报错的问题

升级新版Android Studio 2022.3.1后发现引入maven报错&#xff1a; 1、报错的日志 ^ Unexpected tokens (use ‘;’ to separate expressions on the same line)。 2、解决问题 2.1 新版本的引入方式&#xff1a; repositories {maven { url uri("https://maven.aliy…

Kotlin类的定义、构造函数、封装、继承和多态

Kotlin是一门面向对象的编程语言&#xff0c;它支持类的定义、构造函数、封装、继承和多态&#xff0c;这些是面向对象编程的核心概念。在下面的示例中&#xff0c;我们将通过代码来说明这些概念。 类的定义和成员访问 在Kotlin中&#xff0c;使用关键字class来定义一个类。类…

kotlin aes 加密解密

文章目录 1. key填充2. 加密3. 解密 1. key填充 aes算法对key的字节数有要求 所以对输入的key要做填充处理 fun fillKey(key: String): ByteArray {val random SecureRandom.getInstance("SHA1PRNG")random.setSeed(key.toByteArray())val generator KeyGenerato…

Kotlin中抽象类与接口

Kotlin 中的抽象类和接口是面向对象编程中的重要概念&#xff0c;它们提供了一种用于定义和组织代码的方式。在下面的代码示例中&#xff0c;我们将介绍 Kotlin 中的抽象类和接口&#xff0c;并给出相应的示例。 抽象类 抽象类是一种不能被实例化的类&#xff0c;它仅用作其他…

Kotlin笔记(六):泛型的高级特性

前面学习了Kotlin中的泛型的基本用法,跟Java中的泛型大致相同&#xff0c;Kotlin在泛型方面还提供了不少特有的功能&#xff0c;掌握了这些功能&#xff0c;你将可以更好玩转Kotlin&#xff0c;同时还能实现一些不可思议的语法特性&#xff0c;那么我们自然不能错过这部分内容了…

Kotlin中的嵌套类、内部类、枚举类、密封类、数据类、单例类、伴生对象

在Kotlin中&#xff0c;类可以分为以下几种类型&#xff0c;并使用样例代码进行说明&#xff1a; 嵌套类&#xff08;Nested Class&#xff09;&#xff1a;嵌套类是指可以嵌套在其他类中的类。嵌套类不能直接访问外部类的成员。例如&#xff0c;在下面的代码中&#xff0c;&q…

Kotlin中的List集合

在Kotlin中&#xff0c;List集合用于存储一组有序的元素。List集合分为可变集合&#xff08;MutableList&#xff09;和不可变集合&#xff08;List&#xff09;。本篇博客将分别介绍可变集合和不可变集合&#xff0c;并提供相关的API示例代码。 不可变集合&#xff08;List&a…

Kotlin中的内联函数:提升性能与解决Lambda表达式参数问题

在Kotlin中&#xff0c;Lambda表达式的使用极大地简化了函数式编程和回调机制的实现。然而&#xff0c;Lambda表达式在每次调用时都会创建一个新的对象&#xff0c;导致额外的内存开销&#xff0c;从而降低了程序的效率。为了解决这个问题&#xff0c;Kotlin引入了内联函数的概…

【Kotlin精简】第5章 简析DSL

1 DSL是什么&#xff1f; Kotlin 是一门对 DSL 友好的语言&#xff0c;它的许多语法特性有助于 DSL 的打造&#xff0c;提升特定场景下代码的可读性和安全性。本文将带你了解 Kotlin DSL 的一般实现步骤&#xff0c;以及如何通过 DslMarker &#xff0c; Context Receivers 等…

Android View拖拽startDragAndDrop,Kotlin

Android View拖拽startDragAndDrop&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.DragEvent import android.view.View import android.view.View.OnDragListener import android.view.View.OnLongClickListener import android.w…

kotlin-筑基(1)

文章目录 1. val、var、const2.什么是幕后字段2.1 kotlin的普通属性2.2 幕后字段 3. for 循环4. init{}5. data class5.1 gson解析5.2 重写setter/getter 6. 内联函数6.1 inline6.2 return6.3 noinline6.4 crossinline 7. sealed class8. object9. open10. inner 1. val、var、…

Kotlin中的数组

数组是一种常见的数据结构&#xff0c;用于存储相同类型的多个元素。在 Kotlin 中&#xff0c;我们可以使用不同的方式声明、初始化和操作数组。 在 Kotlin 中&#xff0c;有多种方式可以定义和操作数组。我们将通过以下示例代码来展示不同的数组操作&#xff1a; fun main()…

Kotlin(七) 接口

接口是用于实现多态编程的重要组成部分。我们都知道&#xff0c;Java是单继承结构的语言&#xff0c;任何一个类最多只能继承一个父类&#xff0c;但是却可以实现任意多个接口&#xff0c;Kotlin也是如此。 首先创建一个Study接口&#xff0c;在创建文件窗口选择“Interface…

Kotlin基础——函数、变量、字符串模板、类

函数、变量、字符串模板、类 函数变量字符串模板类 函数 函数组成为 fun 函数名(参数名: 参数类型, …): 返回值{} fun max(a: Int, b: Int): Int {return if (a > b) a else b }上面称为代码块函数体&#xff0c;当函数体由单个表达式构成时&#xff0c;可简化为表达式函…

在 Android 上测试 Kotlin 数据流

文章目录 一 创建虚构数据提供方二 在测试中断言数据流发出测试期间持续收集 三 测试 StateFlow使用 stateIn 创建的 StateFlow 转自&#xff1a; https://developer.android.google.cn/kotlin/flow/test?hlzh-cn#producer 与数据流进行通信的单元或模块的测试方式取决于受测对…

Java入门篇 之 数据类型(简单介绍)

博主回归学习状态的第三篇文章&#xff0c;希望对大家有所帮助 今日份励志文案:你若决定灿烂&#xff0c;山无遮&#xff0c;海无拦 加油&#xff01; Java中一共存在2种数据类型 1 . 基本数据类型,基本数据类型四种和八种之说(具体看下图) 四种说的是&#xff0c;整数型&…

Android NDK开发详解之Application.mk探秘

Android NDK开发详解之Application.mk探秘 概览变量APP_ASFLAGSAPP_ASMFLAGSAPP_BUILD_SCRIPTAPP_CFLAGSAPP_CLANG_TIDYAPP_CLANG_TIDY_FLAGSAPP_CONLYFLAGSAPP_CPPFLAGSAPP_CXXFLAGSAPP_DEBUGAPP_LDFLAGSAPP_MANIFESTAPP_MODULESAPP_OPTIMAPP_PLATFORMAPP_PROJECT_PATHAPP_STL…

Android NDK开发详解之调试和性能分析的通过Android Studio调试

Android NDK开发详解之调试和性能分析的通过Android Studio调试 启用调试功能在设备上启用调试功能。运行可调试的 build 变体。 更改调试程序类型AutoJavaNative&#xff08;仅适用于 C/C 代码&#xff09;设备支持 run-as。设备启用了 ptrace。 Dual&#xff08;仅适用于 C/C…

kotlin中集合操作符

集合操作符 1.总数操作符 any —— 判断集合中 是否有满足条件 的元素&#xff1b; all —— 判断集合中的元素 是否都满足条件&#xff1b; none —— 判断集合中是否 都不满足条件&#xff0c;是则返回true&#xff1b; count —— 查询集合中 满足条件 的 元素个数&#x…

Android开发知识学习——Kotlin进阶

文章目录 次级构造主构造器init 代码块构造属性data class相等性解构Elvis 操作符when 操作符operatorLambdainfix 函数嵌套函数注解使用处目标函数简化函数参数默认值扩展函数类型内联函数部分禁用用内联具体化的类型参数抽象属性委托属性委托类委托 Kotlin 标准函数课后题 次…

Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View,Kotlin(4)

Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View&#xff0c;Kotlin&#xff08;4&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import a…

Kotlin笔记(五):泛型基础,委托

1. 泛型 Java自1.5版本引入了泛型的概念, Kotlin自然也支持泛型,Kotlin的泛型跟Java的泛型有相同之处,也有一些特别之处. 1.1 泛型类和泛型方法 在一般的编程模式下&#xff0c;我们需要给任何一个变量指定一个具体的类型&#xff0c;而泛型允许我们在不指定具体类型的情况下进…

Kotlin 中 apply、let、also、run的区别

apply apply 函数接收一个目标并回来该目标自身。它答应您在目标上履行一些操作&#xff0c;同时仍然回来原始目标。 fun <T> T.apply(block: T.() -> Unit): TT 是目标的类型&#xff0c;block 是一个 lambda 表达式&#xff0c;能够在该目标上履行一些操作。在这个…

kotlin实现LRUCache

与一般的结构不同&#xff0c;参考了LinkedHashMap&#xff0c;将经常访问的放在最后&#xff0c;linkedLast() 相关题目&#xff0c;https://leetcode.cn/problems/lru-cache/ class MyLRUCache(private val maxSize: Int) {class Node(val key: Int, var value: Int, var be…

Android开发中遇到的问题请求帮助分析解决

本篇文章主要寻求广大的网友&#xff0c;对我遇到的问题进行分析解答&#xff0c;希望能给出更好的&#xff0c;更优化的方法。话不多说先上遇到的问题的流程图的分析&#xff1a; 以上就是流程分析图&#xff0c;希望能够尽快解决&#xff0c;希望得到大家的支持。再次本人非常…

kotlin用ping命令判断网络是否是通的

ping通的报文&#xff1a; ping -c 3 -W 1 127.0.0.5 PING 127.0.0.5 (127.0.0.5) 56(84) bytes of data. 64 bytes from 127.0.0.5: icmp_seq1 ttl64 time0.105 ms 64 bytes from 127.0.0.5: icmp_seq2 ttl64 time0.077 ms 64 bytes from 127.0.0.5: icmp_seq3 ttl64 time0.06…

bep003-Torrent文件解析.md

目录 前言Bencode 编码metainfo files 文件结构多文件Torrent的结构单文件Torrent的结构 Tracker 下载客户端上报后端接收Announce上报接口InfoHashParam注解 总结 前言 我对BT相关协议很感兴趣&#xff0c; 萌生了自己实现一个PT Tracker服务端的想法。 顺便学习下Koitln语言…

kotlin--3.集合操作

目录 一.list集合 二.Set集合 三.Map集合 迭代遍历Map集合&#xff1a; 8.hashMap 四.Stream流 1.map 2.filter 3.reduce 4.forEach 5.sorted 6.distinct 7.综合案例 一.list集合 在Kotlin中&#xff0c;常见的List集合类型有以下几种&#xff1a; listOf&…

(笔记)Kotlin——Android封装ViewBinding之二 优化

0. 在app模块的build.gradle文件中添加如下配置开启ViewBinding android {.......viewBinding {enabled true}} 1. 新建一个Ext.kt文件 添加两个扩展函数&#xff0c;分别对应Activity和Fragment inline fun <T : ViewBinding> AppCompatActivity.viewBinding(cross…

Android改造CardView为圆形View,Kotlin

Android改造CardView为圆形View&#xff0c;Kotlin 可以利用androidx.cardview.widget.CardView的cardCornerRadius特性&#xff0c;将CardView改造成一个圆形的View&#xff0c;技术实现的关键首先设定CardView为一个宽高相等的View&#xff08;正方形&#xff09;&#xff0c…

Kotlin 知识体系

Kotlin 知识体系 1、Kotlin 文档2、Kotlin 基础3、桌面应用程序4、Android 与 iOS 应用程序 1、Kotlin 文档 Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复…

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC &#x1f449;关于作者 专…

Androidstudio中build.gradle classpath如何添加

Androidstudio中build.gradle classpath如何添加 build.gradle classpath如何添加 build.gradle classpath如何添加 升级as之后&#xff0c;gradle版本也升级了&#xff0c;导致project的build.gradle中的写法也不一样了。 buildscript {repositories {google()mavenCentral(…

关于RecyclerView的瀑布流 分割线左右间距问题

记录一下开发遇到的RecyclerView 的 瀑布流 左右间距设置问题。 在GridLayoutManager中 &#xff0c;item的布局顺序为 在该布局中&#xff0c;他的index就是左右左右&#xff0c;position所对应的itemView就是准确的。即 左0&#xff0c;右1&#xff0c;左2&#xff0c;右3&a…

【Android Jetpack】Hilt的理解与浅析

文章目录 依赖注入DaggerHiltKoin添加依赖项Hilt常用注解的含义HiltAndroidAppAndroidEntryPointInjectModuleInstallInProvidesEntryPoint Hilt组件生命周期和作用域如何使用 Hilt 进行依赖注入 本文只是进行了简单入门&#xff0c;博客仅当做笔记用。 依赖注入 依赖注入是一…

【报错记录】解决使用Kotlin写的SpringBoot项目使用Aspect切面无法生效的问题

前言 为了能在SpringBoot使用Kotlin&#xff0c;真的是各种坑都彩礼一遍&#xff0c;这次遇到的问题是Aspect无法对Kotlin代码生效。我这里的使用场景是使用切面切Controller中的方法&#xff0c;用来对接口进行一些初始化和收尾工作。 Aspect在Controller类还是Java代码的时…

kotlin集合(Collections)

集合有助于数据分组&#xff0c;方便后续操作 集合类型说明Lists有序的可重复的集合Sets无序的不可重复的集合Maps键值对映射集合&#xff0c;键唯一&#xff0c;且一个键只能映射到一个值 每个集合类型都可以是可变的或者只读的 List List按照添加的顺序存储内容&#xff…

3:kotlin 逻辑控制(Control flow)

向其他语言一样&#xff0c;kotlin也有循环和逻辑控制 条件判断&#xff08;Conditional expressions&#xff09; kotlin使用if和when来进行条件判断 如果纠结选择if还是when&#xff0c;建议使用when&#xff0c;因为它更能提高程序的健壮性 if 普通写法 fun main() {val…

6:kotlin 空值安全(Null safety)

在Kotlin中&#xff0c;是可以有空值的。为了防止程序中出现空值问题&#xff0c;Kotlin实施了空值安全。空值安全在编译时而不是运行时检测到可能的空值问题。 空值安全是一组功能的组合&#xff0c;允许您&#xff1a; 明确声明程序中允许空值的地方。检查空值。对可能包含…

Kotlin apply 交换两个数

代码&#xff1a; fun main() {var a 1var b 2a b.apply {b aprintln("$b")println("$this")}println("$a $b") }打印结果&#xff1a; 1 2 2 1原理分析&#xff1a; /*** Calls the specified function [block] with this value as its r…

Kotlin--内置函数的总结

对象&#xff1a;info TODO apply--info.apply{this} 1、apply函数返回类型&#xff0c;都是info本身&#xff0c;此条和also一模一样 2、apply函数的匿名函数里面持有的是thisinfo本身 此条和run一模一样 TODO let--info.let{it} 1、let函数返回类型&#xff0c;是根据匿名函…

kotlin 内置函数对数组进行各种操作

以下是一些常见的用法示例&#xff1a; plus() 函数将两个数组合并成一个数组。plus() 函数是 Kotlin 标准库中的一个扩展函数&#xff0c;可以用于合并两个同类型的数组。 fun main() {val array1 arrayOf(1, 2, 3)val array2 arrayOf(4, 5, 6)val mergedArray array1.plu…

7:kotlin 数组 (Arrays)

数组是一种数据结构&#xff0c;它保存固定数量的相同类型或其子类型的值。kotlin中最常见的数组类型是对象类型数组&#xff0c;数组由array类表示。 什么时候使用 当你在kotlin中有特殊的底层需求需要满足时&#xff0c;可以使用数组。例如&#xff0c;如果你有超出常规应用…

Rust 中的 Pin UnPin Async Await 实现机制

原文地址 为了保证概念的严谨性&#xff0c;翻译时保留了英文原文。 In this post, we explore cooperative multitasking and the async/await feature of Rust. We take a detailed look at how async/await works in Rust, including the design of the Future trait, the…

用Rust和Scraper库编写图像爬虫的建议

本文提供一些有关如何使用Rust和Scraper库编写图像爬虫的一般建议&#xff1a; 1、首先&#xff0c;你需要安装Rust和Scraper库。你可以通过Rustup或Cargo来安装Rust&#xff0c;然后使用Cargo来安装Scraper库。 2、然后&#xff0c;你可以使用Scraper库的Crawler类来创建一个…

从内存优化视角再看 Glide 图片加载库

前置背景 Glide 作为常用的图片加载框架&#xff0c;框架层面已经对内存方面有不少优化&#xff0c;但作为一个图片框架&#xff0c;确保正确性一定是第一位的&#xff0c;因此在应用层还可以在适当的场景做一些额外的优化&#xff0c;当然你需要了解优化设置可能产生的问题。…

Android相机性能提高50%

文章目录 应用举例&#xff08;可以不看这一part&#xff0c;直接跳过看具体怎么做&#xff09;&#xff1a;Snapchat 通过 Camera2 Extensions API 将新相机功能的集成速度提高了 50%**Camera2 扩展 API 可以访问高级功能更多设备上的更多机会 正文&#xff1a;开始使用扩展架…

Perl使用爬虫ip服务器采集图书网站信息

这是一个使用 Perl 和爬虫ip服务器来爬取图书网站信息采集的示例代码。以下每行代码的中文解释&#xff1a; use LWP::UserAgent; use HTTP::Proxy; use HTML::TreeBuilder;# 创建爬虫ip服务器 my $proxy HTTP::Proxy->new(host > "www.duoip.cn",port > 8…

Android transform旋转rotate圆角矩形图roundedCorners,Kotlin

Android transform旋转rotate圆角矩形图roundedCorners&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.…

【Kotlin精简】第9章 Kotlin Flow

1 前言 上一章节我们学习了Kotlin的协程【Kotlin精简】第8章 协程&#xff0c;我们知道 协程实质是对线程切换的封装&#xff0c;能更加安全实现异步代码同步化&#xff0c;本质上协程、线程都是服务于并发场景下&#xff0c;其中协程是协作式任务&#xff0c;线程是抢占式任务…

Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.5.21.

前两天下了一个demo&#xff0c;运行时候报了一个这样的错&#xff0c;特此记录一下。 先看下报的错。 Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.5.21. Searched in the following…

第一次部署机器学习模型

一、说明 自从我开始机器学习以来&#xff0c;Jupyter Notebooks一直是我最忠实的伙伴。从数据预处理到模型训练、微调和测试&#xff0c;Jupyter Notebooks 在每一步都为我提供支持。然而&#xff0c;我一直都知道&#xff0c;在这些数字页面之外&#xff0c;还有一个完整的世…

安卓常见设计模式2------构建者模式(Kotlin版)

1. W1 是什么&#xff0c;什么是构建者模式&#xff1f; 构建者模式&#xff08;Builder Pattern&#xff09;是一种创建复杂对象的设计模式。它通过使用链式调用的方式&#xff0c;逐步构建对象&#xff0c;使得代码更易读、可维护&#xff0c;并且可以处理许多可选参数的情况…

Kotlin(十) 空指针检查、字符串内嵌表达式以及函数默认值

空指针检查 我们在之前的章节里&#xff0c;有定义一个Study的类&#xff0c;它有两个函数&#xff0c;一个doHomework(),一个readBooks()。然后我们定义个doStudy函数&#xff0c;来调用它们&#xff0c;代码如下&#xff1a; fun doStudy(study: Study) {study.doHomework(…

Kotlin语言基础(二)-变量和数据类型

Kotlin语言基础-变量和数据类型 一、Kotlin的变量 Kotlin变量有两种形式var(variable)和val(value,取值) val定义只读量&#xff0c;一旦创建&#xff0c;其值不会发生变化 例&#xff1a; val a 23那么对于a对应的值就只能是23&#xff0c;不会发生变化。如何试图对a重新赋…

使用git命令修改分支名称

##假设分支名称为oldName ##想要修改为 newName ##2种情况看你属于那种 ###本地分支重命名 ###远程分支重命名 1. 本地分支重命名(还没有推送到远程) git branch -m oldName newName 2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同) a. 重命名远程分…

Android Glide transform圆形图CircleCrop动态代码描边绘制外框线并rotateImage旋转,Kotlin

Android Glide transform圆形图CircleCrop动态代码描边绘制外框线并rotateImage旋转&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app&q…

Kotlin之控制语句和表达式

原文链接 Kotlin Controls and Expressions 有结果返回的是表达式&#xff0c;没有返回的称之为语句&#xff0c;语句最大的问题是它没有返回值&#xff0c;那么想要保存结果就必然会产生副作用&#xff0c;比如改变变量。很多时候这是不够方便的&#xff0c;并且在多线程条件…

andorid 日历选择器

先看效果图&#xff1a; 主要代码 package com.example.flyimport android.annotation.SuppressLint import android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import…

Android网络模块基本实现步骤

Android网络模块主要是用于访问网络和获取数据&#xff0c;下面是网络模块的基本实现步骤&#xff1a; 选择网络框架&#xff1a;Android中常用的网络框架有HttpURLConnection、OkHttp、Volley和Retrofit等。最新的版本已经支持使用Kotlin协程完成网络请求&#xff0c;可以根据…

Compose入门

​ 本篇文章主要是为了对Compose有一个初步了解。知道Compose是做什么的&#xff0c;用Compose能干什么&#xff0c;在目前的各种UI框架下面有些优势&#xff0c;参考Google官网的解释加上一些自己的理解生成的一篇文章。本人也是Compose初学者&#xff0c;通过每一步学习遇到哪…

Kotlin学习——kt里的集合,Map的各种方法之String篇

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Android获取原始图片Bitmap的宽高大小尺寸,Kotlin

Android获取原始图片Bitmap的宽高大小尺寸&#xff0c;Kotlin val options BitmapFactory.Options()options.inJustDecodeBounds trueval decodeBmp BitmapFactory.decodeResource(resources, R.mipmap.p1, options)//此时&#xff0c;decode出来的decodeBmp宽高并不是原始图…

【单元测试】使用Gradle运行@SpringBootTest单元测试提示“No tests found for given includes。。。 “解决

问题&#xff1a; 在IntelliJ IDEA中运行Gradle服务的单元测试时报错 错误提示&#xff1a; Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:test’. No tests found for given includes: [DemoTest.queryStri…

HarmonyOS第一课-对比Kotlin,快速入门TypeScript

编程语言简介 基础类型 1. 布尔值 TypeScript 和 Kotlin: 两者都有 boolean 类型&#xff0c;用于表示 true 或 false。 ts示例&#xff1a; let isDone:boolean falsekotlin示例&#xff1a; val isDone: Boolean false2. 数字 TypeScript: 有 number 类型&#xff0c…

10:kotlin 异常(Exceptions )

所有的异常类都继承自Throwable类 抛出异常使用throw表达式 throw Exception("wrong")捕获一个异常使用 try...catch表达式 try {// 编码 } catch (e: SomeException) {// 异常时处理方法 } finally {// 不论异常还是正常结束都要执行当前内容 }可以有零个或多个c…

Kotlin中常见的List使用

文章目录 1.filter2.map3.count4.first,last5.any,all,none6.find&#xff0c;findLast7.indexOf()和lastIndexOf()查找元素下标8.Slice切片9.Take()和drop()获取指定长度 1.filter filter 就像其本意一样&#xff0c;可以通过 filter 对 Kotlin list 进行过滤。 fun main() …

Android问题笔记四十九:ViewPager 嵌套 Fragment 扩大滑动响应区域,避免左右滑动过于灵敏问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

11:kotlin 类和对象 -- 普通类

前面粗咯的讲了类&#xff0c;这篇详细介绍类及相关的概念 定义类使用关键字class class Person { /*...*/ }类声明由类名、类头&#xff08;指定其类型参数、主构造函数等&#xff09;和由{}包围的类体组成。类头和类体都是可选的&#xff1b;如果类没有体&#xff0c;可以省…

Kotlin(十二) 定义静态方法

静态方法在某些编程语言里面又叫作类方法&#xff0c;指的就是那种不需要创建实例就能调用的方法&#xff0c;所有主流的编程语言都会支持静态方法这个特性。 在Java中定义一个静态方法非常简单&#xff0c;只需要在方法上声明一个static关键字就可以了&#xff0c;如下所示&a…

Kotlin原理+协程基本使用

协程概念 协程是Coroutine的中文简称&#xff0c;co表示协同、协作&#xff0c;routine表示程序。协程可以理解为多个互相协作的程序。协程是轻量级的线程&#xff0c;它的轻量体现在启动和切换&#xff0c;协程的启动不需要申请额外的堆栈空间&#xff1b;协程的切换发生在用…

Android 多语言 切换

你还在重写attachBaseContext自定义多语言切换吗&#xff1f; 你还需要自己用轻量级存储&#xff08;SharedPreferences、datastore&#xff09;之类的来保存你切换的语言吗&#xff1f; 你还需要自己编写重启活动逻辑吗? 比如&#xff1a; override fun attachBaseContext(n…

kotlin中sealed语句的使用

sealed 密封类是 Kotlin 中的一种特殊类别&#xff0c;它的主要作用是限制类的继承结构。密封类用于表示受限的类继承结构&#xff0c;即一个值只能有有限几种类型&#xff0c;而不能有任意类型。密封类通常用于表示一种有限集合的类型。 下面是密封类的主要特性和作用&#x…

我的 2023 秋招总结,拿到了大厂offer

2023秋招小结 前言 & 介绍 作为2024年毕业的学生&#xff0c;在2023年也就是今年秋招。 现在秋招快结束了&#xff0c;人生可能没有几次秋招的机会&#xff08;应该就一次&#xff0c;最多两次吧哈哈&#xff09;&#xff0c;也有一点感悟&#xff0c;所以小小总结一下。…

从android.graphics.Path中取出Point点,Kotlin

从android.graphics.Path中取出Point点&#xff0c;Kotlin /*** 从一条Path中获取多少个Point点*/private fun getPoints(path: Path, pointCount: Int): Array<FloatPoint?> {val points arrayOfNulls<FloatPoint>(pointCount)val pm PathMeasure(path, false)…

12:kotlin类和对象 -- 继承

kotlin中的所有类都有一个共同的超类Any class Example // 没有声明&#xff0c;但是默认实现Any类Any有三个方法:equals()、hashCode()和toString()。 默认情况下&#xff0c;kotlin类是final修饰的&#xff0c;所以它们不能被继承。要使一个类可继承&#xff0c;用open关键…

R语言gWQS包在加权分位数和回归模型的应用

在流行病学研究中&#xff0c;相较于单一因素的暴露&#xff0c;多因素同时暴露的情况更为常见。传统模型在评价多因素联合暴露时存在数据维度高、多重共线性等问题. WQS 回归模型的基本原理是通过分位数间距及加权的方法&#xff0c;将多种研究因素的效应综合成为一个指数&…

KMP基础架构

前言 Kotlin可以用来开发全栈, 我们所熟悉的各个端几乎都支持(除了鸿蒙) 而我们要开发好KMP项目需要一个好的基础架构,这样不仅代码更清晰,而且能共享更多的代码 正文 我们可以先将KMP分为前端和服务端 它们两端也能共享一些代码,比如接口声明,bean类,基础工具类等 前端和…

kotlin 委托属性 在方法中定义,将无法使用委托的set属性。

在 Kotlin 中&#xff0c;委托属性是通过 by 关键字来实现的&#xff0c;但是这个语法只能用于类的属性而不是局部变量。委托属性通常用于类的属性声明中&#xff0c;例如&#xff1a; import kotlin.reflect.KPropertyclass Delegate {private var storedValue: String? nu…

IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门 前言 在上一篇文章中介绍了在IDEA下开发、运行和安装插件的基本步骤&#xff0c;因此创建项目等基础步骤不再赘述&#xff0c;本文则开始介绍如何进行 UI 界面的开发以及相关数据的持久化存储&#xff…

自定义 按钮间,按钮边框滑动。

先是布局界面 <RelativeLayoutandroid:id"id/tab_button_rel"android:layout_width"match_parent"android:layout_height"wrap_content"android:layout_below"id/toolbar"><androidx.appcompat.widget.AppCompatButtonandro…

24:kotlin 类和对象 -- 对象表达式和声明(Object expressions and declarations)

如果需要创建一个稍微修改了某个类的对象&#xff0c;而不需要显式地声明一个新的子类。Kotlin可以通过对象表达式&#xff08;object expressions&#xff09;和对象声明&#xff08;object declarations&#xff09;来处理这种情况。 对象表达式 对象表达式用于创建匿名类的…

关于kotlin的属性委托,报错的,实际原因剖析

报错&#xff1a;Property delegate must have a ‘getValue(SecurityCheckView, KProperty*>)’ method. None of the following functions are suitable 解决方案&#xff1a;就是在根目录的build.gradle中改变 kotlin的插件版本 classpath “org.jetbrains.kotlin:kotli…

Kotlin Lambda使用

Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明&#xff0c; 既然是函数声明&#xff0c;就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…

根据InputStream判断是否JPEG/PNG/GIF

注意&#xff1a;如果报错 IOException&#xff1a; mark/reset not supported 用 BufferedInputStream(&#xff09;包裹一层 private fun getImageType(inputStream: InputStream): String {try {val header ByteArray(8)//标记inputStream.mark(8)val bytesRead inputS…

Kotlin 中的 var 和 val:选择正确的变量声明

在 Kotlin 编程语言中&#xff0c;var 和 val 是两个基本的关键字&#xff0c;用于变量声明。 它们的正确使用对于编写可维护和高效的代码至关重要。 一、对比分析&#xff1a; var &#xff1a;用于声明可变变量。使用 var 声明的变量可以在初始化后被重新赋值。val &#…

Kotlin 中密封类、枚举类与密封接口的对比分析

在 Kotlin 编程语言中&#xff0c;密封类&#xff08;Sealed Classes&#xff09;、枚举类&#xff08;Enum Classes&#xff09;和密封接口&#xff08;Sealed Interfaces&#xff09;是处理一组固定类型的强大工具。它们在 Kotlin 中扮演着特殊的角色&#xff0c;特别是在创建…

Kotlin Flow 操作符

前言 Kotlin 拥有函数式编程的能力&#xff0c;使用Kotlin开发&#xff0c;可以简化开发代码&#xff0c;层次清晰&#xff0c;利于阅读。 然而Kotlin拥有操作符很多&#xff0c;其中就包括了flow。Kotlin Flow 如此受欢迎大部分归功于其丰富、简洁的操作符&#xff0c;巧妙使…

Android画布Canvas绘图scale,Kotlin

Android画布Canvas绘图scale&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.…

用Kotlin抓取微博数据并进行热度预测

闲来无事&#xff0c;逛逛微博&#xff0c;看着每条热度很高的博文趣事&#xff0c;心想能否通过爬虫抓取微博热度并进行趋势分析&#xff0c;说干就干&#xff0c;这里需要注意的问题我会一一标注。 爬虫ip信息的设置是在爬虫程序中进行的。爬虫ip信息可以帮助爬虫程序在访问…

百度文库下载要用券?Kotlin爬虫几步解决

百度作为国内知名的网站&#xff0c;尤其是文库里面有各种丰富的内容&#xff0c;对我们学习生活都有很大的帮助&#xff0c;就因为其内容丰富&#xff0c;如果看见好用有意思的文章还用复制粘贴等方式就显得有点落后了&#xff0c;今天我将用我所学的爬虫知识给你们好好上一课…

Kotlin学习笔记1

数组 /*** 何时使用数组*/ fun useDemo() {// Kotlin 中最常见的数组类型是对象类型数组&#xff0c;由 Array 类表示。// 如果在对象类型数组中使用原生类型&#xff0c;那么会对性能产生影响&#xff0c;因为原生值都装箱成了对象。 为了避免装箱开销&#xff0c;请改用原生…

Kotlin 中的 `use` 关键字:优化资源管理(避免忘记inputStream.close() ?)

在 Android开发中&#xff0c;正确且高效地管理资源是至关重要的。use 关键字在 Kotlin 中为资源管理提供了一个简洁且强大的解决方案。它主要用于自动管理那些需要关闭的资源&#xff0c;比如文件、网络连接等。 一、use 关键字的工作原理 &#x1f916; use 是一个扩展函数…

Kotlin语言第一篇:我是谁?

Kotlin 是一种静态类型的编程语言&#xff0c;最初由 JetBrains 公司于2011年推出。它可以在 Java 虚拟机&#xff08;JVM&#xff09;上运行&#xff0c;并且可以编译成 JavaScript 或本机代码。Kotlin 设计的目标是简洁、表达力强&#xff0c;并且与现有的 Java 代码具有良好…

Kotlin(十九) 泛型的高级特性

实化泛型 怎么写才能将泛型实化呢&#xff1f;首先&#xff0c;该函数必须是内联函数才行&#xff0c;也就是要用inline关键字来修饰该函数。其次&#xff0c;在声明泛型的地方必须加上reified关键字来表示该泛型要进行实化。示例代码如下&#xff1a; inline fun <reifie…

kotlin 基础概览

继承类/实现接口 继承类和实现接口都是用的 : &#xff0c;如果类中没有构造器 ( constructor )&#xff0c;需要在父类类名后面加上 () &#xff1a; class MainActivity : BaseActivity(), View.OnClickListener 空安全设计 Kotlin 中的类型分为「可空类型」和「不可空类型」…

Kotlin学习——kt中的类,数据类 枚举类 密封类,以及对象

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

Spring Boot Kotlin支持中文文档

本文为官方文档直译版本。原文链接 Spring Boot Kotlin支持中文文档 引言所需条件空安全Kotlin APIrunApplication扩展 依赖管理ConfigurationProperties测试资料更多阅读示例 引言 Kotlin 是一种针对 JVM&#xff08;和其他平台&#xff09;的静态类型语言&#xff0c;可以编…

java写一个自动爬取统计局公开数据的程序

在Java中&#xff0c;爬取网站内容的最常用的库是Jsoup。以下是一个简单的爬虫程序示例&#xff0c;它将爬取统计局网站上的公开采集内容&#xff1a; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.El…

安卓常见设计模式13------过滤器模式(Kotlin版)

W1 是什么&#xff0c;什么是过滤器模式&#xff1f;​ 过滤器模式&#xff08;Filter Pattern&#xff09;是一种常用的结构型设计模式&#xff0c;用于根据特定条件过滤和筛选数据。 2. W2 为什么&#xff0c;为什么需要使用过滤器模式&#xff0c;能给我们编码带来什么好处…

Android 主线程绑定 CPU 大核(提升应用整体性能)

在 Android 开发中&#xff0c;主线程是负责处理用户界面操作的线程。绑定 CPU 大核的作用是为主线程提供更高的计算性能和更快的响应速度。 通常情况下&#xff0c;Android 设备的 CPU 由多个小核和少量大核组成&#xff0c;小核主要负责处理低功耗的后台任务&#xff0c;而大…

Kotlin库实现多线程爬取数据

由于字数限制&#xff0c;以下是一个简化版的爬虫程序示例&#xff0c;使用了Kotlin的网络库kotlinx.coroutines和kotlinx.html。这个程序会爬取一个简单的Python多线程跑数据的网页&#xff0c;并打印出结果。 import kotlinx.coroutines.* import kotlinx.html.* import java…

Androidstudio加载编译时kotlin-compiler-embeddable一直下载中

打开网址 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.10/ 1.下载jar包 2.配置下载jar文件到.gradle文件中 文件路径:/Users/“用户名”/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embedd…

安卓开发学习---kotlin版---笔记(三)

网络 安卓主页的网络框架&#xff1a;OkHttp 在OkHttp的基础上进行封装的&#xff1a;Retrofit框架&#xff0c;更常使用 OkHttp学习 在使用网络请求的时候&#xff0c;先添加网络访问权限&#xff1a; <uses-permission android:name"android.permission.INTERNET&…

编译时AndroidX冲突报错

一、报错信息 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task :app:checkDebugDuplicateClasses.at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.jav…

Android---Kotlin 学习013

互操作性和可空性 Java 世界里所有对象都可能是 null&#xff0c;而 kotlin 里面不能随便给一个变量赋空值的。所有&#xff0c;kotlin 取调用 java 的代码就很容易出现返回一个 null&#xff0c;而 Kotlin 的接收对象不能为空&#xff0c;你不能想当然地认为 java 的返回值就…

【28】Kotlin语法进阶——使用协程编写高效的并发程序

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、Kotlin中的协程1.1 协程的基本用法1.1.1协程与协程作用域1.1.2 使用launch函数创建子协程1.1.3 通过suspend关键声明挂起函数1.1.4 coroutineScope函数 1.2…

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap,Kotlin

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.h…

kotlin filter 过滤集合(filterIndexed,filterNot,filterIsInstance,filterNotNull)

filter 在kotlin中一个高阶函数属于过滤集合中其中之一 filter作用&#xff1a; 用于根据提供的谓词函数过滤出集合中的元素&#xff0c;注意谓词只能检查元素的值&#xff0c;谓词可以理解为判断条件 举例&#xff1a;检查集合中长度大于3的元素 val numbers listOf(&quo…

kotlin基础——重载

重载算术运算符 重载二元算术运算 使用operator定义plus()方法后&#xff0c;可以直接使用号求和 data class Point(val x: Int, val y: Int) {operator fun plus(other: Point): Point {return Point(x other.x, y other.y)} } val p1 Point(1, 2) val p2 Point(3, 4) …

Kotlin/JS工程构建及编译运行到浏览器

概述 Kotlin/JS 提供了转换 Kotlin 代码、Kotlin 标准库的能力&#xff0c;并且兼容 JavaScript 的任何依赖项。Kotlin/JS 的当前实现以 ES5 为目标。 使用 Kotlin/JS 的推荐方法是通过 kotlin.multiplatform Gradle 插件。它提供了一种集中且便捷的方式来设置与控制以 JavaS…

Kotlin协程与流(Flow)

Kotlin协程 ​ Kotlin 协程是一种轻量级的并发设计模式&#xff0c;用来简化异步编程&#xff0c;提高代码的可读性和易维护性。协程通过挂起函数&#xff0c;允许你在协作式多任务环境中写出顺序的代码&#xff0c;处理异步任务&#xff0c;就像写同步代码一样。 使用场景 …

Kotlin: Jetpack — LiveData简单应用

LiveData 概览 Android Jetpack 的一部分。 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;意指它遵循其他应用组件&#xff08;如 activity、fragment 或 service&#xff09;的生命周期。这种感知能力…

已解决 | Go Error: redeclared as imported package name 问题

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域,Kotlin(2)

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域&#xff0c;Kotlin&#xff08;2&#xff09; 在 Android Canvas图层saveLayer剪切clipRect原图对应Rect区域&#xff0c;Kotlin&#xff08;1&#xff09;-CSDN博客 的基础上&#xff0c;把矩形切图&a…

【Kotlin】中英数字混合等多种情况下的排序方式

背景 在业务开发过程&#xff0c;不免遇到一些比较复杂的排序场景&#xff1a;按学生姓名拼音首字母排序&#xff0c;按英文字顺序排序&#xff0c;如果是中英混合还期望先按英文排序、再按中文排序…本文将针对这些场景提供对应的解决方式。 实践 按拼音首字母排序、或者混…

kotlin map{}和mapOf{}

map{}的作用 map 让集合中的每个元素应用给定的转换函数&#xff08;transform&#xff09;&#xff0c;然后生成并返回一个新的 List<R> val numbers listOf(1, 2, 3, 4, 5) //map 让集合中的每个元素应用给定的转换函数&#xff08;transform&#xff09;&#xff0…

【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码

前言 在一些特殊场景中&#xff0c;我们可能需要使用java或者其他任意语言调用python脚本或sdk等。本文的需求衍生也不例外于此&#xff0c;python端有sdk&#xff0c;但只能在python中调用&#xff0c;于是就有了本文章。 常见的调用方式如jython、python提供http rest接口、…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(2)

Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin&#xff08;2&#xff09; 在 https://zhangphil.blog.csdn.net/article/details/135374279 基础上&#xff0c;增加一个功能&#xff0c;当手指在上面的图片…

Kotlin 函数式接口

函数式接口 接口只有一个抽象方法的接口&#xff0c;称为 函数式接口 functional interface&#xff0c;也叫做 Single Abstract Method(SAM) interface。 注&#xff1a;函数式接口&#xff0c;只有一个抽象方法&#xff0c;但可以有多个非抽象方法。 一、Kotlin Kotlin支持…

13:kotlin类和对象 -- 属性(Properties)

定义属性 类属性可使用var和val定义 class Address {var name: String "Holmes, Sherlock"var street: String "Baker"var city: String "London"var state: String? nullvar zip: String "123456" }属性使用 fun copyAddres…

Kotlin 内联函数

内联函数 在JVM中每次函数调用&#xff0c;都会进行 操作栈 操作&#xff08;栈帧&#xff09;&#xff0c;会增加内存使用和开销。 另外传入的 lambda 函数 参数&#xff0c;也会 内存分配&#xff08;创建类和对象&#xff09;。 inline 使用 内联&#xff08;inline&#x…

kotlin的泛型浅析

在Kotlin中&#xff0c;泛型是一种强大的编程概念&#xff0c;它允许你编写更加灵活和可重用的代码&#xff0c;同时提高类型安全性。Kotlin的泛型系统与Java的相似&#xff0c;但有一些更强大的特性。以下是关于Kotlin泛型的一些重要概念和用法&#xff1a; 1. 基本概念&…

Kotlin学习第1篇——data class

Data classes 官方介绍 在学习之前带着问题往往能够收获颇丰 文章目录 1 输出结果是什么&#xff1f;2 输出结果是什么&#xff1f;3 输出的结果是什么?4 下面哪些data class 可以编译通过? 1 输出结果是什么&#xff1f; data class Student(var name: String "&quo…

关于kotlin的属性委托报错的解决方案

报错如下&#xff1a;Property delegate must have a ‘getValue(SecurityCheckView, KProperty*>)’ method. None of the following functions are suitable 解决方案就是在&#xff1a; buildscript { ext.kotlin_version “1.3.72” repositories { google() jcenter(…

Android 11以上根据package name查询应用是否安装,Koltin

Android 11以上根据package name查询应用是否安装&#xff0c;Koltin Android 11和过去较早Android版本不同&#xff0c;需要在Androidmanifest.xml里面配置<queries>属性&#xff1a; <manifest xmlns:android"http://schemas.android.com/apk/res/android&quo…

10个用于Android开发的有用的Kotlin库及示例

10个用于Android开发的有用的Kotlin库及示例 在Android开发领域&#xff0c;Kotlin已成为一门领先的语言&#xff0c;带来了现代语法和功能的浪潮。随着Kotlin的崛起&#xff0c;涌现出了许多专为其定制的库&#xff0c;进一步增强了开发体验。本文将深入介绍其中的10个库&…

Android现代开发推荐 | Android Showcase 2.0

Android现代开发推荐 | Android Showcase 2.0 Android Showcase是一个完整的Android应用程序示例&#xff0c;它使用了现代的Android应用程序开发方法&#xff0c;集成了流行的开发工具、库和代码检查工具&#xff0c;以及强大的测试框架和持续集成&#xff08;CI&#xff09;…

kotlin flatten 与 flatMap

kotln中 flatten 和 flatMap 在 Kotlin 中虽然都用于扁平化处理集合&#xff0c;但它们的用法和效果并不完全一样 flatten flatten 函数主要应用于嵌套集合&#xff08;如 List of List 或 Set of Set 等&#xff09;&#xff0c;它会将嵌套集合中的所有元素合并到一个单一层…

Kotlin协程的JVM实现源码分析(下)

协程 根据 是否保存切换 调用栈 &#xff0c;分为&#xff1a; 有栈协程&#xff08;stackful coroutine&#xff09;无栈协程&#xff08;stackless coroutine&#xff09; 在代码上的区别是&#xff1a;是否可在普通函数里调用&#xff0c;并暂停其执行。 Kotlin协程&…

kotlin Kmp多平台模板生成

地址: Kotlin Multiplatform Wizard | JetBrains 可生成kotlin多个平台模板 https://terrakok.github.io/Compose-Multiplatform-Wizard/

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心&#xff0c;Kotlin 在 Android双击图片放大移动图中双击点到ImageView区域中心&#xff0c;Kotlin-CSDN博客 基础上&#xff0c;这次使用ScaleGestureDetector检测两根手指的缩放动作&a…

Kotlin 尾递归函数

函数式编程中&#xff0c;重要的概念 尾递归&#xff1a; 当一个函数 在最后调用 自身&#xff0c;称为 尾递归&#xff0c;是一种特殊的递归函数。 Kotlin 使用 tailrec 声明尾递归函数&#xff0c;可以避免 StackOverflowError 的风险。 原理是&#xff1a;通过编译器优化 …

搜狐新闻客户端使用Kotlin之后对JSON解析框架的探索

本文字数&#xff1a;7488字 预计阅读时间&#xff1a;45分钟 01 引言 自2017年Google发布Kotlin语言之后&#xff0c;Android开发由原来的Java开始向Kotlin过度&#xff0c;目前绝大部分Android开发岗位基本要求就是熟练使用Kotlin。事实上&#xff0c;很多有着多年历史的项目…

Kotlin Multiplatform项目推荐 | 太空人分布图

Kotlin Multiplatform项目推荐 | 太空人分布图 项目简介 Kotlin Multiplatform项目是一种跨平台开发技术&#xff0c;它可以同时使用SwiftUI、Jetpack Compose、Compose for Wear OS、Compose for Desktop、Compose for Web、Kotlin/JS React等客户端框架&#xff0c;并且使…

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin(2)

Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心&#xff0c;Kotlin&#xff08;2&#xff09; 在 Android ScaleGestureDetector检测双指缩放Bitmap基于Matrix动画移动到双指捏合中心点ImageView区域中心&#xff0c;Kotlin-CSDN博客 …

Kotlin MultiPlatform:构建跨平台应用的未来

Kotlin MultiPlatform&#xff1a;构建跨平台应用的未来 1 引言 1.1 Kotlin MultiPlatform简介 Kotlin MultiPlatform&#xff08;简称KMP&#xff09;是一种由JetBrains开发的跨平台开发解决方案&#xff0c;它建立在Kotlin语言之上。KMP允许开发者使用一套Kotlin代码来构建…

Kotlin快速入门系列2

Kotlin的基本数据类型 Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是&#xff0c;字符不属于数值类型&#xff0c;是一个独立的数据类型。 Java和kotlin数据类型对照如下&#xff1a; Java基本数据类型 Kotlin对象数据类型 数据类…

Kotlin快速入门系列3

Kotlin条件、循环控制 IF条件控制 与Java类似&#xff0c;一个if语句可包含布尔表达式和一条或多条语句。 fun compare(a:Int,b:Int) : Int{//常规传统用法var max aif (b>a) max breturn max//使用elsevar mMax : Intif(a>b){mMax a}else{mMax b}return mMax//使…

Kotlin快速入门系列6

Kotlin的接口与扩展 接口 与Java类似&#xff0c;Kotlin使用interface关键字定义接口&#xff0c;同时允许方法有默认实现&#xff1a; interface KtInterfaceTest {fun method()fun methodGo(){println("上面方法未实现&#xff0c;此方法已实现")} } 接口实现 …

Kotlin 协程:用源码来理解 ‘viewModelScope‘

Kotlin 协程&#xff1a;用源码来理解 ‘viewModelScope’ Kotlin 协程是 Kotlin 语言的一大特色&#xff0c;它让异步编程变得更简单。在 Android 开发中&#xff0c;我们经常需要在后台线程执行耗时操作&#xff0c;例如网络请求或数据库查询&#xff0c;然后在主线程更新 UI…

Android矩阵Matrix变换setRectToRect,Kotlin

Android矩阵Matrix变换setRectToRect&#xff0c;Kotlin 在 Android画布Canvas裁剪区域clipRect&#xff0c;Kotlin-CSDN博客 基础上&#xff0c;增加一个点&#xff0c;通过setRectToRect挖出Bitmap原图中心区域的一块放到目标RectF里面。 import android.content.Context imp…

kotlin中的初始化问题纪录

1. init 代码块的顺序问题 init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。 2. init代码块之中的函数问题 下面是一段错误的代码&#xff1a; class mkotlin{val info:Stringinit {getInfoMethod()info "adad…

七、Kotlin 泛型

1. 泛型的声明 1.1 在函数定义中声明泛型 fun <T> func(p1: T, p2: T) {...}其中&#xff1a;<T> 表示声明了一个泛型 T。 于是在函数 func 的定义中&#xff08;如&#xff1a;形参列表上、函数体中、返回值类型上&#xff09;才可以使用泛型 T 表示一个不确定的…

Kotlin 协程:深入理解 ‘lifecycleScope‘

Kotlin 协程&#xff1a;深入理解 ‘lifecycleScope’ Kotlin 协程是一种强大的异步编程工具&#xff0c;它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中&#xff0c;lifecycleScope 是一个关键的概念&#xff0c;它允许我们将协程的生命周期绑定到 An…

Kotlin:用源码来深入理解 ‘StateFlow和SharedFlow的区别和联系‘

Kotlin&#xff1a;用源码来深入理解 ‘StateFlow和SharedFlow的区别和联系’ 在这篇文章中&#xff0c;我们将深入研究Kotlin中的StateFlow和SharedFlow&#xff0c;以及它们的相似之处和不同之处。我们将通过查看它们的源代码来理解它们的工作原理&#xff0c;这将帮助我们更…

Kotlin快速入门系列10

Kotlin的委托 委托模式是常见的设计模式之一。在委托模式中&#xff0c;有两个对象参与处理同一个请求&#xff0c;接受请求的对象将请求委托给另一个对象来处理。与Java一样&#xff0c;Kotlin也支持委托模式&#xff0c;通过关键字by。 类委托 类的委托即一个类中定义的方…

kotlin ——数组

一、创建数组&#xff1a; 1、arrayOf val array arrayOf(1,2,3)2、arrayOfNulls val array1 arrayOfNulls<Int>(3)array1[0]2array1[1]12array1[2]253、动态创建数组(接受一个表达式)&#xff0c; Array 初始化为 [“0”, “1”, “4”, “9”, “16”,"36] val …

Android矩阵setRectToRect裁剪Bitmap原图Matrix放大,mapRect标记中心区域,Kotlin

Android矩阵setRectToRect裁剪Bitmap原图Matrix放大&#xff0c;mapRect标记中心区域&#xff0c;Kotlin import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Matrix impo…

添加 Android App Links

添加 Android App Links功能 介绍一个简单的效果Android配置Add Url intent filtersAdd logic to handle the intentAssociate website 搭建网页支持AppLinks 介绍 Android App Links 是指将用户直接转到 Android 应用内特定内容的 HTTP 网址。Android App Links 可为您的应用带…

协程模式在Android中的应用及工作原理

协程模式在Android中的应用及工作原理 在Android开发中&#xff0c;很多开发者通过代码模式学习协程&#xff0c;通常这已经足够应付了。但这种学习方式忽略了协程背后的精髓&#xff0c;事实上&#xff0c;它们的原理非常简单。那么&#xff0c;是什么使得这些模式起作用呢&a…

okhttp 的 拦截器

拦截器有很多作用&#xff0c;实现就是责任链模式&#xff0c;细节&#xff0c;等我有时间补上。 后面有时间更新一下。 OkHttp最核心的工作是在 getResponseWithInterceptorChain() 中进行&#xff0c;在进入这个方法分析之前&#xff0c;我们先来了 解什么是责任链模式&…

IntelliJ IDE 插件开发 | (六)内部模式的使用

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…

Kotlin 的 Flow 简单使用

当使用 Kotlin 的 Flow 处理异步数据流时&#xff0c;可以遵循以下步骤。Flow 提供了一种声明式、异步和可组合的处理异步数据的方式。 创建 Flow Flow 是使用 flow 构建器创建的。有两种主要的创建方式&#xff1a;使用 flowOf 和使用 asFlow。 1 flowOf&#xff1a; 从多个…

Kotlin手记(一):基础大杂烩

Kotlin简介 2011年7月&#xff0c;JetBrains推出Kotlin项目&#xff0c;这是一个面向JVM的新语言 2012年2月&#xff0c;JetBrains以Apache 2许可证开源此项目。 2016年2月15日&#xff0c;Kotlin v1.0发布&#xff0c;这被认为是第一个官方稳定版本。 在Google I/O 2017中&am…

Kotlin-变量定义,与类型

Kotlin-变量定义 变量定义整型浮点型字符型整型之间的转换Boolean类型Null安全安全调用Elvis运算 字符串 变量定义 Kotlin可以定义的时候不标明数据的数据类型&#xff0c;编译器会根据初始值确定类型 fun main() {var b:Intvar name "crazyit.org"//声名变量的时…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(3)

Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin&#xff08;3&#xff09; 在 Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin&#…

【用法总结】无障碍AccessibilityService

一、背景 本文仅用于做学习总结&#xff0c;转换成自己的理解&#xff0c;方便需要时快速查阅&#xff0c;深入研究可以去官网了解更多&#xff1a;官网链接点这里 之前对接AI语音功能时&#xff0c;发现有些按钮&#xff08;或文本&#xff09;在我没有主动注册唤醒词场景…

Android矩阵Matrix裁切setRectToRect拉伸Bitmap替代Bitmap.createScaledBitmap缩放,Kotlin

Android矩阵Matrix裁切setRectToRect拉伸Bitmap替代Bitmap.createScaledBitmap缩放&#xff0c;Kotlin class MyImageView : AppCompatImageView {private var mSrcBmp: Bitmap? nullprivate var testIV: ImageView? nullconstructor(ctx: Context, attrs: AttributeSet) :…

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(一)

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画&#xff0c;Kotlin&#xff08;一&#xff09; 基于Matrix&#xff0c;控制Bitmap的setRectToRect的目标RectF的宽高。从很小的宽高开始&#xff0c;不断迭代增加setRectToRect的目标RectF的宽高&#xff0c…

Android 车载应用之快速入门

一、Android Automotive OS 概览 车载 Android 系统也被称为 Android Automotive OS,是对原始 Android 系统的一个功能扩充版本。与手机系统一样,Android Automotive OS 源代码完全开放,第三方供应商和汽车制造商可以官方源码的基础上自行开发和拓展,无论是编程语言还是各…

【教程】Kotlin语言学习笔记(一)——认识Kotlin(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 文章目录 【Kotlin语言学习】系列文章一、Kotlin介绍二、学习路径 一、…

Android---DslTabLayout实现底部导航栏

1. 在 Android 项目中引用 JitPack 库 AGP 8. 根目录的 settings.gradle dependencyResolutionManagement {...repositories {...maven { url https://jitpack.io }} } AGP 8. 根目录如果是 settings.gradle.kts 文件 dependencyResolutionManagement {...repositories {...…

Kotlin基础——类、对象和接口

文章目录 1 定义类继承结构1.1 接口1.1.1 接口概述1.1.2 接口中的默认方法1.1.3 接口方法重复1.1.4 Kotlin接口中静态方法实现原理 1.2 修饰符1.2.1 类继承修饰1.2.2 方法重写修饰1.2.3 抽象类1.2.4 接口的修饰符 1.3 可见性修饰符1.3.1 Kotlin中的可见性修饰符1.3.2 Kotlin中的…

Kotlin基本语法1到函数

1.range表达式 fun main() {var age 12.3if (age in 0.0..3.3){println("婴幼儿")}else if (age in 4.0..12.2){println("少儿")}else{println("未知")}/*** in 后面还可以接 list set 都可以*/if (age !in 0.0..3.3){println("婴幼儿&quo…

Kotlin基础——泛型

泛型类型参数 编译器一般可以推导出类型实参 若创建空的list&#xff0c;则需要显示指定类型实参&#xff0c;可以用如下两种方式 val name: MutableList<String> mutableListOf()val name2 mutableListOf<String>()泛型函数 public fun <T> List<T&…

Android---Retrofit实现网络请求:Kotlin版

简介 在 Android 开发中&#xff0c;网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库&#xff0c;能够简化开发流程&#xff0c;提供高效的网络请求能力。 Retrofit 是一个建立在 OkHttp 基础之上的网络请求库&#xff0c;能够将我们定义的 Java 接口转化为…

Android挖取原图中心区域RectF(并框线标记)放大到ImageView宽高,Kotlin

Android挖取原图中心区域RectF(并框线标记)放大到ImageView宽高&#xff0c;Kotlin 红色线框区域即为选中的原图中心区域&#xff0c;放大后放到等宽高的ImageView里面。 import android.content.Context import android.graphics.Bitmap import android.graphics.BitmapFactor…

通俗理解Kotlin及其30大特性

通俗理解Kotlin及其30大特性 文章目录 通俗理解Kotlin及其30大特性前言背景编译&运行字节码对比 Java VS Kotlin变量/常量类型声明变量初始化空安全特性 函数函数声明函数参数函数可变参数局部函数函数/属性/操作符的扩展函数/属性的引用操作符重载Lambda 表达式数组/List/…

开源安卓虚拟摄像头

安卓虚拟摄像头 基于Xposed的虚拟摄像头 请勿用于任何非法用途&#xff0c;所有后果自负&#xff01;&#xff01; 使用演示 https://fastly.jsdelivr.net/gh/iiheng/TuChuangmain/1700961311425EasyGIF-1700961287297.gif功能介绍&#xff1f; 可以自定义设置拉流链接进行替…

kotlin协程学习总结

1.协程是什么&#xff1f; kotlin中的协程是基于协程框架Coroutine实现的轻量级线程&#xff0c;提供一种简化处理异步任务的方式。 2.怎么使用协程&#xff1f; 使用协程框架中的launch方法包裹的代码块就是协程的内容&#xff0c;常规的代码如下&#xff1a; val corouti…

AndroidStudio 2024-2-21 Win10/11最新安装配置(Kotlin快速构建配置,gradle镜像源)

AndroidStudio 2024 Win10/11最新安装配置 教程目的&#xff1a; (从安装到卸载) &#xff0c;针对Kotlin开发配置&#xff0c;gradle-8.2-src/bin下载慢&#xff0c;以及Kotlin构建慢的解决 好久没玩AS了,下载发现装个AS很麻烦,就觉得有必要出个教程了(就是记录一下:嘻嘻) 因…

【Android】性能优化之内存、网络、布局、卡顿、安装包、启动速度优化

欢迎来到 Android 开发老生常谈的性能优化篇&#xff0c;本文将性能优化划分为内存、网络、布局、卡顿、安装包、启动速度七块&#xff0c;从这七块优化出发&#xff0c;阐述优化的 Application 的方式。 目录 内存优化避免内存泄漏使用内存分析工具优化数据结构和算法数据缓存…

Android横竖屏切换configChanges=“screenSize|orientation“避免activity销毁重建,Kotlin

Android横竖屏切换configChanges"screenSize|orientation"避免activity销毁重建&#xff0c;Kotlin 如果不在Androidmanifest.xml设置activity的&#xff1a; android:configChanges"screenSize|orientation" 那么&#xff0c;每次横竖屏切换activity都会…

Kotlin 中注解 @JvmOverloads 的作用

JvmOverloads 注解的作用就是&#xff1a;在有默认参数值的方法加上 JvmOverloads 注解&#xff0c;则 Kotlin 就会暴露多个重载方法。 例如&#xff0c;没有加注解&#xff0c;默认参数没有起到任何作用。 fun f(a: String, b: Int 0, c: String "abc") {}那相当…

Kotlin 进阶版 协程

kotlin是协程的一种实现 Dispatchers.IO&#xff1a;适用于执行磁盘或网络 I/O 操作的调度器&#xff0c;例如文件读写、网络请求等。在 Android 中&#xff0c;Dispatchers.IO 会使用一个专门的线程池来处理这些操作&#xff0c;以防止阻塞主线程。 Dispatchers.Main&#xf…

Kotlin 进阶 学习 委托

1.接口委托 package com.jmj.jetpackcomposecompositionlocal.byStudy/*** 接口委托*/ interface HomeDao{fun getAllData():List<String> }interface ADao{fun getById(id:Int):String }class HomeDaoImpl:HomeDao{override fun getAllData(): List<String> {ret…

Spring Boot+Tess4j实现OCR接口

OCR部分 OCR&#xff0c;即光学字符识别&#xff0c;是一种将纸质文档上的文字转化为计算机可编辑文本的技术。它利用图像处理技术和模式识别算法&#xff0c;对扫描或拍摄的文档图片进行分析&#xff0c;提取出其中的文字信息。OCR技术广泛应用于文档数字化、自动化数据录入等…

Kotlin多线程

目录 线程的使用 线程的创建 例一&#xff1a;创建线程并输出Hello World Thread对象的用法 start() join() interrupt() 线程安全 原子性 可见性 有序性 线程锁 ReentrantLock ReadWriteLock 线程的使用 Java虚拟机中的多线程可以1:1映射至CPU中&#xff0c;即…

Android RecyclerView 如何展示自定义列表 Kotlin

Android RecyclerView 如何展示自定义列表 Kotlin 一、前提 有这么一个对象 class DeviceDemo (val name: String, val type: String, val address: String)要展示一个包含这个对象的列表 bluetoothDevices.add(DeviceDemo("bb 9800", "LE", "32:…

【android】android studio生成aar包并在其他工程引用aar包(类/函数/activity)

android studio生成aar包并在其他工程引用aar包 arr引用和jar引用的区别1.ARR实现简单的JAVA/Kotlin类和函数调用过程1.1.新建需要打包成AAR的模块类1.2.新建需要调用的类1.3 创建 AAR 文件&#xff1a;1.4 AAR文件使用1.5 函数调用 2.实现AAR中activity的调用过程2.1 **特别说…

【IDEA】java 项目启动偶现Kotlin 版本问题 error:Kotlin:module was

一、问题描述&#xff1a; error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of its metadata is二、问题原因&#xff1a; jar包版本冲突 三、解决方式&#xff1a; 1、Rebuild Project&#xff08;推荐☆&#xff09; 重新构…

详解Kotlin中run、with、let、also与apply的使用和区别

Kotlin作为一种现代、静态类型的编程语言&#xff0c;不仅提供了丰富的特性&#xff0c;还提供了极具表现力的函数&#xff1a;run, with, let, also, 和 apply。理解这些函数的不同之处对于编写高效、易于维护的代码至关重要。 函数对比表 函数对象引用返回值使用场景runthi…

Kotlin:协程上下文与调度器

点击查看&#xff1a;协程上下文与调度器 中文官网 点击查看&#xff1a;协程上下文与调度器 英文官网 协程总是运行在一些以 CoroutineContext 类型为代表的上下文中&#xff0c;它们被定义在了 Kotlin 的标准库里。 协程上下文是各种不同元素的集合。其中主元素是协程中的 …

kotlin单例模式,4年小Android的心路历程

一、Java基础 我知道大家一定有很久都没有注意到这个点了&#xff0c;平时的工作应该也很少涉及到这些底层知识吧&#xff0c;但是这些东西很重要。如果是想要跳槽加薪或者是应对即将到来的面试&#xff0c;这些都是不可忽视的知识。 在这一点里&#xff0c;需要重视的点有&am…

Kotlin MutliPatform Demo NoteApp

简单用Kotlin实现个记录app&#xff0c;主要实现本地数据保存。支持多端运行 使用的库: voyagernapiercoroutinesktorserializationkotlinx-datetimekoinmultiplatform-settingssqldelightMVI 项目: MyNote

安卓使用ExoPlayer出现膨胀类异常

1.导包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入权限&#xff0c;我这里加了忘了与读写权限 <uses-permission android:name"android.permissio…

Android挖取原图手指触点区域RectF(并框线标记)放大到ImageView宽高与矩阵mapRadius,Kotlin

Android挖取原图手指触点区域RectF(并框线标记)放大到ImageView宽高与矩阵mapRadius&#xff0c;Kotlin 这里 Android挖取原图中心区域RectF(并框线标记)放大到ImageView宽高&#xff0c;Kotlin-CSDN博客 实现的是把原图中心区域的一片小图挖取出来放大放到下面的ImageView里面…

Springboot教程(五)——单元测试

idea中一般使用JUnit进行单元测试 基本使用 我们可以在idea的test文件夹下的XXXXApplicationTests内进行单元测试&#xff1a; 可以在Test标注的方法上写测试代码&#xff1a; SpringBootTest class C0101ApplicationTests {Testfun contextLoads() {println("Hello …

Kotlin中List的Lambda表达式应用与解析

在Kotlin编程语言中&#xff0c;集合操作是日常开发中的常见任务之一。Kotlin标准库提供了丰富的函数来处理List类型的数据&#xff0c;并且这些函数通常可以接受lambda表达式作为参数&#xff0c;极大地提高了代码的简洁性和可读性。以下是一个使用lambda表达式对List<Stri…

Kotlin中的When表达式:灵活、强大且直观的条件控制工具

在Kotlin编程语言中&#xff0c;when表达式是一种功能强大的条件控制结构&#xff0c;它提供了比传统的 if...else if...else 语句更为简洁和灵活的方式来处理多种情况。通过以下示例代码&#xff0c;我们将深入探讨Kotlin when 表达式的使用及其多功能性。 首先&#xff0c;让…

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(二)

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画&#xff0c;Kotlin&#xff08;二&#xff09; 文章 https://zhangphil.blog.csdn.net/article/details/135980821 实现了基于Matrix缩放Bitmap的动画&#xff0c;但是从左上角&#xff08;0,0&#xff09;位…

【Kotlin】自定义Json反序列化

最近在项目中发现之前同事在使用Redis存储对象的时候&#xff0c;给日期字段存了两种不同的日期格式&#xff0c;进而导致查询时反序列化报错&#xff0c;因此写了一个注解配置类来自定义反序列化的方式。 /*** LocalDateTime反序列化&#xff0c;下方的LocalDate同理&#xff…

【Kotlin学习路线】讲解

1. Kotlin介绍 Kotlin 是一种静态类型编程语言&#xff0c;运行在 Java 虚拟机上&#xff0c;并可以交互使用 Java 代码&#xff0c;它由 JetBrains 公司于2011年首次推出&#xff0c;后来在2017年&#xff0c;Google 宣布支持 Kotlin 作为 Android 官方开发语言&#xff0c;到…

kotlin筑基(2)

文章目录 一、internal二、infix三、object四、open五、operator六、sealed class1. 用法一2. 用法二 七、typealias八、when1. 带参数2. 不带参数 一、internal internal 修饰方法&#xff0c;表示这个方法只适合当前 module 使用&#xff0c;同理修饰 class 也是一样。 Syn…

Unresolved reference: kotlinx 和 Unresolved reference:xxx

Unresolved reference: kotlinx 这个报错是因为build.gradle中忘记apply plugin了 apply plugin: kotlin-android-extensions如下 同步以后再次编译发现报错 Unresolved reference:xxx 是因为用于使用 Gradle 构建的 Kotlin 版本与 IDE 插件中的版本不一样的原因 解决方法 …

[AIGC] Java 和 Kotlin 的区别

好的&#xff0c;我还是以“萌萌哒小码农”的身份继续回答您的问题。 Java 和 Kotlin 是两种不同的编程语言&#xff0c;它们有许多共同点&#xff0c;但也有一些重要的区别。以下是一些常见的 Java 和 Kotlin 的区别&#xff1a; 语法 Kotlin 的语法比 Java 简洁得多&#…

安卓 Kotlin 面试题 21-30

&#x1f525; 21、 Kotlin 中的“open”和“public”有什么区别&#xff1f;&#x1f525; open 关键字的意思是“为扩展而开放” 。 类上的 open 注释与 Java 的相反 final&#xff1a;它允许其他人从该类继承。 如果您不指定任何可见性修饰符&#xff0c;则默认使用public&…

安卓 Kotlin 面试题 31-40

&#x1f525; 31、简述Kotlin 中的内联类&#xff0c;我们什么时候需要&#xff1f;&#x1f525; 有时&#xff0c;业务逻辑需要围绕某种类型创建包装器。 但是&#xff0c;由于额外的堆分配&#xff0c;它会引入运行时开销。 此外&#xff0c;如果包装的类型是原始类型&…

java kotlin混合变成java编译提示找不到符号

有一个项目&#xff0c;kotlin写了一些逻辑代码&#xff0c;我想加一个controller&#xff0c;新增了一个kotlin方法复用了之前的逻辑&#xff0c;写好之后没有重新编译&#xff0c;直接启动进行测试&#xff0c;整体完全正常没有报错&#xff0c;但是在mvn clean,然后再mvn co…

【Kotlin】Lambda表达式

1 常规调用 Lambda 表达式总结 中对 Java 的 Lambda 表达式进行了总结&#xff0c;本文将对 Kotlin 中的 Lambda 表达式进行总结。 1.1 无参函数 fun main() {var myFun: () -> Unit {println("test")}myFun() // 打印: test } 以上代码等价于&#xff1a; f…

Kotlin 中的数据类

1 data class 在一个规范的系统架构中&#xff0c;数据类通常占据着非常重要的角色。 在 Java 中&#xff0c;定义一个数据类&#xff0c;通常需要为其中的每一个属性定义 get/set 方法。如果要支持对象值的比较&#xff0c;甚至还要重写 hashCode、equals 等方法&#xff0c…

Kotlin dist downloading failed

现象&#xff1a; 在使用AndroidStudio编写Flutter项目时总是在工具的右下角提示错误信息 该问题通常在刚刚打开AndroidStudio时报出&#xff0c;但可以正常编译和运行flutter项目即Android项目 分析&#xff1a;Flutter项目组认为这是AndroidStudio工具平台本身的问题非Flut…

kotlin图片合成和压缩

kotlin图片合成和压缩 之前的方法是继承AsyncTask 在doInBackground 里面去做压缩的操作&#xff0c;然后用 publishProgress 切到主线程里面更新 新方法是在协程里的去做 class ImageService {private fun getSumWidths(bitmaps: ArrayList<Bitmap>): Int {var sumWid…

安卓kotlin面试题 71-80

71. Kotlin中的@Metadata注解介绍以及生成流程 ?kotlin中的@Metadata注解是一个很特殊的注解,它记录了Kotlin代码中的一些信息,比如 class 的可见性,function 的返回值,参数类型,property 的 lateinit,nullable 的属性,typealias类型别名声明等。 我们都知道Kotlin代码…

Kotlin 数据解析(Gson)

一、添加依赖 build.gradle.kts(:app) // gson数据解析implementation("com.google.code.gson:gson:2.8.6") 对象类&#xff1a; // 对象类 class Account {var uid:String "00001"var userName:String "Freeman"var password:String &quo…

Android Kotlin知识汇总(三)Kotlin 协程

Kotlin的重要优势及特点之——结构化并发 Kotlin 协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理&#xff0c;例如网络调用、本地数据访问等任务的管理。本主题介绍如何使用 Kotlin 协程解决以下问题&#xff0c;从而让您能够编写出更清晰、更简洁的应用代…

安卓kotlin面试题 101-105

101. 简述如何在 Kotlin 中比较两个字符串?Kotlin 语言允许多种方法来检查两个字符串是否相等。 使用比较运算符 在 Kotlin 中, == 用于检查两个对象的结构相等性。如果两个对象具有相同的值,它将返回 true: fun main(args: Array) { val str1: String = "Hell…

安卓kotlin面试题 81-90

81. 简述 Kotlin 中泛型型变-协变、逆变、不变 ?Kotlin 中泛型引入了 in 和 out:逆变(In) 如果你的类是将泛型对象作为函数的参数,那么可以用 in:interface Consumer { fun consume(item: T) } 可以称其为 consumer class/interface,因为其主要是消费指定泛型对象…

Android kotlin开启协程的几种方式

在Android开发中&#xff0c;使用Kotlin协程&#xff08;coroutines&#xff09;可以极大地简化异步编程的复杂性&#xff0c;提高代码的可读性和可维护性。以下是几种在Android Kotlin项目中开启协程的常用方式&#xff1a; 1. 使用GlobalScope.launch 这是最简单直接的开启…

Android Bundle putBinder传输超过1MB数据,Kotlin

Android Bundle putBinder传输超过1MB数据&#xff0c;Kotlin 由于Android系统架构的设计&#xff0c;Activity/Fragment之间通过Intent在Bundle塞进数据进行传输时候&#xff0c;如果数据超过1MB&#xff0c;会抛JE&#xff1a; java.lang.RuntimeException: android.os.Tran…

【kotlin】在SpringBoot项目中使用kotlin协程coroutine实现方法的异步延迟调用,例如延迟查询短信发送详情结果。

前言&#xff1a; 当前做法实现了对某个方法异步延迟的操作&#xff0c;常见的场景如短信发送日志的延迟查询和记录。 一般来说&#xff0c;短信的发送和接收&#xff0c;在短信云服务商那里形成完整记录是需要一定的时间的&#xff0c;只有这段时间过去才可以有效查到短信的发…

Kotlin 泛型in/out 草稿

in 限制泛型类&#xff0c;内部使用的范围&#xff0c;仅可作为消费者使用&#xff0c;也就是仅能作为入参&#xff0c;不能作为返回值。 out 限制泛型类&#xff0c;内部使用的范围&#xff0c;仅可作为生产者使用&#xff0c;也就是仅能作为返回值&#xff0c;不能作为入参…

kotlin与java的相互转换

Kotlin转java 将kotlin代码反编译成java Tools -> Kotlin -> Show Kotlin Bytecode 然后点击 【Decompile】 生成java代码 java转kotlin Code -> Convert Java File To Kotlin File

Kotlin: 协程的四种启动模式(CoroutineStart)

点击查看CoroutineStart英文文档 创建协程的三种方式 runBlocking 运行一个协程并且会阻塞当前线程&#xff0c;直到它完成。launch 启动一个新的协程&#xff0c;不会阻塞当前线程&#xff0c;并且返回一个Job&#xff0c;可以取消。async async和await是两个函数&#xff0c…

Flutter 当涉及Listview的复杂滑动布局良好布局方式

目录 引 代码以及概叙 详细解释 SingleChildScrollView shrinkWrap 属性 NeverScrollableScrollPhysics 引 当我们构建界面&#xff0c;很多时候都会需要显示一个能滑动的流布局&#xff0c;同时这个布局还要有些其他的界面元素&#xff0c;同时在flutter中&#xff0c;滑…

Kotlin by关键字

委托的概念 委托是一种设计模式,它的基本概念是:操作对象自己不会去处理某段逻辑,而是会把工作委托给另外一个辅助对象去处理。 class NewList<out T>(private val list: MutableList<T>) {fun isEmpty() = list.isEmpty()fun add(item: @UnsafeVariance T) = l…

记录minio、okhttp、kotlin一连环的版本冲突问题

问题背景 项目中需要引入minio&#xff0c;添加了如下依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</version></dependency> 结果运行报错&#xff1a; Caused by: java.la…

Long long类型比较大小

long 与 Long long类型和Long类型是不一样&#xff0c;long类型属于基本的数据类型&#xff0c;而Long是long类型的包装类。 结论 long是基本数据类型&#xff0c;判断是否相等时使用 &#xff0c;即可判断值是否相等。&#xff08;基本数据类型没有equals()方法&#xff0…

100 个 Kotlin 面试问题及答案(其二)

尤其是在Android开发中&#xff0c;Kotlin已经成为一种流行的编程语言。为了帮助您在 Kotlin 面试中取得成功&#xff0c;我们为您简化了 100 个最常见的面试问题。本指南涵盖了广泛的主题&#xff0c;包括基本语言概念和高级功能。每个问题都附有简单的答案和实际示例&#xf…

Android Studio 2023.2.1版本 kotlin编译报错踩坑

1、需求 由于最近在整理项目&#xff0c;做一些公共基础组件Maven仓库封装&#xff0c;由于之前项目jar包和kotlin版本很老&#xff0c;kotlin版本1.3.72版本 Gradle使用5.4.1 Android Studio版本是2023.2.1&#xff0c;分别依次顺序如下图所示。 如下图所示 2、分析编译报错…

kotlin使用validation注解无效

validation注解不生效 在 kotlin 中给构造函数的参数加上 validation 的一些注解无法生效。 原因分析&#xff1a; 在 Java 中&#xff0c;注解写在在实体类属性或者 get/set 方法上&#xff1b;在 kotlin 中&#xff0c;属性直接写在构造函数中。可能是一种优先级的问题&am…

Kotlin 中的类和构造方法

Kotlin 中的类与接口和 Java 中的类与接口还是有区别的。例如&#xff0c;Koltin 中的接口可以包含属性声明&#xff0c;与 Java 不同的是。Kotlin 的声明默认是 final 和 public 的。此外&#xff0c;嵌套的类默认并不是内部类&#xff1a;它们并没有包含对其它外部类的隐式引…

Kotlin:协程基础

点击查看&#xff1a;协程基础 中文文档 点击查看&#xff1a;协程基础 英文文档 第一个协程程序 import kotlinx.coroutines.*fun main(){GlobalScope.launch {delay(1000L)//delay 是一个特殊的 挂起函数 &#xff0c;它不会造成线程阻塞&#xff0c;但是会 挂起 协程&…

kotlin静态方法,面试杀手锏

本文的特点在于将繁琐的知识化为系列专题的形式展现给读者&#xff0c;当你能跟随博主构建的体系化学习知识点时&#xff0c;恭喜你&#xff0c;你已经干掉了BAT、字节、网易等大厂的几乎80%以上的Android开发人员。这种无所不知的痛快感&#xff0c;是不是感觉你已成为别人眼中…

自定义View中的ListView和ScrollView嵌套的问题

当我们在使用到ScrollView和ListView的时候可能会出现显示不全的问题。那我们可以进行以下分析 ScrollView在测量子布局的时候会用UNSPECIFIED。通过源码观察&#xff0c; 在ScrollView的onMeasure方法中 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMe…

kotlin 程序 编译与执行

准备kotlin环境 Ubuntu安装kotlin 1. 创建一个名为 hello.kt 文件&#xff0c;代码如下&#xff1a; fun main(args: Array<String>) {println("Hello, World!") }2. 使用 Kotlin 编译器编译应用 kotlinc hello.kt -include-runtime -d hello.jar-d: 用来设…

Android Kotlin知识汇总(一)编程语言

在 2019 年 Google I/O 大会上宣布今后将优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言&#xff0c;不仅可以减少常见代码错误&#xff0c;还可以轻松集成到现有应用中。如果您想构建 Android 应用&#xff0c;建议您从 Kotlin 开始着手&#x…

Kotlin 中的 with 函数简介

在 Kotlin 中&#xff0c;with 函数是一个非常方便的工具&#xff0c;它可以帮助简化对特定对象的操作。本文将介绍 with 函数的使用方法&#xff0c;并与 Java 中的实现进行对比。 Kotlin 中的 with 函数 with 函数允许在一个对象上执行一系列操作&#xff0c;而无需重复引用…

Kotlin 中编写静态方法的方式详解

在 Kotlin 中&#xff0c;与 Java 不同&#xff0c;没有 static 关键字来定义静态方法。但是 Kotlin 提供了一种类似的机制来实现静态方法。本文将介绍 Kotlin 中编写静态方法的两种方式&#xff0c;并给出 Kotlin 和 Java 中的调用示例代码。 方式一&#xff1a;使用顶层函数…

gradle 改为 国内镜像 下载

gradle/wrapper/gradle-wrapper.properties 设置 distributionUrl 的 gradle.zip 国内镜像 mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip 完整内容 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributionUrlhttps\://mirrors.cloud.tence…

现代 Android 开发的第一步Kotlin

Kotlin 入门教程&#xff1a;现代 Android 开发的第一步 引言 Kotlin&#xff0c;这门由 JetBrains 团队开发的现代编程语言&#xff0c;自 2011 年诞生以来&#xff0c;以其简洁、安全、实用的特性&#xff0c;迅速在 Android 开发社区中获得了广泛的认可。2017 年&#xff…

这回就好好聊聊Kotlin的泛型

公众号「稀有猿诉」 原文链接 这回就好好聊聊Kotlin的泛型 泛型(Generics)是静态强类型编程语言中非常强大的特性&#xff0c;可以极大的加强代码的复用&#xff0c;并增强类型安全&#xff0c;减少运行时的类型转换错误。在这篇文章就来详细的学习一下Kotlin中对泛型的…

Kotlin/Java hashCode与equals/==号(1)

Kotlin/Java hashCode与equals/号&#xff08;1&#xff09; Kotlin/Java的hashCode()方法默认返回对象在内存中地址的整数值。 fun main(args: Array<String>) {val u1 User("zhang", 1)val u2 User("phil", 2)println("$u1 ${u1.hashCode(…

Android用kotlin搭建MVVM框架(一)

Android用kotlin搭建MVVM框架&#xff08;一&#xff09; 什么是MVVM搭建MVVM框架 什么是MVVM Android的项目框架&#xff0c;大家应该都不陌生吧。而目前的项目框架有MVC&#xff0c;MVP&#xff0c;MVVM&#xff0c;MVI等各式各样的框架&#xff0c;目前用的最多的就是MVP和…

Kotlin(九,阿里P7大牛亲自教你

| join() | 等待协程执行完毕 | | cancel() | 取消一个协程 | 协程的启动 public fun CoroutineScope.launch(context: CoroutineContext EmptyCoroutineContext,start: CoroutineStart CoroutineStart.DEFAULT,block: suspend CoroutineScope.() -> Unit ): Job{val ne…

kotlin学习(5,三年Android开发

mutableListOf.add("cat") mutableListOf.remove("jack") ### kotlin中支持内容修改的列表叫做可变列表&#xff0c;可以使用mutableListOf函数。list还支持使用toList和toMutableList动态实现 只读列表和可变列表的相互转换//转换为只读列表 val toList …

Kotlin runBlocking CoroutineScope synchronized简单死锁场景

Kotlin runBlocking CoroutineScope synchronized简单死锁场景 import kotlinx.coroutines.*fun main(args: Array<String>) {runBlocking {val lock1 Any()val lock2 Any()CoroutineScope(Dispatchers.IO).launch {repeat(10) {println("A-$it 申请 lock1...&quo…

kotlin中使用ViewBinding绑定控件

kotlin中使用ViewBinding绑定控件 什么是ViewBinding&#xff1f; View Binding是Android Studio 3.6推出的新特性&#xff0c;主要用于减少findViewById的冗余代码&#xff0c;但内部实现还是通过使用findViewById。通过ViewBinding&#xff0c;可以更轻松地编写可与视图交互…

Android Stdio Execution failed for task ‘:app:compileDebugKotlin‘ 报错解决

具体报错信息如下&#xff1a; compileDebugJavaWithJavac task (current target is 1.8) and compileDebugKotlin task (current target is 17)jvm target compatibility should be set to the same Java version.很显然&#xff0c;这是一个版本冲突问题&#xff0c;compile…

两个 this 一起用?Kotlin 的成员扩展函数和 implicit receiver

视频先行 下面是视频内容的脚本文案原稿分享。 开场 大家好&#xff0c;我是扔物线朱凯。 今天咱说说 Kotlin 的 implicit receiver。这是一个我们写 Kotlin 经常会用的东西&#xff0c;虽然你可能都没听过这个词&#xff0c;但你一定用过它。Kotlin 的很多高级功能&#xff0c…

android 图表库

android 图表库&#xff1a; GitHub - AAChartModel/AAChartCore-Kotlin: &#x1f4c8;&#x1f4ca;⛰⛰⛰An elegant modern declarative data visualization chart framework for Android . Extremely powerful, supports line, spline, area, areaspline, column, bar, pi…

Kotlin函数进阶玩法

公众号「稀有猿诉」 原文链接 More about Kotlin Functions Kotlin中的函数是一级对象&#xff0c;除了常规的函数式编程以外&#xff0c;还支持一些非常灵活的特殊用法&#xff0c;可以大大增强代码的可读性和简洁性&#xff0c;让代码更加的优雅&#xff0c;在业界顶级…

Kotlin 中的惰性集合

1 通过序列提高效率 首先看以下代码&#xff1a; val list listOf(1, 2, 3, 4, 5) list.filter { it > 2 }.map { it * 2 }上面的写法很简单&#xff0c;在处理集合时&#xff0c;类似于上面的操作能帮我们解决大部分的问题。但是&#xff0c;当 list 中的元素非常多的时…

Android Kotlin知识汇总(二)最佳实践

在 Android 开发中使用常见的 Kotlin 代码实践 本主题重点介绍 Kotlin 语言在 Android 开发过程中最有用的一些方面。同时是我们普遍遵循的清晰硬性规则&#xff0c;而避免给出真人或工具无法简明地遵循的建议。 所有源文件都必须编码为 UTF-8。 来源标注&#xff1a;在 And…

【Android】数据安全(一) —— Sqlite加密

目录 SQLCipherSQLiteCrypt其它 SQLCipher SQLCipher 是 SQLite 数据库的的开源扩展&#xff0c;使用了 256 位 AES 加密&#xff0c;支持跨平台、零配置、数据100%加密、加密开销低至 5 -15%、占用空间小、性能出色等优点&#xff0c;因此非常适合保护嵌入式应用程序数据库&a…

Android开发 Activity启动模式、ViewModel与LiveData,及Kotlin Coroutines

目录 Activity启动模式 onNewIntent解释 Activity启动模式的考虑时机 Service启动模式 ContentProvider的作用 Broadcast的注册方式 AsyncTask的作用 ViewModel LiveData Kotlin Coroutines 结合使用 Activity启动模式 Android中Activity的启动模式有四种&#xff0…

Android kotlin全局悬浮窗全屏功能和锁屏页面全屏悬浮窗功能二

1.前言 在进行app应用开发中,在实现某些功能中要求实现悬浮窗功能,分为应用内悬浮窗 ,全局悬浮窗和 锁屏页面悬浮窗功能 等,接下来就来实现这些悬浮窗全屏功能,首选看下第二部分功能实现 2.kotlin实现锁屏页面悬浮窗全屏功能二分析 悬浮窗是属于Android系统的一种浮动窗…

Android kotlin全局悬浮窗全屏功能和锁屏页面全屏悬浮窗功能一

1.前言 在进行app应用开发中,在实现某些功能中要求实现悬浮窗功能,分为应用内悬浮窗 ,全局悬浮窗和 锁屏页面悬浮窗功能 等,接下来就来实现这些悬浮窗全屏功能,首选看下第一部分功能实现 2.kotlin全局悬浮窗全屏功能和锁屏页面全屏悬浮窗功能一分析 悬浮窗是属于Androi…

双进程交互实现App自动重启

背景 你可能会好奇&#xff0c;有些手游&#xff08;比如王者荣耀&#xff09;是怎么实现资源更新后自动重启的&#xff1f; 这个体验确实不错&#xff0c;因为不需要用户手动点击桌面图标重启App&#xff0c;在一些数据恢复备份的场景中&#xff0c;很实用。比如&#xff0c…

Kotlin协程CoroutineScope命名空间CoroutineName,Kotlin

Kotlin协程CoroutineScope命名空间CoroutineName&#xff0c;Kotlin import kotlinx.coroutines.*fun main(args: Array<String>) {val myName CoroutineName("fly")runBlocking {CoroutineScope(Dispatchers.IO).launch {repeat(3) {val name coroutineCont…

Kotlin 中的惰性集合(序列)

1 通过序列提高效率 首先看以下代码&#xff1a; val list listOf(1, 2, 3, 4, 5) list.filter { it > 2 }.map { it * 2 }上面的写法很简单&#xff0c;在处理集合时&#xff0c;类似于上面的操作能帮我们解决大部分的问题。但是&#xff0c;当 list 中的元素非常多的时…

Android ViewPager2 setOffscreenPageLimit预加载Fragment,Kotlin

Android ViewPager2 setOffscreenPageLimit预加载Fragment&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androi…

Android屏幕硬件宽高和当前View显示区域的宽高,Kotlin

Android屏幕硬件宽高和当前View显示区域的宽高&#xff0c;Kotlin private fun getScreenSize() {if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {//屏幕实际显示区域的宽高&#xff0c;包含系Android统的状态栏和导航栏&#xff0c;可以简单理解这就是屏幕硬件尺寸固…

【Kotlin】匿名类和伴生类

1 匿名类 1&#xff09;无继承 fun main() {var obj object {var name: String "zhang"override fun toString(): String {return name}}println(obj) // zhang } 2&#xff09;有继承 fun main() {var obj object: People {var name: String "zhang"…

快速入门Kotlin④集合

集合概述 继承关系(List、Set和Map均继承了Collection) List List 是一个接口,用于表示列表(List)数据结构。它是一个有序的集合,允许重复元素。 listOf 创建的列表是不可变的,而 mutableListOf 创建的列表是可变的,允许对其进行添加、删除和更新操作。 fun main()…

快速入门Kotlin⑤协程

基础 本质上,协程是轻量级的线程。 runBlocking 用于在当前线程中阻塞执行协程代码直到协程执行完毕。它通常用于在主函数或测试代码中使用,以确保协程代码的顺序执行。 GlobalScope.launch 是一个顶级函数,用于在全局范围内启动一个新的协程。它创建一个顶级协程,该协程…

跨越边界:Compose Multiplatform 跨平台开发的未来之路

跨越边界&#xff1a;Compose Multiplatform 跨平台开发的未来之路 1. 引言 在移动应用和软件开发领域&#xff0c;跨平台开发一直是一个备受关注的话题。随着移动设备多样化和用户需求的不断增长&#xff0c;开发者们迫切需要一种在多个平台上共享代码的解决方案。Jetpack C…

Solon v2.1.4 发布。支持 java、kotlin、groovy!

本次发布&#xff0c;重点测试和验证了在 java、kotlin、groovy 三种 jvm 语言里&#xff0c;开箱即用的特性。并发布 Solon Initializr&#xff1a; https://solon.noear.org/start/ &#xff08;也即将发布 idea 插件&#xff09; 最近&#xff0c;与小诺开源团队合作发布了…

RecyclerView+BaseRecyclerViewAdapterHelper显示不全只显示第一行item的解决问题

RecyclerViewBaseRecyclerViewAdapterHelper显示不全只显示第一行item&#xff0c;我懵了…&#xff0c;我不说多&#xff0c;直接说吧 先看一下适配器代码中的convert()方法&#xff1a; class MineRadioAdapter(layoutResId: Int R.layout.item_my_live) :BaseQuickAdapte…

Kotlin 中List,Set,Map的创建与使用

目录 1. List 的使用 1.1 不可变 List 1.2 可变 List 2. Set 的使用 2.1 不可变 Set 2.2 可变 Set 3. Map 的使用 3.1 不可变Map 3.2 可变Map 本篇主要为已经有Java基础的同学展示Kotlin语言中的List&#xff0c;Set&#xff0c;Map的创建和使用&#xff0c;所以Java代…

Linux(ubuntu) 安装kotlin

Kotlin 是一种基于 Java 语言的静态类型编程语言&#xff0c;它可以运行于 JVM 上 1. 安装 Java Development Kit (JDK) Kotlin 运行于 JVM 上&#xff0c;所以首先需要安装 Java Development Kit&#xff08;JDK&#xff09; Ubuntu 或 Debian 系统 以ubuntu22.04为例 sudo…

Android kotlin 实现仿蜜源ViewPager和指示器对应上面TabLayout功能

文章目录 一、实现效果二、引入依赖三、源码实现1、ViewPager实体类2、指示器样式(自定义类)3、主视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、TabLayout:implementation com.google.android.material:material:1.1.0 2、implementation com.gi…

【KTips】把 Flow 变成 Iterator

欢迎来到一分钟 KT Tips! &#x1f389; 想必在日常生活中&#xff0c;大家总会遇到这样的苦恼&#xff1a; 我想要把一个 Flow 转化为 Iterator 怎么办呢&#xff1f; fun main() {val flow flowOf(1, 2, 3)// val iter: Iterator<Int> ? }也许你可以试试用 Flow.…

Android Kotlin(五)数据流StateFlow和LiveData

Android 上的 Kotlin 数据流 在协程中&#xff0c;与仅返回单个值的挂起函数相反&#xff0c;数据流可按顺序发出多个值。数据流以协程为基础构建&#xff0c;可提供多个值。从概念上来讲&#xff0c;数据流是可通过异步方式进行计算处理的一组数据序列。所发出值的类型必须…

Kotlin学习日志(一)TextView、Button、Toast的使用(1)

android:layout_width“wrap_content” android:layout_height“wrap_content”/> import kotlinx.android.synthetic.main.activity_main.* 这句话的意思是引进Kotlin的的控件变量自动映射功能&#xff0c;接下来只要是这个activity_main.xml文件中的控件&#xff0c;我…

Android(Kotlin) 委托(by) 封装 SharedPreferences

在 Kotlin 中&#xff0c;委托是一种通过将自身的某个功能交给另一个对象来实现代码重用的技术。通过委托&#xff0c;我们可以将某个属性或方法的实现委托给另一个对象&#xff0c;从而减少重复代码的编写。委托可以用于实现多重继承、代码复用和扩展现有类的功能。 Kotlin 中…

Kotlin基础学习

Kotlin基础学习主要涵盖安装Kotlin编译器、了解基础语法、学习变量声明、类型推断、函数定义以及控制结构等方面。以下是一个简要的Kotlin基础学习指南&#xff1a; 一、安装Kotlin 首先&#xff0c;你需要从JetBrains的官方网站下载并安装Kotlin编译器。同时&#xff0c;你也…

Kotlin - 时间 Duration

一、概念 用于表示时间度量&#xff0c;简化了时间单位的换算、计算时间差、操作间隔、比较等场景。 二、使用 2.1 创建 2.1.1 Number -> Duration 扩展函数适用于 Int、Long、Double。Duration 可以是正、负、零、正无穷大或负无穷大。 nanosecondspublic inline val Int…

Kotlin:for循环的几种示例

一、 打印 0 到 2 1.1 方式一&#xff1a;0 until 3 /*** 打印 0 到 2*/ fun print0To2M1(){for (inex in 0 until 3){// 不包含3print("$inex ")} }运行结果 1.2 方式二&#xff1a;inex in 0 …2 /*** 打印 0 到 2*/ fun print0To2M2(){for (inex in 0 ..2){//…

kotlin flow sample的用法

sample 方法是用于对数据流进行采样的操作&#xff0c;它会根据指定的时间间隔或者其它条件从数据流中抽取样本。 以下是三个使用 sample 方法的示例&#xff1a; 使用时间间隔进行采样&#xff1a; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* impo…

Kotlin:为什么创建类不能被继承

一、为什么创建类不能被继承 class或data class 默认情况下&#xff0c;Kotlin 类是最终&#xff08;final&#xff09;的&#xff1a;它们不能被继承。 示例&#xff1a;data class PsersonBean 反编译data class PsersonBean 生成 public final class PsersonBean 示例&…

Kotlin初级【基本语法、数据类型、循环】

1、第一个kotlin程序 fun main(){//在控制台输出Hello Kotlin!println("Hello Kotlin!") }2、注释 2.1 单行注释 //这里是单行注释内容2.2 多行注释 /* 这里是多行注释内容 这里是多行注释内容 这里是多行注释内容 *//*** 多行注释也可这样写* 多行注释也可这样写…

Android studio使用总结(八)

1.防止EditText弹出键盘后顶起布局方法&#xff1a;在Manifest中有EditText的activity中添加 android:windowSoftInputMode"adjustPan|stateAlwaysHidden"2.为button设计不可点击事件 mBtAdd.setClickable(true); mBtAdd.setBackgroundResource(R.drawable.backgro…

Gradle v8.5 笔记 - 从入门到进阶(基于 Kotlin DSL)

目录 一、前置说明 二、Gradle 启动&#xff01; 2.1、安装 2.2、初始化项目 2.3、gradle 项目目录介绍 2.4、Gradle 项目下载慢&#xff1f;&#xff08;万能解决办法&#xff09; 2.5、Gradle 常用命令 2.6、项目构建流程 2.7、设置文件&#xff08;settings.gradle.…

Android Kotlin版封装EventBus

文章目录 Android Kotlin版封装EventBus代码封装添加依赖库定义消息类定义常量值定义注解定义工具类 使用在Activity中在Fragment中发送事件 源码下载 Android Kotlin版封装EventBus 代码封装 添加依赖库 implementation("org.greenrobot:eventbus:3.3.1")定义消息…

Android TransactionTooLargeException排查定位

Android TransactionTooLargeException排查定位 工具&#xff1a; https://github.com/guardian/toolargetoolhttps://github.com/guardian/toolargetool android TransactionTooLargeException问题的修复&#xff0c;一种简单的修复就是在Fragment的onCreate里面&#xff0…

Kotlin CompletableDeferred 入门

在 Kotlin 中&#xff0c;CompletableDeferred 是一个用于异步编程的类&#xff0c;它提供了一种实现异步操作和等待操作结果的方式。 CompletableDeferred 是 Deferred 接口的具体实现之一&#xff0c;可以用于表示一个可能会在将来完成的操作。它提供了以下主要功能&#xf…

Kotlin实战之获取本地配置文件、远程Apollo配置失败问题排查

背景 Kotlin作为一门JVM脚本语言&#xff0c;收到很多Java开发者的青睐。 项目采用JavaKotlin混合编程。Spring Boot应用开发&#xff0c;不会发生变动的配置放在本地配置文件&#xff0c;可能会变化的配置放在远程Apollo Server。 问题 因为业务需要&#xff0c;需要增加一…

kotlin实现猜数游戏

游戏规则 1.程序随机生成一个1到100的数字&#xff0c;作为MagicNumber 2.用户根据提示输入数据&#xff0c;只有三次机会输入数据 代码 代码很简单&#xff0c;使用了let内置函数 fun main() {//生成随机数可以使用java的方法//val magicNumber Random().nextInt(11)val ma…

Binder进程通信基础使用

Binder 进程通信基础使用 一、服务端进程创建 Service&#xff0c;Service 中创建 Binder 子类对象并于 onBind 中返回。xml 定义。 创建 Service&#xff0c;创建 Binder 子类对象并于 onBind 返回 class UserService : Service() {private companion object {const val TAG…

Kotlin文件遍历FileTreeWalk filter

Kotlin文件遍历FileTreeWalk filter import java.io.Filefun main(args: Array<String>) {val filePath "."val file File(filePath)val fileTree: FileTreeWalk file.walk()fileTree//.maxDepth(1) //遍历层级1&#xff0c;不检查子目录.filter {it.isFile…

Kotlin File useLines nameWithoutExtension extension

Kotlin File useLines nameWithoutExtension extension import java.io.Filefun main(args: Array<String>) {val filePath "myfile.txt"val file File(filePath)println(file.name) //文件名字&#xff0c;不包括路径println(file.isFile) //是文件吗pri…

2023年Android Gradle、Gradle插件以及Kotlin版本升级记录

Compose和kotlin版本对应关系&#xff1a;https://androidx.dev/storage/compose-compiler/repository gradle版本和gradle插件版本对应关系&#xff1a; https://developer.android.google.cn/studio/releases/gradle-plugin?hlzh-cn gradle最新版本在这里找&#xff1a;http…

Kotlin中使用Java数据类时引发的一个Bug

文章目录 基础复习&#xff1a;Kotlin语言中的对象比较背景问题出现解决方式方式一方式二 基础复习&#xff1a;Kotlin语言中的对象比较 比较对象的内容是否相等 ( 或者 equals )&#xff1a;Kotlin 中的操作符 和 equals效果相同 &#xff0c;都用于比较对象的内容是否相等,…

Android一个简单带动画的展开收起功能

在Android上&#xff0c;布局的显示和隐藏往往很生硬&#xff0c;给人体验不好&#xff0c;本文使用 android:animateLayoutChanges属性&#xff0c;使得体验效果瞬间提升一个档次。 1、效果如下&#xff1a; 展开和收起 2、具体代码如下&#xff1a; package com.zw.demo202…

Kotlin的关键字 lateinit 和 lazy

序、完善一下曾经的草稿。 Kotlin通常要求我们在定义属性后立即对起进行初始化&#xff0c;当我们不知道理想的初始值时&#xff0c;这样做似乎很奇怪&#xff0c;尤其是在生命周期驱动android属性的情况下。 lateinit 简介 lateinit&#xff0c;Kotlin提供的一个可以延迟初…

安卓 kotlin-supportFragmentManager报红

如果你继承baseActivity 请查看 是不是继承 AppCompatActivity

快速入门Kotlin①基本语法

前言 23年底读了一遍“Kotlin官方文档”&#xff0c;官方文档大而全&#xff0c;阅读下来&#xff0c;大有裨益。 此系列文章的目的是记录学习进程&#xff0c;同时&#xff0c;若能让读者迅速掌握重点内容并快速上手&#xff0c;那就再好不过了。 函数 带有两个 Int 参数、…

零基础机器学习(4)之线性回归的基本原理

文章目录 一、线性回归的基本原理1.相关与回归2.线性回归的原理分析①线性回归的一般公式②线性回归的损失函数③线性回归方程的参数求解方法A.最小二乘法B.梯度下降法 一、线性回归的基本原理 1.相关与回归 相关描述的是变量之间的一种关系。 从统计角度看&#xff0c;变量之…

android.os.TransactionTooLargeException解决方案,Kotlin

android.os.TransactionTooLargeException解决方案&#xff0c;Kotlin 首先&#xff0c;特意制造一个让Android发生TransactionTooLargeException的场景&#xff0c;一个Activity启动另外一个Activity&#xff0c;在Intent的Bundle里面塞入一个大的ArrayList: import android.…

IntelliJ IDE 插件开发 | (七)PSI 入门及实战(实现 MyBatis 插件的跳转功能)

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…

Kotlin的lateinit关键词

Kotlin的lateinit关键词 lateinit&#xff0c;延迟初始化。有时&#xff0c;并不能定义一个变量或对象值为空&#xff0c;而也没办法在对象或变量在定义声明时就为它赋值初始化&#xff0c;那么这时就需要用到Kotlin提供的延迟初始化lateinit。比如&#xff0c;有些依赖注入框架…

Kotlin OKHTTP3和拦截器的使用

注意&#xff1a;在android6.0以后网络请求还需如下配置&#xff1a; android:usesCleartextTraffic"true" <applicationandroid:allowBackup"true"android:icon"mipmap/ic_launcher"android:label"string/app_name"android:round…

Kotlin Retrofit 网络请求

一、添加依赖&#xff1a; //Retrofit 网络请求implementation("com.squareup.retrofit2:retrofit:2.3.0")implementation("com.squareup.retrofit2:converter-gson:2.3.0")//json转换 二、创建单例类&#xff1a; package com.example.buju.httpimport …

Kotlin 空类型,区间,数组

目录 1. 空类型 2. 区间 3. 数组 1. 空类型 我们知道任何一种数据类型都有为空或不为空两种状态&#xff0c;在 Kotlin 中&#xff0c;若允许一个数据为空&#xff0c;则需要使用 "?"&#xff0c;默认都不能为空。 代码举例说明 // 给 notNull赋值为空&#x…

Android gradle动态配置不同打包环境参数值

一、背景 在android开发中&#xff0c;包的构建通过gradle脚本来完成的&#xff0c;这个脚本也提供了很多东西来配合我们开发。最常见的类似渠道和不同版本包。 打包的配置常见的是buildTypes节点&#xff0c;通过buildTypes设置不同的action完成不同包的输出 二、gradle的Jav…

Kotlin中的可空类型

在 Kotlin 中&#xff0c;可空类型是一项重要的特性&#xff0c;它允许我们声明变量可以为空。在本篇博客中&#xff0c;我们将介绍 Kotlin 中的可空类型&#xff0c;并提供示例代码演示如何处理可空变量、使用安全调用操作符&#xff08;?.&#xff09;、Elvis 运算符&#x…

Android Kotlin 泛型:强大的类型抽象和重用利器

一、什么是泛型&#xff1f; 泛型是一种参数化类型的机制&#xff0c;它允许我们在定义类、接口和方法时使用类型参数&#xff0c;从而实现代码的重用和类型安全。通过使用泛型&#xff0c;我们可以将类型作为参数传递给类或方法&#xff0c;在不同的场景中实现灵活的类型适配…

Android RecyclerView canScrollVertically方向与返回值,Kotlin

Android RecyclerView canScrollVertically方向与返回值&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx…

【Kotlin】Sequence简介

1 前言 序列&#xff08;Sequence&#xff09;是 Kotlin 中为方便操作集合及其元素而定制的接口&#xff0c;是一个延迟获取数据的集合&#xff0c;只有需要元素时才会生产元素。在处理大量数据时&#xff0c;序列可以显著地提升性能。 Sequence 类似 Java 中的 Stream&#xf…

【一站式学会Kotlin】第一节 kotlin 介绍

作者介绍&#xff1a; 百度资深Android工程师T6&#xff0c;在百度任职7年半。 目前&#xff1a;成立赵小灰代码工作室&#xff0c;欢迎大家找我开发Android、微信小程序、鸿蒙项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默。给大家…

Kotlin中对生成二维码的使用详解

下面讲解有关二维码的生成&#xff1a; 先来讲解一下对应的入参所表示的意思&#xff1a; 创建二维码位图 (支持自定义配置和自定义样式) param content 字符串内容 param width 位图宽度,要求>0(单位:px) param height 位图高度,要求>0(单位:px) param character…

android 手机主界面侧滑退出app问题

最近重新搭了个app&#xff0c;发现手机显示APP主界面时&#xff0c;沿着手机右边向左滑&#xff0c;会直接关闭应用&#xff0c;所以想搞个第一次提示&#xff0c;第二次退出app的效果。 结果搞出个复杂的东西&#xff0c;下面是两段代码。1: 1:GestureDetector扩展函数。其…

【Android】自定义View组件,并实现在 Compose、Kotlin、Xml 中调用

从事 Android 开发以来&#xff0c;很少有过自定义 View 的相关开发需求&#xff0c;大部分 UI 都是可以集成某些官方组件&#xff0c;在组件的基础上完成能够大大缩短开发时间。但今天我要讲的是&#xff1a;如何使用 Android 开发一个Compose、Xml都可以调用的组件&#xff1…

kotlin first/last/indexOf/elementAt

kotlin 中 first 是取集合元素中第一个元素 last 是取集合元素中最后一个元素 indexOf 根据元素寻找下标&#xff0c;默认是第一个 elementAt 根据下标找元素 下面写一个demo 说明下他们几个的使用 val list listOf("A", "D", "A", "…

Kotlin 1.7.0 beta发布,改进构建器类型推断

Kotlin 1.7.0是JetBrains的跨平台、多用途编程语言的计划新版本&#xff0c;目前已进入beta发布阶段&#xff0c;主要特点是对构建器类型推断和新的内存管理器进行了更改。 改进编写泛型构建器时的构建器类型推断 构建器推断是调用泛型构建器函数时的一种特殊类型推断&#xf…

《Kotlin核心编程》笔记:可空类型平台类型装箱类型数组类型泛型协变与逆变

可空类型 在Kotlin中&#xff0c;我们可以在任何类型后面加上“?”&#xff0c;比如“Int?”&#xff0c;实际上等同于“Int? Int or null”。 通过合理的使用&#xff0c;不仅能够简化很多判空代码&#xff0c;还能够有效避免空指针异常。 注意&#xff1a;由于null只能…

Kotlin 协程库v1.7.1的核心模块(kotlinx-coroutines-core)-- kotlinx.coroutines.flow篇

Flow 是一种异步数据流的表示&#xff0c;可以用于处理异步数据流的操作。 目录 AbstractFlow asFlow asSharedFlow asStateFlow buffer callbackFlow cancellable catch channelFlow collect collectIndexed collectLatest combine combineTransform conflate …

Kotlin快速入门4

Kotlin的类与对象 类的定义 Kotlin使用关键字class来声明类。后面紧跟类名字&#xff1a; class LearnKotlin { //类名&#xff1a;LearnKotlin//... } Kotlin的类可以包含&#xff1a;构造函数和初始化代码块、函数、属性、内部类、对象声明。当然&#xff0c;也可以定义一…

【Kotlin】Kotlin环境搭建

1 前言 Kotlin 是一种现代但已经成熟的编程语言&#xff0c;由 JetBrains 公司于 2011 年设计和开发&#xff0c;并在 2012 年开源&#xff0c;在 2016 年发布 v1.0 版本。在 2017 年&#xff0c;Google 宣布 Kotlin 正式成为 Android 开发语言&#xff0c;这进一步推动了 Kotl…

Kotlin基础——DSL

DSL&#xff08;领域特定语言&#xff09; 常见的DSL就是SQL和正则表达式&#xff0c;用于操作数据库和文本字符串&#xff0c;Kotlin DSL通常为嵌套的Lambda表达式或链式方法&#xff0c;如 https://github.com/gradle/gradle-script-kotlin 用于构建Gradle脚本https://gith…

使用KMP(kotlin多平台)开发Compose,如何打包成可执行文件?exe、DMG……

上一次的分享中&#xff0c;我分享了&#xff0c;如何在windows平台上直接通过IDE运行compose。 使用的方式是&#xff1a; 双击ctrl&#xff0c;然后&#xff0c;执行 gradle run 详情见&#xff1a;使用KMP(kotlin多平台)在windows上出现&#xff1a;Cannot locate tasks th…

10天学会kotlin DAY6 继承、类、重载

kotlin 继承与重载 前言 1、open 关键字 2、类型转换 3、Any 超类 4、对象声明 5、对象表达式 6、伴生对象 7、嵌套类和内部类 8、数据类 9、copy 函数 10、运算符重载 11、枚举类定义函数 12、代数数据类型 13、密封类 14、数据类的小结 总结 前言 使用纯代码…

Android Studio 3.0安装

第一步.下载完的程序&#xff0c;点击.exe文件进行安装。下载地址&#xff1a;https://developer.android.com/studio/index.html&#xff08;如果打不开&#xff0c;正常&#xff0c;你懂的&#xff09;第二步&#xff1a;Next选择组件.第三步&#xff1a;Next设置文件安装地址…

《Kotlin核心编程》笔记:反射、注解和加锁

Kotlin 和 Java 反射 1&#xff09;Kotlin 的 KClass 和 Java 的 Class 可以看作同一个含义的类型&#xff0c;并且可以通过.java和.kotlin方法在KClass和Class之间互相转化。2&#xff09;Kotlin 的 KCallable 和 Java 的 AccessiableObject 都可以理解为可调用元素。Java 中构…

Compose 为什么可以跨平台?

这是我在 2022 Kotlin 中文开发者大会 中带来的一个分享&#xff0c;会后有网友反馈希望将 PPT 内容整理成文字方便阅读&#xff0c;所以就有了本篇文章。大家如果要了解本次大会更多精彩内容&#xff0c;也可以去 JetBrains 官方视频号查看大会的直播回放。 前言 Compose 不止…