一个有思想的搬运工

我浑浑噩噩,却又不甘落寞

自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

View 工作原理笔记整理

主要摘抄自:《Android 开发艺术探索》 参考文章:https://lrh1993.gitbooks.io/android_interview_guide/content/android/basis/custom_view.html 1、View 的工作流程 View 的工作流程主要指 me...

2019-09-16 23:45:19

阅读数 46

评论数 0

点击事件分发机制 关键源码笔记

请注意,涉及到的源码 SDK 版本为 27,不同版本可能存在偏差,一切以具体的源码为准。 文字部分主要参考自 《Android 开发艺术探索》,源码部分的解读主要参考自 Android 触摸事件机制(四) ViewGroup中触摸事件详解,但是也加入了自己的思考。 首先,需要明确的就是,同一个事...

2019-09-09 22:47:31

阅读数 6938

评论数 2

热修复之类加载方案 笔记整理

热修复分为:代码修复、资源修复、动态链接修复 其中,代码修复又分为:类加载方案、底层替换方案、Instant Run 方案。 本篇关于代码修复的类加载方案的笔记整理。 涉及源码版本为 Android 7.1.1。 参考文章: 1、Android热更新实现原理浅析 2、《Android 进阶解密》 ...

2019-09-07 22:07:00

阅读数 17

评论数 0

【LeetCode】115. 不同的子序列

规定 : (1)S(0, i-1) 表示 S 的前 i 个字符组成的字符串,因此基数为 0,所以最后一个字符即第 i-1 个。 (2)S[i-1] 即表示 S 的第 i-1 个字符。 使用动态规划来处理,则有 dp[i][j] 代表 S(0, i-1) 与 T(0, j-1) 对应的解。 对于 ...

2019-08-28 11:54:22

阅读数 15

评论数 0

【笔记整理】Glide 4.9.0 关于数据加载之后的回调过程

当 Glide 从网络加载原始的数据的时候,会来到 HttpUrlFetcher#loadData() 方法,在 占位符 中说过,当加载完成后,会通过 callback.onDataReady() 方法将结果回传,最终会回溯到 DecodeJob#onDataFetcherReady 这个方法中,...

2019-08-27 08:46:29

阅读数 41

评论数 0

【笔记整理】Glide 4.9.0 关于监听生命周期

对于 with() 方法传递的参数(包括 Activity、Fragment、View 等),如果对应的 context 为非 Application 类型的,Glide 会为作为参数传递进with() 方法的 Activity 或者 Fragment 添加一个隐藏的且隐藏的(即没有 UI 的) ...

2019-08-27 00:57:17

阅读数 23

评论数 0

【笔记整理】Glide 4.9.0 的缓存机制

Glide 类中与内存缓存有关的变量Glide#memoryCache,如果用户没有通过 GlideBuilder#setMemoryCache(MemoryCache) 设置,则默认为 LruResourceCache(继承自 LruCache)。 1. 从内存缓存读取图片资源 在 Engin...

2019-08-27 00:54:06

阅读数 22

评论数 0

【笔记整理】Glide 4.9.0 执行流程源码解析

对于源码的分析,是基于 Glide 最简单的使用的流程进行的: Glide.with(MainActivity.this).load("url of image resource").into(view); 1. with() 方法 with() 方法会传入当前 activi...

2019-08-27 00:33:35

阅读数 20

评论数 0

【LeetCode】135. 分糖果

参考链接:leetcode 135. Candy 分糖果 + 很经典的贪心算法 根据题意,孩子 X 分配的糖果与第 X-1 和 X+1 个孩子的评分都有关系,即与前后孩子的评分有关系。 因此可以分为两个阶段来处理。 第一阶段,对于孩子 i,只去比较他与前一个孩子的比分,来确定自己需要分配的糖果数量...

2019-08-26 21:09:29

阅读数 11

评论数 0

【LeetCode】134. 加油站

(注意题目给出的条件) 1. 暴力破解 如果对于起点 index 有 gas[index] - cost[index] < 0,则 index 肯定无法作为起点。因此肯定是从 start = x && gas[x] - cost[x] &gt...

2019-08-24 11:32:05

阅读数 40

评论数 0

【LeetCode】55. 跳跃游戏

