Sai

我有一壶酒 足以慰风尘


  • 首页

  • 标签

  • 分类

  • 归档

  • Android

  • Java

  • Kotlin

  • Git

  • Hexo

  • 关于

Retrofit-动态代理

发表于 2020-05-20 | 分类于 Android

代理模式(Proxy)

1.Java中常见的有三种代理模式,静态代理、动态代理、CGLIB。

阅读全文 »

Glide中的GroupedLinkedMap

发表于 2020-05-19 | 分类于 Android

BitmapPool

1.Glide对图片做了很好的缓存实现,也是基于Lru的思想来实现的。而主要的实现类在GroupedLinkedMap中,另外需要注意的是,这里保存的是Bitmap的尺寸信息并不是具体的Bitmap对象。注释里也给出了相应的说明。
2.接口BitmapPool的实现类LruBitmapPool处理了图片的缓存操作以及具体的逻辑,Lru思想的具体实现在GroupedLinkedMap中。

阅读全文 »

Glide中的缓存策略

发表于 2020-05-13 | 分类于 Android

先来看看LinkedHashMap

1.Glide的LruCache基于LinkedHashMap实现,最近最少使用,我们需要关心的是如何对数据进行保存删除,并按照这个策略实现存储的。
2.LinkedHashMap中几个重要方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* The head (eldest) of the doubly linked list.
*/
//这里定义了头部节点,按照注释即为最不常用的
transient LinkedHashMapEntry<K,V> head;

/**
* The tail (youngest) of the doubly linked list.
*/
//同样的尾节点,即最近使用的
transient LinkedHashMapEntry<K,V> tail;
//是否排序,默认是false的
final boolean accessOrder;

阅读全文 »

Android中的动画

发表于 2020-05-11 | 分类于 Android

帧动画

1.顾名思义,将动画拆分成一帧一帧的去加载(drawable文件下)。但是同样伴随一个问题OOM,如果图片量过于多,一次性加载到内存中必然会有OOM的风险。
2.通过标签animation-list将动画组合,开启必要的属性如:是否循环,每帧的时间,最后通过AnimationDrawable开启与关闭回收。
3.对于OOM的问题,首先应该考虑到的是对BitMap进行内存复用,逐一加载图片(避免一次性加载所有的图片到内存中)。思路

补间动画

1.视图动画,可作用与视图控件(不包含颜色、背景、长度等),视图动画分为四种:

Translate:平移动画
scale: 缩放动画
rotate:旋转动画
alpha: 透明度动画

2.不写了,这么简单的东西写锤子。。。。。

三个整数之和

发表于 2020-05-08 | 分类于 Java

描述

1.给定一个包含n个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。

阅读全文 »

MVC、MVP、MVVM

发表于 2020-05-07 | 分类于 Android

MVC

1.Model、View、Controller,在Android中Activity以及Fragment相当于这里的Controller,布局文件Layout相当于View,而Model相当于数据库的数据读取,网络数据的获取对应的模型。Controller作为一个媒介,处于View与Model之间,而Model与View有着紧密的联系,耦合性很高。

阅读全文 »

Activity启动模式

发表于 2020-05-07 | 分类于 Android

前述

1.三个Activity,A、B、C、其中AB的启动模式为standard,C的启动模式为singleInstance,A–B–C依次启动后,按下home键与back键操作,分析调用的生命周期方法。
2.要分析所执行的生命周期方法首先要对Android的启动模式有所了解。

阅读全文 »

无重复字符最长子串问题

发表于 2020-05-07 | 分类于 Java

描述(滑动窗口的应用)

1.给定任意一个字符串,找出不含重复字符的最长子串,返回其长度。

阅读全文 »

盛最多水的容器

发表于 2020-05-06 | 分类于 Java

描述(双指针应用)

1.给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。

阅读全文 »

两个整数之和

发表于 2020-05-06 | 分类于 Java

描述

1.给定一个整数数组nums和一个target,求数组中是否存在两个数的和为target并返回下标,每种输入对应一组答案,并且数组中的数只用一次。

阅读全文 »
123…5
JiaM

JiaM

人生不就是这般

46 日志
5 分类
13 标签
GitHub E-Mail
© 2020 JiaM
Power by Hexo
|
Themes-NexT.Pisces v5.1.4
  |  本站总访问量 次   |  您是第 位小伙伴