我的博客

  • 关于ViewModel的这几个问题,你都知道吗?

    前言作为一名Android开发者,如果你熟悉MVVM架构,熟悉Jetpack组件,那么相信你肯定使用过ViewModel。正如它的名字一样,它是Google推出的一个类,方便我们实现MVVM架构中的ViewModel层。我们在其中处理View层所需的数据,然后在特定条件下通知View层进行UI更新。正如官方所介绍:ViewModel 类以注重生命周期的方式存储和管理界面相关的数据。ViewMode

    2022-12-20 michael007js 192

  • 为什么Google要将LiveData设计成粘性的

    前言相信很多人在职业生涯的面试过程中都被问过一个问题?面试官:我看你简历上有写 LiveData,那你能说说 LiveData 是粘性的吗?这确实是一个值得深入思考的知识点,今天就让我们站在Google设计者的角度来深入学习一下LiveData。LiveData是粘性的吗?关于这个问题,我们首先应该知道,粘性是什么意思?不知道你对EventBus熟不熟悉,我第一次接触粘性这个概念,就来自于Even

    2022-12-20 michael007js 181

  • EventBus 源码解析(很细 很长)

    前言相信大家都用过EventBus这个开源库,它基于发布/订阅者模式用于组件间的沟通,解耦合避免出现回调地狱,使用起来十分简单也很好用。这样的开源库是很值得我们学习的,今天就来学习一下他的源码与设计思想。 使用方法使用方法很简单,按照官方文档介绍,分为三个步骤。步骤1:定义事件public static class MessageEvent { }复制代码步骤2:准备订阅者定义订阅方法,来处理收到

    2022-12-20 michael007js 170

  • 我尝试以最简单的方式帮你梳理 Lifecycle

    前言我们都知道 Activity 与 Fragment 都是有生命周期的,例如:onCreate()、onStop() 这些回调方法就代表着其生命周期状态。我们开发者所做的一些操作都应该合理的控制在生命周期内,比如:当我们在某个 Activity 中注册了广播接收器,那么在其 onDestory() 前要记得注销掉,避免出现内存泄漏。生命周期的存在,帮助我们更加方便地管理这些任务。但是,在日常开发

    2022-12-20 michael007js 118

  • 安卓APP全局黑白化实现方案

    在清明节时各大APP都会进行黑白化处理,当时在接到这个需求的时候感觉好麻烦,是不是又要搞一套皮肤?然而在一系列搜索之后,找到了两位大神(鸿洋、U2tzJTNE)的实现方案,其实相当的简单!让我们一起站在巨人的肩膀上来分析一下原理,并思考会不会有更简便的实现?一、原理两位大神的置灰方案是相同的,都能看到一段同样的代码:Paint mPaint = new Paint();ColorMatrix mC

    2022-12-16 michael007js 159

  • 夸夸其谈,简单说说HTTP的优化历程

    无论何时,只要去做网络请求相关的事情,都离不开HTTP(超文本传输)协议,它是Web上任何数据交换的基础,同时也是一个客户端-服务器协议;这些年间,HTTP经历很多变化,也有助于塑造其灵活性,下面我们来简单谈谈HTTP在各个版本做了哪些改变通过本文,你将了解学习到如下内容HTTP这些年来,在迭代过程做了哪些优化,以及存在哪些不足?HTTP0.9、Http1.0和Http1.1、SPDY及2.0、Q

    2022-12-16 michael007js 146

  • Flow是如何解决背压问题的

    前言随着时间的推移,越来越多的主流应用已经开始全面拥抱Kotlin,协程的引入,Flow的诞生,给予了开发很多便捷,作为协程与响应式编程结合的流式处理框架,一方面它简单的数据转换与操作符,没有繁琐的操作符处理,广受大部分开发的青睐,另一方面它并没有响应式编程带来的背压问题(BackPressure)的困扰;接下来,本文将会就Flow如何解决背压问题进行探讨关于背压(BackPressure)背压问

    2022-12-16 michael007js 213

  • 日常思考,目前Kotlin协程能完全取代Rxjava吗

    前言自从jetbrains公司提出Kotlin协程用来解决异步线程问题,并且衍生出来了Flow作为响应式框架,引来了大量Android开发者的青睐;而目前比较稳定的响应式库当属Rxjava,这样以来目的就很明显了,旨在用Kotlin协程来逐步替代掉Rxjava;仔细思考下,真的可以完全替代掉Rxjava么,它的复杂性和多样化的操作符,而协程的许多API仍然是实验性的,目前为止,随着kt不断地进行版

    2022-12-16 michael007js 179

首页
关于博主
我的博客
搜索