- 博客(68)
- 资源 (12)
- 收藏
- 关注
原创 Kotlin中的Any 类详解
Kotlin 中的 ANY 类详解在 Kotlin 中,Any 类是 Kotlin 类继承层次结构的根。每个 Kotlin 类都继承自 Any。它等同于 Java 中的 Object,但有一些关键差异和额外的功能。Kotlin 中 Any 的关键点继承:Kotlin 中的每个类都直接或间接地继承自 Any。如果你没有为一个类指定超类,它将隐式地继承自 Any。Any 中的方法:Any 提供了三个重...
2024-07-30 17:06:07
730
原创 Kotlin 中的 “if” 与 “let”
Kotlin 中的 “if” 与 “let”我应该在 Kotlin 中对可空类型对象使用 “if” 还是 “let”?系好安全带,开车!让我们从问题开始:classIfOrLet{privatevarstring1:String?="somestring1"init{if(string1!=null){...
2024-07-29 11:52:13
475
原创 Kotlin 中的 Number 类解释
Kotlin 中的 Number 类解释Number在 Kotlin 中,有一个名为 Number 的基类,其在 Kotlin 中的描述为:“所有平台类表示数值的超类。这里你可以看到哪些类继承自 Number,并且可以作为它使用。Kotlin Number 继承体系由于你不能在 Number 上执行任何计算:funadd(a:Number,b:Number)=a+b//无法解析...
2024-07-26 07:10:18
510
原创 Kotlin 中的 Typealias 详解
Kotlin 中的 Typealias 详解简而言之,typealias 是为现有类型赋予一个新名称的方式。系好安全带,开车!为什么你应该使用它们?可读性:你可以为你的类型提供更有意义的名称。效率:你没有引入可能减慢代码的包装器等。这是两个主要优点。让我们看看如何在代码中使用它们:简单示例假设你将 String 作为 Person 的 ID 传递,你可以为 PersonID 编写一个 type...
2024-07-25 09:18:48
736
原创 理解 Kotlin 中的 crossinline 关键字
理解 Kotlin 中的 crossinline 关键字Kotlin 提供了丰富的功能,用于开发简洁且富有表现力的代码。这些特性包括高阶函数和 Lambda 表达式,它们是 Kotlin 设计的核心部分。在使用这些构造时,您可能会遇到 crossinline 关键字。在本文中,我们将探讨 crossinline 是什么,它为什么有用,以及它如何影响 Kotlin 中 Lambda 表达式的行为。系...
2024-07-24 07:00:53
1071
原创 Kotlin Flows 流 — 基础
Kotlin Flows 流 — 基础上一篇研究了 Kotlin 协程。上一篇文章重点介绍了协程的一些基础知识,如协程上下文(CoroutineContext)、协程作用域(CoroutineScope)、协程构建器等。如承诺的那样,这是关于流(Flows)的后续文章。什么是流?可以异步计算的数据流被称为流(Flow)。Flow,像 LiveData 和 RxJava 流一样,允许你实现观察者模式...
2024-07-23 08:15:10
1190
原创 Kotlin 协程 — 基础
Kotlin 协程 — 基础协程已经存在一段时间了,关于它的各种文章也很多。但我发现想要了解它还比较费时,所以我花了一段时间才真正理解了协程的基础知识以及它的工作原理。因此,我想分享一些我理解到的内容。什么是协程?协程代表合作函数。它们提供了一种更有效和易读的方式来处理异步任务。它与线程类似,因为它需要一块代码来与其余代码同时运行。然而,协程并不绑定到任何特定线程。它可以在一个线程中暂停执行,并在...
2024-07-22 17:03:03
1314
原创 Kotlin 中的 Lazy vs Lateinit 解析
Kotlin 中的 Lazy vs Lateinit 解析hi!Kotlin 开发爱好者们类的属性是每个代码库的基础部分。让我们看看一些初始化它们的方法,以简化代码并提高效率和可读性!系好安全带,开车!根据你的需求,你可能希望你的属性是不可变的 val 或可变的 var。开发者经常在稍后在代码中初始化属性时遇到困难。这就是为什么在 Kotlin 中,我们有 lazy 和 lateinit 属性初...
2024-07-20 06:55:33
932
原创 Kotlin 内存分配探秘
Kotlin 内存分配探秘hi!Kotlin 开发爱好者们你是否曾想过 Kotlin 中的内存分配是如何工作的?让我们通过一些有趣的日常比喻,深入探索栈和堆内存的神奇世界。系好安全带,开车!什么是栈内存?想象你在一个KFC店。你点了一个汉堡包,厨师当着你的面迅速制作。汉堡包制作完毕立即上菜,你立刻享用。厨师不会保留汉堡包的存货;每一份都是现点现做。在 Kotlin 中,栈内存就像这家KFC店。它用...
2024-07-19 08:30:46
493
转载 Kotlin Contract API 详解
Kotlin Contract API 详解Kotlin Contract API 是一种强大的工具,它允许开发者通过特定的契约声明来增强编译器的智能推断能力。这种能力不仅可以提高代码的安全性,还能优化代码的执行效率。以下是对 Kotlin Contract API 的详细介绍:智能推断与 ContractKotlin 语言以其智能类型推断而闻名,但在某些情况下,这种推断能力可能会受到限制。例如,...
2024-07-18 10:26:29
143
原创 在Kotlin 中让代码变得有趣的 Contracts API
“hi!Kotlin 爱好者们!今天,我们将深入研究 Kotlin 的一颗隐藏宝藏 — Contracts API。如果您曾经觉得您的代码需要更清晰一些,或者您的函数可以使用更多的可预测性,那么系好安全带吧!Contracts API 可以帮您解决这一问题。别担心,我们将使用一些日常类比让这段旅程尽可能有趣和引人入胜。准备好了吗?上车!什么是Contracts?想象一下,您即将签署一份租房合同。您...
2024-07-17 10:17:45
395
原创 KMM初探
什么是KMM?在开始使用 KMM 之前,您需要了解 Kotlin。KMM 全称:Kotlin Multiplatform Mobile)是一个用于跨平台移动开发的 SDK,相比于其他跨平台框架,KMM是原生UI+逻辑共享的理念,由KMM封装成Android(Kotlin/JVM)的aar和iOS(Kotlin/Native)的framework,再提供给View层进行调用。Kotlin Multi...
2024-03-14 19:27:04
2790
原创 理解Kotlin密封类Sealed
“密封类和接口表示受限制的类层次结构,提供对继承的更多控制。密封类的所有直接子类在编译时都是已知的。在定义密封类的模块和包之外不能出现其他子类。例如,第三方客户端不能在其代码中扩展您的密封类。因此,密封类的每个实例都有一个在编译该类时已知的有限集合中的类型。参考官网:https://kotlinlang.org/docs/sealed-classes.html如果您像我一样,第一次阅读时可能无法理...
2023-04-27 19:58:58
799
原创 理解Kotlin多重构造函数
在Kotlin中,有一个主要构造函数和许多次要构造函数;主构造函数是类头的一部分,它位于类名和可选类型参数之后。这里主要通过简单示例展示Kotlin中的主要和次要/多个构造函数1、主构造函数这是带有一个参数的主构造函数。classExampleconstructor(privatevalparam1:String){init{println("initi...
2023-03-13 07:05:23
903
原创 Kotlin中的destructuring解构声明
开发中有时只是想分解一个包含多个字段的对象来初始化几个单独的变量。要实现这一点,可以使用Kotlin的解构声明。本文主要了解:“1、如何使用解构声明这种特性2、底层是如何实现的3、如何在你自己的类中实现它1、解构声明的使用解构声明(Destructuring Declarations)概念:将对象所包含的字段视为一组独立的变量解构声明允许我们这样定义局部变量://Per...
2023-03-06 07:15:04
559
原创 Kotlin中的一些语法设计
随着Kotlin不断升级,一些Kotlin语法设计被引入到该语言中。我写这篇文章是提醒我们它们的特性和重要性。1. fun interface (SAM):函数式(SAM)接口fun interface (SAM):函数式(SAM)接口只有一个抽象方法的接口称为函数式接口或 SAM(单一抽象方法)接口。函数式接口可以有多个非抽象成员,但只能有一个抽象成员。许多语言(如Java)最初并没有将函数作...
2023-02-27 07:30:08
471
原创 Kotlin中内置的委托
委托可以帮助您将任务委托给其他对象,并提供更好的代码重用,您可以在如下文章中了解更多相关内容。Kotlin中的属性委托,用起来!Kotlin中的接口委托是什么?Kotlin不仅支持一种通过关键字实现委托的简单方法,而且还在Kotlin标准库中提供了内置委托,如lazy()、observable()、vetoable()和notull()。让我们看看这些内置委托以及它们在底层是如何工作的。1、laz...
2023-02-24 20:14:17
552
原创 Kotlin中的属性委托,用起来!
上篇文章我们了解了Kotlin中的接口委托,还可以使用by关键字委托属性。使用属性委托,委托负责处理对属性的get和set函数的调用。如果您需要跨其他对象重用getter/setter逻辑,这可能非常有用,并允许您轻松扩展功能,而不仅仅是简单的支持字段。属性委托让我们假设你有一个Product类,它是这样定义的:class Product(price: String, oldPrice: Stri...
2023-02-23 20:52:12
322
原创 Kotlin中的接口委托是什么?
您可能熟悉Kotlin中的[属性委托],但您是否听说过[接口委托]?这是其他编程语言不具备的特性之一。标准接口的实现假设下面有两个接口:PrintInterface1和PrintInterface2。interfacePrintInterface1{funfun1()}interfacePrintInterface2{funfun2()}你有一个实现这两个接口...
2023-02-22 18:48:54
205
原创 Kotlin 集合函数锦集
自从Kotlin官宣为Android开发首选语言后,大家也都正计划很快转向Kotlin或者已经完全转向Kotlin,接下来我们直奔主题了。我们在Android应用程序中研发过程中,对于 l...
2021-06-01 10:21:05
1771
原创 Android SDK 提供的3套音频播放的API之窥探AudioTrack
前言Android SDK 提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack,本文重点说下AudioTrack。前面讲到了MediaPl...
2021-04-30 06:56:03
1052
1
原创 Android SDK 提供的3套音频播放的API之玩转SoundPool
前言Android SDK 提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack,本文重点说下SoundPool。和MediaPlayer一...
2021-04-29 10:09:52
1203
1
原创 Android SDK 提供的3套音频播放的API之玩转MediaPlayer
前言Android SDK 提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack,本文重点说下MediaPlayer。Android 多媒体...
2021-04-09 06:52:03
861
原创 Android适配UI动态设置View视图控件的间距
一、动态设置View视图控件的间距如下布局,要动态控制TextView距离顶部的间距:1、需求:RelativeLayout有一个背景宽高为1635*1029px的图片,需要TextVie...
2021-04-01 07:57:48
3472
原创 Android接入第三方库踩过的坑-兼容性问题解决汇总
接入第三方库时遇到一些兼容性问题,总结汇总如下:1、SDK最低支持版本冲突编译时,Android Studio控制台报如下异常:Manifestmergerfailed:uses-...
2021-03-31 07:52:04
12393
转载 Android - 从浅到懂去理解注解
在看静态代理和动态代理的区别时了解到反射,上一篇文章对反射技术做了总结。而之前看一些文章总是提到使用注解能解决反射导致的性能问题。因此想通过一篇文章来了解注解。但还是太年轻,一篇文章没法...
2020-12-31 07:58:18
179
转载 从 static 关键字深入理解 java对象初始化顺序
点击上方蓝色“猿芯”关注,输入1024,你懂的前言 最近在阅读 ThreadLocal 源码的时候,发现一段很有意思的代码,代码片段如下:privatefinalintthre...
2020-12-30 11:51:40
137
原创 Jetpack架构组件库-DataBinding真香
前言Data Binding是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。布局通常是使用调用界面框架方法的代码在 Activity ...
2020-12-17 09:07:15
388
原创 Jetpack架构组件库-ViewMode之SavedStateHandle数据存储
前言在引入了 Jetpack 之后,我们通常使用 ViewModel 组件来管理数据,当页面因配置变更(尤其是在发生像旋转这样频繁的配置更改之后)而重建时,可以使用 ViewModel ...
2020-12-16 07:17:08
951
原创 Jetpack-VM再不懂你就out了
推荐阅读heiyulong,公众号:Android进化之路Jetpack架构组件库-LiveData只一篇你就会用前言ViewModel 作为 Jetpack 组件库组件之一,它的出现释...
2020-12-15 08:03:58
171
2
原创 Jetpack架构组件库-LiveData实战与应用-总有适合你的方案
前言先前针对LiveData 组件从使用到原理都做了充分的解析,可以参考链接:Jetpack架构组件库-LiveData只一篇你就会用Jetpack架构组件库-LiveData工作原理只...
2020-12-12 08:35:26
442
原创 Android兼容性优化-ScrollView滚动监听适配方案
Android兼容性优化-Android M以下兼容ScrollView.setOnScrollChangeListener() 方案崩溃日志:java.lang.NoClassDefF...
2020-12-10 07:58:10
711
原创 Jetpack架构组件库-LiveData工作原理只一篇你就懂
推荐阅读:heiyulong,公众号:Android进化之路Jetpack架构组件库-LiveData只一篇你就会用前言本次主要讲解的内容:1、LiveData 核心方法2、LiveDa...
2020-12-09 12:50:06
410
原创 Jetpack架构组件库-LiveData只一篇你就会用
WhenandwhytouseAndroidLiveDataheiyulong,公众号:Android进化之路Jetpack架构组件库-介绍与基本用法前言==本次主要讲解的内...
2020-12-08 08:08:24
253
原创 Jetpack架构组件库-Lifecycle源码解析之知其所以然
推荐阅读heiyulong,公众号:Android进化之路Jetpack架构组件库-Lifecycle应用解析之知其然前言==本次主要讲解的内容:==1、Fragment 是如何实现 L...
2020-12-07 18:01:55
220
原创 Jetpack架构组件库-Lifecycle应用解析之知其然
前言本次主要讲解的内容:1、Lifecycle介绍,解决了什么问题2、Lifecycle理解与运用3、Lifecycle如何感知生命周期的状态?一、Jetpack 介绍1、什么是Life...
2020-12-03 19:45:55
197
原创 Android兼容性优化-Android 8.0设置Activity透明主题崩溃
原文连接:https://mp.weixin.qq.com/s/g6RzzJIOpyBLiCq-YHBBMg崩溃日志:1 java.lang.RuntimeException:Unable to start activity ComponentInfo{com.pxwx.assistant/com.pxwx.main.ui.MainActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can reque
2020-12-03 16:43:19
1121
1
原创 Jetpack架构组件库-介绍与基本用法
前言本次主要讲解的内容:1、Jetpack介绍2、Jetpack架构组件库的相关用法一、Jetpack 介绍1、什么是JetpackGoogle 官方解释:Jetpack 是一个由多个库...
2020-12-02 20:35:46
3961
8
原创 Android兼容性优化-8.0之后禁止在后台启动服务的兼容性优化
前言本次主要内容包括:1、Android8.0之后IntentService启动异常跟踪2、JobIntentService替代IntentService方案一、Android8.0之后IntentService启动异常跟踪项目中在做启动优化时,在Application 通过IntentService启动第三方组件时,bugly时常会上报如下问题:android.app.RemoteServiceExceptionContext.startForegroundService() did n
2020-12-01 10:22:42
1022
原创 读书笔记-认知突围
p22:*!一旦人产生了情绪,就会为了维持或摆脱某种情绪状态而说服大脑将自己的真实意图隐藏起来,比如感受过快乐就想持续感受快乐,尝试过痛苦就想立刻摆脱痛苦。想法:人的大脑大都是“趋利避害...
2020-11-28 08:59:18
206
用JSP做的网上交友页面
2009-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人