Android 磁盘最近最少缓存实现 – DiskLruCache 源码分析


DiskLruCache 是一个 Android 端使用广泛的磁盘 LRU (最近最少使用)缓存算法的实现库,甚至在 AOSP 中都有使用。

基础使用

为了对整体架构有个印象,方便找分析入口,先看看基本的使用。

实例化:

val cache = DiskLruCache.open(cacheFile, version, valueCount, maxSize)

写入:

val e[......]

>> 接着看呗

Git HTTP+SSH 代理配置

本来是没有什么技术含量的东西。奇怪的是网上答案千篇一律而且大部分都是错的,不知道要坑坏多少人:smiling_imp:。

HTTP 代理

HTTP 代理相对简单

# HTTP 代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080[......]

>> 接着看呗

Android 自定义 View 的默认属性值(四个构造函数的作用)

常见的套路

自定义 View 同学们一定或多或少都接触过,毕竟设计给出的样式往往从来不是系统默认的🙂。 自定义 View 时往往遵守下面这样的套路:

  1. attrs.xml 中声明自定义属性(或使用系统预定义属性),经常用 declare-styleable 包裹起来。
  2. 继承一个 View 并写两个构造函数:constructor(context: Context), constructor[......]

    >> 接着看呗

Android 事件分发机制

Android 事件分发机制一直让人头痛,之前也是面向 GitHub 编程得过且过。今天下定决心了解一下,以便后面自己定制 View 效果。Android 触摸事件有三个基本类型:ACTION_DOWN, ACTION_MOVE, ACTION_UP,后两者的传递顺序取决于 DOWN 的传递结果,所以就从 ACTION_DOWN 开始分析。

ACTION_DOWN

全景

借用一张下面参考[……]

>> 接着看呗

Jenkins+Github 持续测试

说明下环境:

  • Windows 10 (因为还需要跑其他一些东西)
  • Jenkins 2.204.1 LTS
  • 内置 Jenkins war 2.217

配置 GitHub

鉴权

Jenkins 的安装过程很简单就不写了。首先需要安装 GitHub Plugin 插件,如果安装 Jenkins 时选择了安装常用插件那么应该已经装好了,否则就去手动安装一下。

为了和 GitHub 账户连接,[……]

>> 接着看呗

凛冬的成都白色的九寨

宗旨声明与安全提醒

  • 所提所有商家为亲自尝试后的推荐,无其他利益关系,你应当始终根据自身偏好自主选择适合的消费。
  • 全程有意地规避了网红景点与多数历史文化景点。
  • 冬天景区效果受天气影响较大。
  • 非穷游攻略。(大部分钱花在了交通上,三飞一高铁)

⚠️🚁无人机安全提醒

在气温较低且空气湿度较大(有雾)的地区请勿使用无人机。如果坚持使用必须先升空观察至少1分钟。因为此环境下螺旋桨会结冰[……]

>> 接着看呗