phantomVK

Cease to struggle and you cease to live.

Glide -- ResourceTranscoder

源码版本 Glide 4.8.0 ResourceTranscoder ResourceTranscoder 是 Glide 内类型转换器的抽象接口,表示资源从一种类型转换为另一种类型。泛型 Z 表示转换前资源的原始类型,泛型 R 表示资源转换后的目标类型。 1 2 3 4 5 6 public interface ResourceTranscoder<Z, R> { ...

Flutter基础-Dart的配置运行

简介 相比 Java、Kotlin、Go 或 JavaScript,Dart 在开发语言中小众且冷门。而人们对 Dart 的关注度逐渐提升是因为 Flutter 的日渐兴起,其主要编程语言正是 Dart。Dart 和 Go 都是谷歌亲儿子,我个人短时间所产生的熟悉感,来自 Dart 的语法和 Kotlin 高度相像。两者都是面向对象、单继承、强类型且支持自动类型推断的语言。 现时 Dar...

禁止Windows10自动安装驱动

操作步骤: 1、右键开始菜单,选择 “运行” ,输入命令 “gpedit.msc” 并确定; 2、弹出本地组策略编辑器,按照下图路径展开: 3、进入 “Windows更新不包括驱动程序” 选项。双击打开,修改为已启动并确定即可。

Android源码系列(19) -- AsyncLayoutInflater

一、类签名 这是用于异步填充 View 的帮助类。在主线程构建 AsyncLayoutInflater 实例,并调用方法 inflate(int, ViewGroup, OnInflateFinishedListener)。视图填充完毕后在主线程回调 OnInflateFinishedListener 通知调用者。 1 public final class AsyncLayoutInfl...

Android源码系列(18) -- DiskLruCache

一、类签名 1.1 特性 这是基于文件系统的 LRU(Least Recently Used) 缓存类,并支持控制空间使用量。 每个缓存条目都有一个字符串键和固定数量的值。每个键必须满足正则表达式:[a-z0-9_-]{1,120}。值都是字节序列,可通过流或文件的方式访问,长度在0到 Integer.MAX_VALUE 之间。 1 public final class DiskLr...

Java源码系列(21) -- Number

类定义 抽象类 Number 代表所有能从 数值型 转换到 基本类型 平台类的父类。这些基本类型包括 byte、double、float、int、long、short。 1 public abstract class Number implements java.io.Serializable 从特定 Number 实现的数值型到给定基本类型转换的特定语义,由所定义的 Number ...

空对象模式

空对象模式(Null Object Pattern),指通过特定的、没有负载有效数据的空对象,表示实例不存在的默认状态。可用在不能接受 null 的逻辑,或者利用空对象实现区别于实例为空的应用场景。 这是一般场景的用户模型,包含用户id和昵称: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class User(private val userId: St...

HTTP/2约束Header大小写

起因 晚上 Android 客户端遇到奇怪的问题:在某台新配的服务器上,出现应用层获取 Header 自定义键 Authorization 时出现其值为空,但存在键 authorization 。 调查 通过抓包发现几个疑点: 问题以前没有出现,业务也是正常的,唯独连接到这台服务器会出现异常; 同一套代码,仅对这台服务器发出的请求行没有HTTP版本号,如:HTTP/1.1;...

EventBus源码剖析(5) -- Poster

文章列表: EventBus源码剖析(1) – 订阅注册与注销 EventBus源码剖析(2) – EventBusBuilder EventBus源码剖析(3) – 线程模式 EventBus源码剖析(4) – 订阅记录 EventBus源码剖析(5) – Poster 一、Poster 这是所有 Poster 实现的共同接口,包含一个抽象方法。子类实现该抽象方...

EventBus源码剖析(4) -- 订阅记录

文章列表: EventBus源码剖析(1) – 订阅注册与注销 EventBus源码剖析(2) – EventBusBuilder EventBus源码剖析(3) – 线程模式 EventBus源码剖析(4) – 订阅记录 EventBus源码剖析(5) – Poster 一、Subscription 订阅者进行注册时,EventBus 会扫描整个订阅者类,获取接...

EventBus源码剖析(3) -- 线程模式

文章列表: EventBus源码剖析(1) – 订阅注册与注销 EventBus源码剖析(2) – EventBusBuilder EventBus源码剖析(3) – 线程模式 EventBus源码剖析(4) – 订阅记录 EventBus源码剖析(5) – Poster 一、简介 EventBus 消息支持通过不同线程模式发送并调起目标方法,以满足 Androi...

EventBus源码剖析(2) -- EventBusBuilder

文章列表: EventBus源码剖析(1) – 订阅注册与注销 EventBus源码剖析(2) – EventBusBuilder EventBus源码剖析(3) – 线程模式 EventBus源码剖析(4) – 订阅记录 EventBus源码剖析(5) – Poster 前言 上期文章 EventBus源码剖析(1) – 注册与注销订阅 介绍了订阅者向 Even...

EventBus源码剖析(1) -- 订阅注册与注销

文章列表: EventBus源码剖析(1) – 订阅注册与注销 EventBus源码剖析(2) – EventBusBuilder EventBus源码剖析(3) – 线程模式 EventBus源码剖析(4) – 订阅记录 EventBus源码剖析(5) – Poster 一、简介 1.1 特性 EventBus 是为 Android 而设的 publish/s...

Java源码系列(20) -- Runnable & Callable

Runnable Runnable 接口由需被线程执行的类继承实现,实现类需实现接口中无参数的方法 run。 此接口为那些希望在激活时执行代码的对象提供公共协议。例如 Thread 实现 Runnable 接口,当 Thread 激活之后表示线程已经启动且尚未停止。 1 2 3 4 5 6 @FunctionalInterface public interface Runnable {...

Java源码系列(19) -- LinkedBlockingDeque

一、类签名 本类是基于链节点的、可选边界的阻塞双端队列。指定可选的容量避免队列过度扩展。 1 2 3 public class LinkedBlockingDeque<E> extends AbstractQueue<E> implements BlockingDeque<E>, java.io.Serializable 如果构造方...