前言Kotlin协程底层是用线程实现的,是一个封装完善供开发者使用的线程框架。Kotlin的一个协程可以理解为是运行在线程上的一个执行任务并且该任务可以在不同的线程间切换,一个线程可以同时运行多个协程。从开发者角度来看:kotlin协程可以实现以同步的方式去编写异步执行的代码,解决线程切换回调的嵌套地狱。协程挂起时不需要阻塞线程,几乎是无代价的。创建协程的方 ......
234
0
0
2024-07-27
一、重写 native 驱动层我们先来回顾一下最初的 SQLlin 架构图:最初,SQLlin 在 Kotlin/Native 平台上基于开源项目 SQLiter(见参考链接 1),目的是避免重复造轮子。虽然 SQLliter 是来自 Touchlab的优秀开源项目,但最近一年维护更新缓慢。在本文撰写时,SQLiter 于 2023 年 11 月发布了 1. ......
224
0
0
2024-05-02
main() 函数 fun main() { // Code goes here } main() 函数是每个 Kotlin 程序的起点,在执行之前必须包含在代码中打印声明 println("Greetings, earthling!") print("Take me to ") print("your leader.") /* 打 ......
288
0
0
2023-09-23
目录一、理论基础二、实验目的三、实验步骤1、新建工程文件2、引入布局管理3、创建布局4、访问权限5、实现逻辑四、实验演示五、实验总结一、理论基础掌握Kotlin面向对象的软件开发方面的基础知识。巩固前期Activity、UI控件的使用。掌握Handler和Http请求的特点及用法。二、实验目的根据Android多线程和网络编程的知识讲解和案例使用,使用Han ......
448
0
0
2023-08-03
目录前言Navigation的优势Navigation开发流程一.注入依赖二.创建Fragment和XML视图三.建立Navigation导航图并关联1. 建立导航图2. 为Navigation导航绑定在Activity上3. 为Navigation导航页面添加跳转事件四.Navigation效果演示前言其实小编之前一直都是用的Java来开发Android, ......
283
0
0
2023-08-03
目录1.协程的基本用法2.更多的作用域构建器3.使用协程简化回调的写法协程属于Kotlin中非常有特色的一项技术,因为大部分编程语言中是没有协程这个概念的。那么什么是协程呢?它其实和线程有点相似,可以简单地将它理解成一种轻量级的线程。我们之前学习的线程是重量级的,它需要依靠操作系统的调度才能实现不同线程之间的切换,而使用协程却可以仅在编程语言的层面就能实现不 ......
379
0
0
2023-07-23
不久之前,我看了一篇文章,大意是 kotlin 与 Java 之间的对比,像这种文章,我一般是直接忽略的,但是那天我还是打开了,然后就看到一个非常吃惊的结果。里面有一段是关于 Kotlin 与 Java 之间可读性的对比的文章,作者的结论是:Kotlin 并不比 Java 更具有可读性,所有认为 Kotlin 比 Java 更具有可读性的结论都是“主观性” ......
287
0
0
2023-07-11
前言Coil 是一个非常年轻的图片加载库,在 2020 年 10 月 22 日才发布了 1.0.0 版本,但却受到了 Android 官方的推广,在 Android Developers Backstage 这个博客中专门聊过一期。推广的原因比较简单:一方面是这个库确实做得很好,另一方面是这个库完全是用 Kotlin 写的,而且运用了大量 Kotlin 的 ......
285
0
0
2023-07-06
目录1.object:匿名内部类2.object: 伴生对象3.单例模式1.object:匿名内部类在Android最常用的匿名内部类之一就是点击事件,用Java语言写的话就是下面这样:public interface OnClickListener { void onClick(View v); } button.setOnClickList ......
408
0
0
2023-07-01
目录引言1.Job的生命周期2.Deffered3.Job与结构化并发4.launch和async的使用场景引言前面在学习协程启动方式的时候在launch的源码中有一个返回值是Job,async的返回Deferred也是实现了Job,那么而也就是说launch和async在创建一个协程的时候也会创建一个对应的Job对象。还提到过Job是协程的句柄,那么Job ......
314
0
0
2023-06-30
通过今天的博客标题,你一定已经得到了一个提示。我们将在今天的博客中看到 kotlin 和 java 之间的基本区别。 我们将对java和 Kotlin 进行所有的比较。 Android 应用程序开发已经成为推动任何业务(无论大小)的持续趋势。但是 Android 应用程序开发中影响你业务的主要因素是用于构建应用程序的编程语言。 对于许多人来说,Java ......
308
0
0
2023-06-28
目录1、文件存储2、SharedPreferences存储将数据存储到SharedPreferences中从sharedpreferences中读取数据3、SQLite数据库存储创建数据库升级数据库添加数据更新数据删除数据查询数据4、使用SQL操作数据库1、文件存储文件存储是Android中最基本的数据存储方式,它不对存储的内容进行任何格式化处理,有数据都是 ......
379
0
0
2023-06-27
目录一、select是什么二、select和Channel一、select是什么select——>用于选择更快的结果。基于场景理解比如客户端要查询一个商品的详情。两个服务:缓存服务,速度快但信息可能是旧的;网络服务,速度慢但信息一定是最新的。如何实现上述逻辑: runBlocking { suspend fun getCacheInfo(pr ......
305
0
0
2023-06-23
目录一、cancel()无效1.cancel()不被响应2.结构被破坏3.未正确处理 CancellationException二、try-catch不起作用三、SupervisorJob四、CoroutineExceptionHandler一、cancel()无效当协程任务被取消的时候,它的内部是会产生一个 CancellationException 的。 ......
316
0
0
2023-06-23
目录一、CPS转换1.CPS 参数变化2.CPS 返回值变化二、挂起函数的反编译三、Continuation学习了极客时间课程,记录下学习输出。一、CPS转换挂起函数,比普通的函数多了 suspend 关键字。通过suspend 关键字,Kotlin 编译器就会特殊对待这个函数,将其转换成一个带有 Callback 的函数,这里的 Callback 就是 C ......
296
0
0
2023-06-21