自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

πππ

πππ

  • 博客(14)
  • 资源 (12)
  • 收藏
  • 关注

原创 数据结构(三), 弄懂红黑树(多图警告!!!)

个人博客传送门 红黑树 && BST 红黑树就是在 BST 的基础上加入了一些自己的特征 一、特征 符合 BST 所有特征 节点有两色, 红, 黑 根是黑 所有叶子节点是黑 (叶子是NIL节点) 每个红色节点必须有两个黑节点 任意节点到每个叶子节点的路径都包含相同数量的黑节点 这些特征保证了, 根到叶子节点的最长路径, 最长不会超过最短路径的 2 倍 因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的, 而不同

2021-04-11 18:27:23 216

原创 数据结构(二), AVL平衡二叉树

个人博客传送门 一、须知须会 平衡因子: 二叉树的 左子树 - 右子树 = 高度的差值,在平衡树中可能的值(-1 ,0 ,1) 平衡: 平衡因子 的绝对值小于 2 (下图第一张为平衡树, 第二张为不平衡树) 平衡树且平衡因子==0 非平衡树且平衡因子==-2 树的旋转: 参考维基百科 树的旋转 转轴的移动方向来决定它是左旋还是右旋, 本文中称转轴右移为右旋反之则是左旋 右旋: (Q为树的根节点, P为转轴, 转轴最终被右移) 右旋时, 转轴的右孩子 = 树的根节点;

2021-04-11 18:19:51 135

原创 数据结构(一), 二叉查找树BST

