kotlin
文章平均质量分 77
AntDreamer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android经典面试题之Kotlin的==和===有什么区别?
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在 Kotlin 中,==和===是两个不同的操作符,它们用于比较两个值是否相等,但它们的行为和用途有所不同。==原创 2024-09-17 23:38:57 · 1324 阅读 · 0 评论 -
Android中多进程通信有几种方式?需要注意哪些问题?
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Android中,多进程通信(Inter-Process Communication,IPC)是指不同进程之间进行数据交换和协同工作的过程。由于Android的每个应用都在其自己的沙箱环境中运行,进程间默认是隔离的,因此当需要在不同应用或同一应用的不同组件之间共享数据时,就需要使用IPC机制。原创 2024-09-13 14:08:19 · 2138 阅读 · 0 评论 -
Android中如何跳转到Wi-Fi开关设置页
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Android应用开发中,有时候需要引导用户到特定的系统设置页面,例如Wi-Fi开关设置页。可以通过隐式Intent来实现这一功能。以下是详细的步骤以及相关的Kotlin代码示例。原创 2024-09-13 11:07:01 · 1319 阅读 · 0 评论 -
Kotlin中的冷流和热流以及如何让Flow停下来
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Kotlin中,Flow是Kotlin Coroutines库中的一个重要概念,用于处理异步和并发数据流。Flow可以帮助你轻松管理和处理异步的、实时的数据流,比如从网络获取的数据流、数据库更新流等等。原创 2024-09-12 08:06:55 · 722 阅读 · 0 评论 -
Kotlin协程的取消机制:深入理解和优雅实现
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Kotlin协程提供了一种高效的方式来处理并发和异步任务。在协程的生命周期管理中,取消协程是一项重要的操作。本文将深入探讨Kotlin协程的取消机制,介绍除了直接使用Job的cancel方法之外的其他方式,并提供优雅的实现策略。原创 2024-09-10 16:29:59 · 1708 阅读 · 0 评论 -
Kotlin入门实用开发技巧与注意事项
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Kotlin,这门由 JetBrains 开发的现代编程语言,自 2017 年被 Google 宣布为 Android 官方开发语言以来,便迅速在开发者社区中流行起来。它以其简洁的语法、空安全的特性和与 Java 的无缝互操作性而受到青睐。作为一名资深程序员,我将为刚入门 Kotlin 的开发者分享一些实用的开发技巧和注意事项,帮助你快速上手并避免常见的陷阱。原创 2024-09-10 16:29:21 · 976 阅读 · 0 评论 -
Android经典实战之用kotlin实现散列算法SHA-256
SHA-256 是 SHA-2 家族中的一种,是一种经常用于数据完整性验证和数字签名的加密散列函数。它输入任意大小的数据,输出一个 256 位(32 字节)长的摘要。验证文件的完整性数字签名密码存储。原创 2024-08-29 09:34:30 · 1088 阅读 · 0 评论 -
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
是 Java 提供的方法,用于暂停当前线程的执行。它是一个阻塞操作,会冻结当前线程一段时间。try {// 暂停 1 秒在 Kotlin 中使用Thread.sleep(1000) // 暂停 1 秒delaydelay函数是 Kotlin 协程库(Kotlin Coroutines)提供的一个挂起函数,用于暂停协程的执行而不会阻塞线程。delay(1000) // 暂停 1 秒。原创 2024-08-28 12:42:44 · 588 阅读 · 0 评论 -
Android经典实战之使用compose时一般用一个activity还是多个
目前Compose比较适合的方式还是用来替换View欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-08-27 12:49:18 · 1436 阅读 · 0 评论 -
Android经典实战之Kotlin委托模式和by关键字
在经典的委托模式中,一个类将它的一些行为通过对象组合的方式委托给另一个对象。Kotlin 通过关键字by提供了简单和直接的语法支持,使这种模式更易于实现。你也可以创建自己的属性委托。自定义委托需要实现或接口。原创 2024-08-27 08:08:53 · 914 阅读 · 0 评论 -
Android经典实战之用Kotlin泛型实现键值对缓存
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Kotlin 中的泛型是一种允许类型参数化的特性。它可以增强代码的重用性、类型安全性和可读性。在实际编写代码时,通过泛型,你可以编写更为通用的类和方法,而不必具体针对某种特定类型。原创 2024-08-26 14:49:28 · 457 阅读 · 0 评论 -
Android经典实战之跨平台开发方案:Kotlin Multiplatform vs Flutter
KMP是由 JetBrains 推出的跨平台开发技术,它允许开发者使用 Kotlin 语言编写代码,并将其编译为原生 Android 和 iOS 代码。KMP 的设计理念是实现代码的最大化共享,同时充分利用每个平台的原生优势。Flutter由 Google 开发,采用 Dart 语言,并使用 Skia 渲染引擎绘制 UI。Flutter 的一大亮点是其丰富的组件库和统一的渲染引擎,可以在多个平台上提供一致的 UI 体验和高性能的动画效果。原创 2024-08-21 10:17:51 · 1737 阅读 · 0 评论 -
Kotlin Multiplatform 跨平台开发的优化策略与实践
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。原创 2024-08-20 14:05:20 · 1280 阅读 · 0 评论 -
Kotlin Multiplatform 中,如何使用 ‘expect‘ 和 ‘actual‘ 来处理不同平台的 API 调用
Kotlin Multiplatform 中,如何使用 'expect' 和 'actual' 来处理不同平台的 API 调用原创 2024-08-19 08:30:00 · 1431 阅读 · 0 评论 -
Android经典实战之Kotlin Multiplatform跨平台开发
Kotlin Multiplatform(KMP)是JetBrains开发的一项开源技术,它允许开发者在多个平台上创建应用程序,同时高效地重用代码,保留原生编程的优势。KMP支持在iOS、Android、macOS、Windows、Linux等多种操作系统上运行应用程序。KMP的主要使用场景包括:1、Android与iOS应用程序:开发者可以在这两个移动平台之间共享代码,实现网络、数据存储、数据验证、分析、计算和其他应用逻辑。2、多平台库。原创 2024-08-18 22:23:00 · 1291 阅读 · 0 评论 -
Android经典实战之Kotlin 2.0 迁移指南:全方位优化与新特性解析
Kotlin 2.0 为开发者带来了一系列新工具和优化,以适应不断变化的开发需求。从 K2 编译器的引入到多平台项目的增强,再到智能转换的改进,Kotlin 2.0 无疑将提升你的开发效率和应用性能。随着 Kotlin 2.0 的发布,JetBrains 也为我们描绘了 Kotlin 未来的蓝图。我们可以期待更多的语言功能、改进的库作者体验以及对现有框架的持续支持。作为一名 Kotlin 开发者,现在是时候开始规划你的迁移路径了。原创 2024-08-17 12:24:06 · 1383 阅读 · 0 评论 -
Android经典实战之Kotlin常用的 Flow 操作符
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Kotlin 的Flow提供了一系列操作符,这些操作符类似于 RxJava,但更加简洁和易于使用。原创 2024-08-16 09:45:41 · 1148 阅读 · 0 评论 -
Android经典实战之Kotlin Flow中的3个数据相关的操作符:debounce、buffer和conflate
debounce操作符用于过滤频繁发射的数据项,只保留最后一个在指定时间内发射的数据项。常用于处理用户输入、按钮点击等可能频繁触发的事件,避免不必要的操作频繁发生。bufferbuffer和conflate都是用于处理流的性能优化操作符。buffer通过引入缓存区降低背压,让上下游可以并发运行。conflate则直接跳过中间值,只保留最新的,大幅度减少处理频率,适用于对最新数据更敏感的场景。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-08-11 11:07:42 · 1254 阅读 · 0 评论 -
Android Kotlin中如何优雅地退出循环?
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。原创 2024-08-06 23:30:23 · 1647 阅读 · 0 评论 -
Android实战经验之Kotlin中快速实现MVI架构
数据模型表示应用程序的数据结构。视图状态持有当前用户界面的状态。用户意图表示用户的操作,例如点击按钮或滑动列表。在Activity或Fragment中观察状态,并根据状态更新UI。) {) {在这个示例中,我们展示了如何在Kotlin中实现MVI架构。实际项目中,您可以进一步模块化这些组件,并集成诸如依赖注入、导航、数据源管理等高级功能。通过使用MVI架构,您将能够更容易地管理复杂的用户交互,同时提高代码的可测试性和可维护性。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-08-01 08:15:00 · 1423 阅读 · 0 评论 -
Android经典面试题之Kotlin中 if 和 let的区别
if:用于条件判断,具有条件分支特性,并且可以返回值。适用于执行不同条件下不同逻辑的场景。let:一种作用域函数,通常用于对非空对象进行操作,并带有安全调用的特性。适用于简化对可空类型的操作,避免显式的null检查。选择使用if还是let,取决于你的具体需求和场景。在不需要null安全或作用域控制的简单条件判断中,使用if更为直观;在处理可空类型并需要对非空值进行操作时,使用let则更为简洁和优雅。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-31 12:51:09 · 718 阅读 · 0 评论 -
Android经典面试题之Kotlin中常见作用域函数
let和also:通过it作为参数传递上下文对象。runwith和apply:通过this作为接收者传递上下文对象。letrun和with:返回代码块的结果。apply和also:返回上下文对象自身。根据需求选择合适的作用域函数,可以让你的代码更简洁和直观。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-23 08:15:00 · 473 阅读 · 0 评论 -
Android面试题之Kotlin Dialog隐藏导航栏
{requestWindowFeature(Window.FEATURE_NO_TITLE) // 去掉对话框的标题栏setContentView(R.layout.dialog_fullscreen) // 设置对话框的布局window?.let {原创 2024-07-19 08:30:00 · 592 阅读 · 0 评论 -
Android Kotlin中使用 LiveData、ViewModel快速实现MVVM模式
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点使用 Kotlin 实现 MVVM(Model-View-ViewModel)模式是开发 Android 应用程序的一种常见架构方式。MVVM 模式将应用程序的 UI 逻辑和业务逻辑分离,使用 LiveData、ViewModel 和 DataBinding 可以使代码更加模块化和可维护。原创 2024-07-19 08:30:00 · 1388 阅读 · 0 评论 -
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
直接使用object关键字创建单例对象,这是最简单的方法。这个方法不需要编写额外的代码来确保该对象只有一个实例。Kotlin 提供了多种方便且简洁的方法来实现单例模式:1、Object 关键字:最简单的方式,适用于没有参数的单例。2、伴生对象以及自定义静态方法:适用于需要初始化参数或自定义初始化逻辑的单例。也就是Java中的DCL单例根据实际需求选择合适的方法,可以让你的代码更加简洁和有效。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-18 08:15:00 · 1002 阅读 · 0 评论 -
Android经典面试题之Kotlin中Lambda表达式有哪些用法
Kotlin的lambda表达式使得编写高度简洁和可读的代码变得更加容易。这些表达式在处理集合、编写高阶函数、以及实践函数式编程时尤为强大和实用。掌握lambda表达式可以显著提升你的Kotlin编程技巧和代码质量。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-17 08:32:04 · 468 阅读 · 0 评论 -
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Kotlin的匿名函数和lambda表达式都提供了强大的功能用于表示没有名字的函数,它们在功能上有很大的重叠,但在语法、返回类型和使用场景上有一定的区别和适用性。在实际开发中,可以根据具体需求选择使用匿名函数或lambda表达式,以达到最佳的代码可读性和性能。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-17 08:30:31 · 1544 阅读 · 0 评论 -
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Kotlin中,by lazy和lateinit都是用于延迟初始化的手段,但它们各自有不同的用法和特点。下面详细讨论它们的作用和区别。原创 2024-07-15 08:15:00 · 782 阅读 · 0 评论 -
Android面试题之kotlin中怎么限制一个函数参数的取值范围和取值类型等
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点在Kotlin中,限制函数参数的取值范围和取值类型可以通过多种方式实现,包括使用类型系统、条件检查以及自定义类型等。原创 2024-07-12 08:30:00 · 1198 阅读 · 0 评论 -
Android面试题之 Kotlin中退出迭代器的方式有哪些
/ 创建一个示例集合// 使用forEach遍历集合,并使用return提前停止外层函数run loop@{return@loop // 提前退出外层函数println("Iteration completed.") // 不再会被执行在这个示例中,通过自定义标签loop@和可以完全停止外层函数的执行,并提前退出循环。如果我们在遍历的时候同时需要删除对象,如果需要的话,就可以用上述的方法来退出循环。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-11 09:31:53 · 765 阅读 · 0 评论 -
Kotlin小技巧之用Transformations.map方法转换LiveData
是一个非常有用的工具,用于在 Android 应用中处理 LiveData 的数据转换。它提供了一种优雅且反应式的方式来处理数据的变化,同时保持了 LiveData 的特性,非常适合用于 MVVM 架构中。欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-07-10 09:25:23 · 1010 阅读 · 0 评论 -
Android面试题之Kotlin协程并发问题和互斥锁
lock():尝试获取锁,如果锁不可用,则挂起当前协程。unlock():释放锁,其他挂起的协程可以继续执行。tryLock():尝试获取锁,如果锁不可用,则立即返回false,不会挂起当前协程。withLock():便捷方法,自动获取和释放锁,确保在代码块执行后释放锁。Mutex的这些方法使得在 Kotlin 协程中进行线程安全的操作变得更加简洁和直观。根据实际需求选择合适的方法,可以有效避免并发问题,提高代码的健壮性和可维护性。原创 2024-06-28 09:32:31 · 685 阅读 · 0 评论 -
Android面试题之如何简单快速实现RecycleView的拖动重排序功能
完成以上的步骤就瞬间实现了让RecycleView支持拖动重排序的功能,欢迎关注我的公众号AntDream查看更多精彩文章!原创 2024-06-18 08:24:07 · 319 阅读 · 0 评论 -
鸿蒙? 车载?Flutter? React Native? 为什么我劝你三思,说点不一样的
当今信息技术领域日新月异,各种新技术和新平台层出不穷。鸿蒙(HarmonyOS)、Flutter、以及车载应用开发如今备受瞩目,吸引了大量开发者的关注。然而,对于希望提升技能的开发者来说,一味地追逐最新技术也许并不是最佳策略。这里我结合自己的思考和经历,分享一些不一样的看法,希望对大家有所帮助。原创 2024-06-08 19:11:24 · 1551 阅读 · 0 评论 -
Android面试题之Kotlin Jetpack组件LifecycleScope
是一个扩展属性,可以在(如Activity或Fragment)中使用。在这个范围内启动的协程都会在对应的生命周期被取消,避免内存泄漏和无效操作。例如,当一个Activity被销毁时,在内启动的协程会自动取消。// 在 Activity 或 Fragment 的 lifecycleScope 中启动的协程:确保协程在生命周期至少为CREATED时执行,只有在生命周期降到DESTROYED时才会被取消。:确保协程在生命周期至少为STARTED才会执行,当降到CREATED时暂停,降到DESTROYED。原创 2024-06-07 09:14:32 · 1084 阅读 · 0 评论 -
Android面试题之Kotlin Flow的collect和collectLatest有什么区别?
collect: 是一个挂起函数,用于启动流的收集过程。收集过程会逐个处理每个发射的值,并从上游流向下游执行相应的操作。由于是逐个处理,较耗时的操作会阻塞后续值的处理。: 类似于collect,但有一个关键不同点,即当新的值发射时,如果上一个值的收集操作尚未完成,将取消上一个挂起操作,并立即启动新的值的收集过程。这样适用于需要处理最新数据,而可以忽略之前未完成任务的场景。collect:适合逐个、顺序处理所有发射的流数据,保证每个值都被完整处理。原创 2024-06-06 13:51:59 · 1143 阅读 · 0 评论 -
Kotlin中的StateFlow和SharedFlow有什么区别?
StateFlow一种用于持有单一最新状态值并发射给多个观察者的热流。适合用于状态管理场景,例如表示UI状态。和livedata比较像,有新数据可以通知collect的一方同时又具有flow的所有特点,比如可以挂起,切换线程SharedFlow一种通用热流,可以发射事件流而不是仅限于持有最新状态。适合处理事件总线、观察者模式等场景。也就是一对多的关系,可以有多个collector同时又具有flow的所有特点,比如可以挂起,切换线程。原创 2024-06-05 12:22:46 · 1296 阅读 · 1 评论 -
Kotlin Jetpack Paging3 和Flow结合使用注意点
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。原创 2024-06-03 09:34:13 · 944 阅读 · 1 评论 -
Android面试题之Kotlin中的内联函数
在Kotlin中,内联函数(inline functions)是一种特殊的函数,通过编译器将函数的调用直接替换为函数体,从而减少函数调用的额外开销。内联函数通常用来优化高阶函数(以函数作为参数的函数)的性能,尤其是在lambda表达式和匿名函数频繁使用的情况下。原创 2024-05-31 09:29:01 · 498 阅读 · 0 评论 -
Android面试题之Kotlin 协程的挂起、执行和恢复过程
挂起点保存当前状态由管理。调度器控制挂起后的线程控制权交还。恢复条件满足时,调度器分配新线程,调用resumeWith方法恢复协程。调度器检查恢复环境,分配合适线程并调用resume方法继续执行。欢迎关注我的公众号查看更多精彩文章!原创 2024-05-30 09:39:35 · 1272 阅读 · 0 评论
分享