自定义博客皮肤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 233

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

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

2021-04-11 18:19:51 144

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

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

2021-04-11 18:15:32 129

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

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

2021-04-05 20:32:13 439

原创 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 470

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

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

2021-03-31 17:47:23 417

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

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

2021-03-30 17:21:29 391

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

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

2021-03-27 19:48:51 258

原创 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 268

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

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

2021-03-17 22:20:58 660

原创 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 232

原创 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 266

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

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

2021-03-08 22:56:31 1037

原创 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 149

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关注的人

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