个人博客传送门 一、别名 二叉搜索树, 有序二叉树, 排序二叉树, Binary Search Tree 二、特征 左子树的所有节点的值均小于根节点 右子树下所有节点的值均大于更节点 所有节点的值都不相同 任意节点的左子树和右子树也都是BST 三、节点结构 public static class Node { // 数据区 private int data; // 左节点 private Node left; //

2021-04-11 18:15:32 117

原创 Android Glide 3.7.0 源码解析(九) , gif 的加载实现

个人博客传送门 一、涉及类目 GlideDrawableImageViewTarget.java GifDrawable.java GifFrameLoader.java GifDecoder.java 二、原理概述 老规矩先介绍原理的框架,免得看源代码迷路 GlideDrawableImageViewTarget 会调用加载的 GifDrawable 来启动动画 GifDrawable 会在 draw() 中绘制当前帧, 并委托 GifFrameLoader 去加载下一帧 GifFrameLoader

2021-04-05 20:32:13 420

原创 Android Glide 3.7.0 源码解析(八) , RecyclableBufferedInputStream 的 mark/reset 实现

个人博客传送门 一、mark / reset 的作用 Android Glide 3.7.0 源码解析(七) , 细说图形变换和解码有提到过RecyclableBufferedInputStream 对于 mark(int marklimit) 和 reset() 方法的作用, 本文则是探讨具体的实现思路 mark(int marklimit) 的作用是在流中创建一段起点是 markPos 长度是 markLimit 的可被重复读取区域, 当调用 reset() 方法时流的读取位置会回到 markPos

2021-04-01 14:59:36 452

原创 Android Glide 3.7.0 源码解析(七) , 细说图形变换和解码

概览 Glide 3.7.0 里面涉及的图形变换主要是 大小缩放, CenterCrop , FitCenter, 其中大小缩放是基于Downsampler(解码工具) 实现的, 而剩余两个则是 Transformation(图形变换) 接口的两个实现类. 所以本文主要介绍3点: CenterCrop FitCenter 大小缩放 Android Glide 3.7.0 源码解析 (二) , 从一次图片加载流程看源码文中的流程可以看出是在 DecodeJob 里面进行 解码 --> 图形变换

2021-03-31 17:47:23 394

原创 Android Bitmap(一), 资源重用

一、为什么Bitmap需要资源重用 Android 中图片显示的实体其实是一个 Bitmap 对象, 每次图片显示时, 都会构建一个 Bitmap 对象, 不用时再销毁, 假设, 在一个长列表且列表的每项都有一个图片显示, 持续滑动这个列表, 内存中的行为就是, 持续的创建 Bitmap 对象和产生不用的 Bitmap 对象, 当量级到达一定程度, 会触发 GC, 这样持续滑动界面, 势必会频繁触发 GC, 导致界面卡顿 二、Bitmap 内存管理的演变 以下内容参考官文: 管理位图内存 Androi

2021-03-30 17:21:29 373

原创 Android Glide 3.7.0 源码解析(六) , 缓存结构详述

结构总览 内存缓存是由 LruResourceCache 和 activeResources 组成, 缓存的是 EngineResource 类型 第一级缓存: LruResourceCache 是一个最终是一个 LinkedHashMap 来实现 Lru , 存储的是没有被界面使用的缓存资源, 并由LRU控制缓存大小 第二级缓存: activeResources 是由一个 Map<Key, WeakReference<EngineResource<?>>> 构成, 存

2021-03-27 19:48:51 245

原创 Android Glide 3.7.0 源码解析(五) , 如何获得ImageView的宽高

前言 通过前面的 Android Glide 3.7.0 源码解析 (二) , 从一次图片加载流程看源码 我们知道 Request(真实) 只有在图片组件的大小准备好了才会开始真正的加载 // GenericRequest public void begin() { startTime = LogTime.getLogTime(); if (model == null) { onException(null); return;

2021-03-20 15:13:30 258

原创 Android Glide 3.7.0 源码解析(四), BitmapPool作用及原理

Android 中图片显示的实体其实是一个 Bitmap 对象, 每次图片显示时, 都会构建一个 Bitmap 对象, 不用时再销毁 假设: 一个长列表每项都有个图片需要显示, 我们在快速滑动长列表的时候, 会产生什么? Bitmap 对象被频繁的创建和释放, 导致 GC 频繁 如何解决上述问题? BitmapPool , 一个 Bitmap 的对象池, 让一个新的图片资源复用在旧的 Bitmap对象上, 假设, 长列表一页有 20 个图片资源, BitmapPool 大小也刚好是 20 , 那么当滑动列表

2021-03-17 22:20:58 640

原创 Android Glide 3.7.0 源码解析(三), 生命周期绑定

Android Glide 3.7.0 源码解析(三), 生命周期绑定 如果是主线程就注册创建一个无界面的 Fragment 加到 Fragment / Activity , 依赖这个Fragment 来监听生命周期 如果是非主线程 , 就创建一个 Application 级别的 Lifecycle , 模拟生命周期 在 1. 中创建的 Fragment 可以反馈 内存 和 界面 的 生命周期 , 这就完成了对内存和界面的监听 可以根据 1. 中 Fragment , 来决定是否监控 网络状态 ( 如果界面

2021-03-15 11:24:34 220

原创 Android Glide 3.7.0 源码解析(二), 从一次图片加载流程看源码

Glide.with(activity).load(url).into(imageView); Glide.with 方法, 创建 RequestManager 实例 RequestManager.load 方法, 创建 GenericRequestBuilder 实例, 并打包编/解码, 转码, 图形转换, 下载等工具 解码: File, InputStream 转换成 Bitmap, Drawable 编码: 将数据写入缓存区

2021-03-10 21:41:16 249

原创 github 提速方案, 亲测有效!

一、正常下载 Glide 源代码 git clone https://github.com/bumptech/glide.git 二、提速方案下载 Glide 1. 下载 我们将原本的网站中的 github.com 进行替换为 github.com.cnpmjs.org git clone https://github.com.cnpmjs.org/bumptech/glide.git 2. 查看 origin 配置 git config --list 发现: remote.origin.url

2021-03-08 22:56:31 1026

原创 Android Glide 3.7.0 源码解析(一), 准备工作

Android Glide 3.7.0 源码详解 (一) , 准备工作 Android Glide 3.7.0 源码解析 (二) , 从一次图片加载流程看源码 Android Glide 3.7.0 源码解析(三) , 生命周期绑定 Android Glide 3.7.0 源码解析(四) , BitmapPool作用及原理 Android Glide 3.7.0 源码解析(五) , 如何获得ImageView的宽高

2021-03-08 22:40:30 138

jdk_1_8_linux_x64_.zip

Linux x64 186.06 MB JDK-8u221-Linux的x64.tar.gz 感谢您下载此版本的Java™平台标准版开发工具包(JDK™)。JDK是一个使用Java编程语言构建应用程序,applet和组件的开发环境。 JDK包括用于开发和测试用Java编程语言编写并在Java平台上运行的程序的工具。

2019-07-21

MarkDown编辑器

Typora — a markdown editor, markdown reader.Typora will give you a seamless experience as both a reader and a writer.

2019-04-27

Notepad++(32位+64位)

Notepad++(32位+64位) a free source code editor which supports several programming languages running under the MS Windows environment.

2019-04-27

驱动精灵离线版(内含有线无线网卡)

装机的时候总有没有网卡驱动,需要离线安装,这里提供一个驱动精灵安装包,其内包含了离线版的(有线/无线)网卡驱动

2019-04-27

XMind(破解版)

提供多种思维结构。 XMind 提供各种结构图,比如鱼骨图、矩阵图、时间轴、组织结构图等来帮你更好地理清复杂的想法和事项。多种视觉化的思维呈现方式让你能进行深度的对比分析,更直观地进行里程碑的记录和事项的安排。

2019-04-27

QiuckLook For Windows

QuickLook Bring macOS “Quick Look” feature to Windows

2019-04-27

Listary for windows

Listary is a revolutionary search utility for Windows that makes finding your files and launching applications blazing fast, for casual and power users alike!

2019-04-27

北京+上海地图shp文件

北京+上海地图shp文件

2017-04-21

xUtils-2.6.14.jar

xUtils-2.6.14.jar

2016-10-26

图片高斯模糊

图片高斯模糊

2016-10-08

viewpagerTouchNone

viewpager嵌套viewpager 效果图如下: http://blog.csdn.net/qq_25778369/article/details/52370529

2016-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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