自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

转载 类加载机制 -- 双亲委派机制

面试官:说说双亲委派模型?在说双亲委派模型之前首先得先了解一下类加载阶段。类的加载阶段类加载阶段分为加载、连接、初始化三个阶段,而加载阶段需要通过类的全限定名来获取定义了此类的二进制字节流。Java特意把这一步抽出来用类加载器来实现。把这一步骤抽离出来使得应用程序可以按需自定义类加载器。并且得益于类加载器,OSGI、热部署等领域才得以在JAVA中得到应用。在Java中任意一个类都是由这个类本身和加载这个类的类加载器来确定这个类在JVM中的唯一性。也就是你用你A类加载器加载的com.aa.ClassA

2021-11-29 16:02:11 1516

原创 Glide源码解析4 -- Glide源码总纲

一 源码分析根据前面即便,想来对Glide源码已经有了初步了解,这篇是最后篇,主要对前面几篇的源码进行总结,从Glide的流式调用来分析:Glide.with(this).load(url).into(imageView);1.1 with()这个方法传入的是上下文context,主要是创建Clide对象和将Glide与传入的context进行生命周期的绑定1.1.1 重要对象名1.1.2 具体源码Glide.javapublic class Glide { ... /

2021-11-24 17:30:43 239

原创 Glide源码解析3 -- 缓存功能

一 前言我们知道,Glide的一大优势就是它的缓存功能是它的一大优势之一,虽然其他图片框架也有缓存功能比如Picasso,但是Picasso只能缓存原始图片,而Glide却可以缓存多种规格的图片,也就是说可以通过ImageView的大小来缓存相应的图片大小;同时通过API灵活的制定缓存策略,实现高效缓存。福利:这里附上各个图片框架的对比图二 缓存机制简介2.1 缓存对象Glide缓存对象分为两种,也就是上面提到的分别是原始图片和经过转换后的图片:原始图片:就是图片源的初始大小和分辨率转换后的

2021-11-23 17:47:13 1756

转载 Android DiskLruCache磁盘缓存

一 概述记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时。对此,Google又提供了一套硬盘缓存的解决方案:DiskLruCache(非Google官方编写,但获得官方认证)。只可惜,Android Doc中并没有对DiskLru

2021-11-22 16:12:58 555

转载 Android数据加密之MD5加密

一 前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法。二 什么是MD5加密?MD5英文全称“Message-Digest Algorithm 5”,翻译过来是“消息摘要算法5”,由MD2、MD3、MD4演变过来的,是一种单向加密算法,是不可逆的一种的加密方式。其他几种加密算法:Android数据加密之Rsa加密Android数据加密之Aes加密Android数据加密之Des加密Android数据加密之Base64编码算法And

2021-11-22 11:18:00 1797

转载 LruCache原理解析

一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是最近最少使用的算法,它的核心思想是当缓存满时,会优先淘汰那些最近最少使用的缓存对象。采用LRU算法的缓存有两种:LrhCache和DisL

2021-11-19 15:56:47 2327

转载 keySet()和entrySet()的区别

Map集合中value()方法与keySet()、entrySet()区别在Map集合中values():方法是获取集合中的所有的值----没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。keySet():迭代后只能通过get()取keyentrySet(): Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射

2021-11-19 11:14:34 5452

原创 Glide源码解析2 -- 生命周期原理

一 概述Glide 中一个重要的特性就是Request可以绑定Activity或者fragment的onStart而resume,onStop而pause,onDestroy而clear,所以Glide可以节约流量内存,防止内存泄露,但是要注意不要传入在with()方法里传入application,不然就没办法对生命周期进行管理了。二 核心类RequestManager:实现了LifeCycleListener,主要作用是结合Activity或者Fragment的生命周期,对Request进行管理,

2021-11-17 17:27:34 1729

原创 Gllide源码解析1 -- Requset请求的创建到发送的全过程

一 Glide整体流程图Glide源码非常复杂,如果不带目的的去看源码,我相信很快你就晕了,我建议还是带问题的去看源码比较容易的,不然你很容易迷糊的二 Requset的创建和发送问题:Glide的那些图片请求都去了那里?我们先来看一下Glide的简单使用:RequestManager resquestManager = Glide.with(this); DrawableTypeRequest<Integer> drawableTypeRequest = resquestMa

2021-11-16 17:48:42 1224

原创 Glide框架分析----简单用法

一 Glide用法及介绍1.1 什么是Glide?Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中。1.2 Glide解决什么问题?Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗。1. 3 Glide的优缺点?1.3.1 优点多样化媒体加载Glide

2021-11-16 16:40:29 1402

原创 Android的事件分发机制(跟随源码一步一步解析)

一 事件的产生与起始我们在点击手机的时候,屏幕下的电容传感器就会把坐标通过模数转换成具体的数字,然后通过android的linux层里面的JNI进行封装,最终把这么具体的坐标值和动作封装到PhoneWindowService里的一个队列,然后依次在这个队列取出event,分发给Activity的dispathTounchEvent这个方法。我们做android开发的只需要了解事件分发从Actiivty开始就行了,前面的比较底层就不深入研究了。二 事件调用的方法我们都知道,事件分发的难点其实就是搞懂事件

2021-11-03 16:31:04 1455

MyPressSoftWare

MyPressSoftWare是一款简洁易用的压缩软件,可以用来压缩多种格式的视频,包括AVI、WMV、MPG、MPEG、DAT、3GP、MP4、RM、VOB、RMVB、MOV、FLV、MKV等,满足日常的视频压缩需求。 且软件支持批量压缩、离线压缩,还有多种压缩模式可以选择,除了普通压缩、清晰度优先或极限压缩等快捷方式外,还可以自定义压缩的参数,满足我们的压缩需求。 现可用于MacOS X、Linux和Windows系统,它的主要功能是转化几乎任何格式的视频,同时也包括视频压缩功能,但输出的格式少,仅支持mkv、mp4和webm。

2023-02-01

空空如也

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

TA关注的人

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