解法 1 从左到右遍历数组,假设当 index = x1 时,nums[x1] = 0,则继续向右遍历,直接遇到不为 0 的元素,假设此时 index = x2。 且在遍历的时候,记录 index 在 x1 之前的元素,有 maxIndex = index+nums[index](maxIndex...

2019-08-22 22:45:53

阅读数 14

评论数 0

简单工厂、工厂方法、抽象工厂、Builder 模式 笔记整理

1、简单工厂模式 首先,需要表明的是,简单工厂模式并不是 23 种设计模式之一。它是工厂方法模式的一个弱化版本。 且简单工厂模式又称为静态工厂模式。 在该模式中,一般不定义工厂抽象类,而是直接将工厂类的工厂方法改为静态方法(因此才有静态工厂你模式的说法)。 静态的工厂方法可以根据参数的不同返回不同...

2019-08-12 23:52:01

阅读数 12

评论数 0

HTTPS 笔记整理

主要摘抄自:SSL/TLS 协议运行机制的概述 1. 作用 不使用 SSL/TLS 的 HTTP 通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1) 窃听风险(eavesdropping):第三方可以获知通信内容。 (2) 篡改风险(tampering):第三方可以修改通信内容。 ...

2019-08-11 15:07:12

阅读数 16

评论数 0

TCP 与 UDP 笔记整理

对于 TCP 或者 UDP,需要跨越不同主机,并将数据传递到不同的进程(即应用程序)。实现主机的跨越是基于 IP,而识别进程是基于端口号。 1. 连接性 在网络层,无连接服务可能意味着属于同一报文的不同数据报有不同路径。 在传输层,我们不关心分组的物理路径(假设两个传输层之间有一条逻辑连接)。...

2019-08-07 23:14:12

阅读数 13

评论数 0

TCP 笔记整理

1. TCP 首部格式 1.1 序列号(Sequence Number) 字段长 32 位,指发送数据的位置(序号)。每发送一次数据,就累加一次该数据 字节数 的大小。 序列号初始值为建立连接时由计算机生成的随机数,通过 SYN 包传给接收端主机。 此外,在建立间接时和断开连接时发送的 SYN ...

2019-08-07 08:46:10

阅读数 19

评论数 0

根 Activity 启动过程笔源码分析笔记

源码基于 Android 7.1.2 知识基础:Binder 机制 主要参考文章: Android 7.1.2(Android N) Activity启动流程分析,以及 《Aandroid 进阶解密》。 先放一个整体的建议流程图(图片来源互联网,如涉及版权问题,请私聊本人,将及时处理): 概述...

2019-07-04 00:27:57

阅读数 20

评论数 0

关于 <activity> 的 taskAffinity 属性一些情景测试记录

下列场景的测试环境: 1、模拟机,Android 版本 8.0.0 2、开发环境: compileSdkVersion 28 targetSdkVersion 28 1、taskAffinity 用于设置 activity 对于 Task 的亲和力,而 Task 的亲和关系由 Task 中的根...

2019-06-16 21:19:33

阅读数 44

评论数 0

实际验证 Android Binder 本身支持传输 Serializable 类型的数据传输

参考文章: 《Android 艺术探索》 注意这里说的是 Binder 本身,即手动实现 Binder,而不是基于 AIDL(Android 接口定义语言)。 在 AIDL 文件中,只支持以下几种类型: 1、基本数据类型 2、 String 和 CharSequence 3、只支持 ArrayLi...

2019-06-12 19:27:22

阅读数 87

评论数 0

Android IPC 之 Messenger 笔记整理

知识前提:Binder 理论部分笔记整理,以及 AIDL 的相关知识。 参考文章:《Android 艺术探索》 1、概述 Android IPC 的途径之一就是使用 Messenger, 它可以在不同进程中传递 Message 对象,在 Message 中放入需要传递的数据,就可以实现在进程间传...

2019-06-11 19:20:45

阅读数 26

评论数 0

Android BroadcastReceiver 相关笔记整理

涉及源码版本为 Android API 25 参照文章: 1、《Android 开发艺术探索》 2、BroadcastReceiver 全方位解析 1、广播接收器的注册 1.1 静态注册 在 AndroidManifest.xml 里通过标签声明: &lt;receiver // 定...

2019-06-09 15:46:38

阅读数 57

评论数 0

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