<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gzsuperwin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gzsuperwin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gzsuperwin]]></copyright><item><title><![CDATA[探索 Jetpack PreferenceDataStore 原理]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/132098357</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/132098357</guid><author>gzsuperwin</author><pubDate>Fri, 04 Aug 2023 10:21:59 +0800</pubDate><description><![CDATA[Jetpack DataStore 是一种数据存储解决方案，可以和 SharedPreferences 一样存储键值对，还可以用 Protocol Buffers 协议来存储类型化对象数据]]></description><category></category></item><item><title><![CDATA[探索 Kotlin 协程 withTimeout 原理]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/131468500</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/131468500</guid><author>gzsuperwin</author><pubDate>Fri, 30 Jun 2023 07:56:58 +0800</pubDate><description><![CDATA[在事件轮询器中，有一个专门用来轮询任务的线程，并且维护了一个延时任务队列和一个普通任务队列，当到了延迟的时间后，没有任务的时候，负责轮询任务的线程就会被阻塞，直到下一个延时任务的时间到了后，就会被唤醒，这时执行 延时任务，由于在前面的第一个单测例子中，在 Kotlin 的官方文档中，说到了协程的取消是协作完成的，这也是为什么协程叫协程，协程的代码必须进行协作才能被取消，而 withTimeout 也是通过这套取消协作机制完成的，比如下面的例子中，在打印第四个数字的时候，就在执行超时后抛出了异常。]]></description><category></category></item><item><title><![CDATA[探索 Kotlin 协程原理]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/125000465</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/125000465</guid><author>gzsuperwin</author><pubDate>Fri, 27 May 2022 11:17:35 +0800</pubDate><description><![CDATA[接下来跟大家分享一下我在了解 Kotlin 协程实现的过程中理解的一些概念，如果你发现哪些地方我说错了的话，欢迎提出你的理解。
1. Kotlin 协程原理概述

Kotlin 协程的大致的执行流程如上图所示，这个流程是各种类型的协程执行时都大致遵循的流程，不是一个严格精确的执行流程。
下面先来看下协程执行过程中的一些关键类的介绍。
1. 协程代码块
当我们调用 launch() 或 withContext() 等协程构建器函数时，对应的协程代码块会被 Kotlin 编译器转换为一个匿名内部类，这个匿名内部]]></description><category></category></item><item><title><![CDATA[探索 Glide 原理]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/109075916</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/109075916</guid><author>gzsuperwin</author><pubDate>Wed, 14 Oct 2020 15:54:42 +0800</pubDate><description><![CDATA[前言
1. Glide 基本用法
接下来的讲解将基于 Glide 目前的最新版本 4.11。
Glide 的使用特别简单，首先添加依赖。

然后调用下面这三个方法。



with()
可以传 Applicaiton、Activity 、Fragment 与 view 等类型的参数，加载图片的请求会与该参数的生命周期绑定在一起。


load()
可以传图片的网络地址、Drawable 等。


into()
一般传 ImageView 。


2. 内容概览

Glide 加载图片大致可分为三个步骤。
.]]></description><category></category></item><item><title><![CDATA[探索 Android 多线程优化方法]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/108054605</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/108054605</guid><author>gzsuperwin</author><pubDate>Mon, 17 Aug 2020 14:02:34 +0800</pubDate><description><![CDATA[前言
1. 基本介绍
在我学习 Android 多线程优化方法的过程中，发现我对多线程优化的了解太片面。
写这篇文章的目的是完善我对 Android 多线程优化方法的认识，分享这篇文章的目的是希望大家也能从这些知识从得到一些启发。
这篇文章分为下面三部分。


第一部分
第一部分讲的是多线程优化的基础知识，包括线程的介绍和线程调度基本原理的介绍。


第二部分
第二部分讲的是多线程优化需要预防的一些问题，包括线程安全问题的介绍和实现线程安全的办法。


第三部分
第三部分讲的是多线程优化可以使用的一些方..]]></description><category></category></item><item><title><![CDATA[探索 Android启动优化方法]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/108054572</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/108054572</guid><author>gzsuperwin</author><pubDate>Mon, 17 Aug 2020 14:00:49 +0800</pubDate><description><![CDATA[前言
1. 启动优化的意义
假如我们去到一家餐厅，叫了半天都没有人过来点菜，那等不了多久就没耐心想走了。
对于 App 也是一样的，如果我们打开一个应用半天都打不开，那很快的我们也会失去耐心。
启动速度是用户对我们应用的第一体验，用户只有启动我们的应用才能使用我们应用中的功能。
就算我们应用内部设计得再精美，其他性能优化地再好，如果打开速度很慢的话，用户对我们应用的第一印象还是很差。
你可以追求完美，要做到应用在 1 毫秒内启动。
但是一般情况下， 我们只要做到超越竞品或者远超竞品，就能在启动速度这一个..]]></description><category></category></item><item><title><![CDATA[探索 Android 网络优化方法]]></title><link>https://blog.youkuaiyun.com/gzsuperwin/article/details/108048576</link><guid>https://blog.youkuaiyun.com/gzsuperwin/article/details/108048576</guid><author>gzsuperwin</author><pubDate>Mon, 17 Aug 2020 09:03:26 +0800</pubDate><description><![CDATA[目录

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