随笔博文

  • 这10张图拿去,别再说学不会RecyclerView的缓存复用机制了!

    ViewPager2是在RecyclerView的基础上构建而成的,意味着其可以复用RecyclerView对象的绝大部分特性,比如缓存复用机制等。作为ViewPager2系列的第一篇,本篇的主要目的是快速普及必要的前置知识,而内容的核心,正是前面所提到的RecyclerView的缓存复用机制。RecyclerView,顾名思义,它会回收其列表项视图以供重用。具体而言,当一个列表项被移出屏幕后,R

    2022-12-20 michael007js 58

  • 为什么LiveData的观察者必须处于主线程中

    前言在我的上一篇*为什么Google要将LiveData设计成粘性的*文章中,有一位爱思考的小伙伴留下了这么一个评论。在看到这个评论后,我产生了两个疑问?LiveData的观察者对象必须得处于主线程中吗?究竟是什么原因让Google这么设计,正是这位小伙伴所述的原因吗?由此有了这篇文章,再次感谢这位小伙伴的留言探讨。观察者对象必须得处于主线程中吗?先说答案:是的,LiveData的观察者对象必须处

    2022-12-20 michael007js 135

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

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

    2022-12-20 michael007js 99

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

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

    2022-12-20 michael007js 83

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

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

    2022-12-20 michael007js 86

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

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

    2022-12-20 michael007js 42

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

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

    2022-12-16 michael007js 80

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

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

    2022-12-16 michael007js 50

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