自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 探索 Jetpack PreferenceDataStore 原理

Jetpack DataStore 是一种数据存储解决方案,可以和 SharedPreferences 一样存储键值对,还可以用 Protocol Buffers 协议来存储类型化对象数据

2023-08-04 10:21:59 247 1

原创 探索 Kotlin 协程 withTimeout 原理

在事件轮询器中,有一个专门用来轮询任务的线程,并且维护了一个延时任务队列和一个普通任务队列,当到了延迟的时间后,没有任务的时候,负责轮询任务的线程就会被阻塞,直到下一个延时任务的时间到了后,就会被唤醒,这时执行 延时任务,由于在前面的第一个单测例子中,在 Kotlin 的官方文档中,说到了协程的取消是协作完成的,这也是为什么协程叫协程,协程的代码必须进行协作才能被取消,而 withTimeout 也是通过这套取消协作机制完成的,比如下面的例子中,在打印第四个数字的时候,就在执行超时后抛出了异常。

2023-06-30 07:56:58 612 1

原创 探索 Kotlin 协程原理

接下来跟大家分享一下我在了解 Kotlin 协程实现的过程中理解的一些概念,如果你发现哪些地方我说错了的话,欢迎提出你的理解。1. Kotlin 协程原理概述Kotlin 协程的大致的执行流程如上图所示,这个流程是各种类型的协程执行时都大致遵循的流程,不是一个严格精确的执行流程。下面先来看下协程执行过程中的一些关键类的介绍。1. 协程代码块当我们调用 launch() 或 withContext() 等协程构建器函数时,对应的协程代码块会被 Kotlin 编译器转换为一个匿名内部类,这个匿名内部

2022-05-27 11:17:35 5611

原创 探索 Glide 原理

前言1. Glide 基本用法接下来的讲解将基于 Glide 目前的最新版本 4.11。Glide 的使用特别简单,首先添加依赖。然后调用下面这三个方法。with()可以传 Applicaiton、Activity 、Fragment 与 view 等类型的参数,加载图片的请求会与该参数的生命周期绑定在一起。load()可以传图片的网络地址、Drawable 等。into()一般传 ImageView 。2. 内容概览Glide 加载图片大致可分为三个步骤。.

2020-10-14 15:54:42 1784

原创 探索 Android 多线程优化方法

前言1. 基本介绍在我学习 Android 多线程优化方法的过程中,发现我对多线程优化的了解太片面。写这篇文章的目的是完善我对 Android 多线程优化方法的认识,分享这篇文章的目的是希望大家也能从这些知识从得到一些启发。这篇文章分为下面三部分。第一部分第一部分讲的是多线程优化的基础知识,包括线程的介绍和线程调度基本原理的介绍。第二部分第二部分讲的是多线程优化需要预防的一些问题,包括线程安全问题的介绍和实现线程安全的办法。第三部分第三部分讲的是多线程优化可以使用的一些方..

2020-08-17 14:02:34 337

原创 探索 Android启动优化方法

前言1. 启动优化的意义假如我们去到一家餐厅,叫了半天都没有人过来点菜,那等不了多久就没耐心想走了。对于 App 也是一样的,如果我们打开一个应用半天都打不开,那很快的我们也会失去耐心。启动速度是用户对我们应用的第一体验,用户只有启动我们的应用才能使用我们应用中的功能。就算我们应用内部设计得再精美,其他性能优化地再好,如果打开速度很慢的话,用户对我们应用的第一印象还是很差。你可以追求完美,要做到应用在 1 毫秒内启动。但是一般情况下, 我们只要做到超越竞品或者远超竞品,就能在启动速度这一个..

2020-08-17 14:00:49 561

原创 探索 Android 网络优化方法

目录前言1. 网络优化的三个要点1. 多维网络优化应该是多维的,一般情况下,一谈到网络优化,大部分人首先想到的就是流量消耗,但是实际上流量消耗多少只是网络优化的其中一个维度。只对流量消耗一个维度进行优化是不够的,甚至有的团队即便在流量优化上也没有做好,比如对于网络流量的消耗统计不够全面和精确。2. 精准在做网络流量统计时,我们要做精准度量,如果只是获取了具体消耗了多少的值,对于我们定位和解决问题是没有太大的帮助,因为这个值只能表明用户用了多少流量。如果线上用户反馈 App 消耗流量较多,.

2020-08-17 09:03:26 1893

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除