Git 与 Gerrit

为什么需要版本控制系统,我想点进这篇文章的读者应该都已经对这个问题了然于胸,所以不再废话。
我们会从版本是控制系统的历史发展开始着眼,到分布式系统仓库的概念,以及从仓库之间的数据传输协议,到最后的仓库的权限控制系统 Gerrit 一一讲过,来理解这些系统的使用方式和设计理念。

阅读更多

invalidate 三部曲序

由于整个invalidate()周期较长,继续深入会涉及屏幕刷新等底层知识,所以我们会分为三个部分来讲,分别为View发起绘制、系统处理绘制请求的逻辑、View执行真实绘制。

阅读更多

为什么是VSYNC

单缓冲区

显示器刷新的频率决定了人肉眼可感受的流畅度,刷新频率太低会导致出现PPT效果,刷新频率太高又没有太高的必要,所以显示器一般的刷新频率为60Hz,人眼可感知的最低限度,即1秒刷新60帧,也就是显示器会1秒从显卡中读取66帧的数据显示到屏幕上,那么这些数据是从哪里来的呢?

阅读更多

触摸事件分析

概述

初始化

每一个事件流,都是以ACTION_DOWN作为开始,以ACTION_UP或ACTION_CANCEL作为结束
在处理开始前,需要做一个安全处理,即是否有不可见的window覆盖其上,防止有恶意软件劫持用户输入事件

阅读更多