LruCache解析

概述

LRU(Least Recently Used),即最近最少使用算法,它的核心思想是当缓存满时,会优先淘汰那些近期最少使用的缓存对象。

该算法被应用在LruCacheDiskLruCache,分别用于实现内存缓存和磁盘缓存。

Android全局异常处理

概述

当Android应用程序出现未捕获的异常,都会弹出一个强制退出的弹框,在这种情况下,用户体验非常差。且发布到线上后,开发没法定位Bug的位置,这就需要一个能全局捕获异常,并且将这个异常log上传到服务器的功能。

Android中的单位(dp、sp、dpi)

概述

因为不同的屏幕具有不同的像素密度,因此同样数量的像素在不同设备上可能对应于不同的物理尺寸。因此要使用dpsp单位。

dp:是一种密度无关像素,对应于160dpi下像素的物理尺寸。

sp:是相同的基本单位,但它会按用户首选的文本尺寸进行缩放(属于缩放无关像素),因此在定义文本尺寸时应使用此计量单位(但切勿为布局尺寸使用此单位)。

Java注解Annotation

概述

注解(Annotation):是元数据的一种形式,能够添加到Java源代码,Java中的类、方法、变量、参数、包都可以被注解。注解对他们所注解的代码没有直接的影响。

注解的使用可以简化代码,提高开发效率。

在Android中,用到注解的开源库有:Retrofit、ButterKnife、Dagger。

Java动态代理

概述

代理模式,是一种常用的设计模式。

在某些情况下,我们不希望或不能直接访问对象A,而是通过访问一个中介对象B,由B去访问A达成目的,这种方式就是代理。

对象A所属的类称为委托类,也被称为被代理类,对象B所属的类称为代理类

根据程序运行前代理类是否存在,可以将代理分为静态代理动态代理

,