Android LruCache 源码分析

0. 前言

学过操作系统这门课的朋友都还记得 LRU 这个算法吧,中文名叫”最近最久未使用”,它是用在页面置换策略中的一种很巧妙的淘汰算法,而在 Android 中,也有一个缓存淘汰机制用到了它,叫做 LruCache,它也可以说是一个精妙的设计吧,这篇博文中,笔者将带领大家剖析它源码中的精妙之处…

Read More

Android 中多次设置 OnClickListener 只执行一次吗?

问题

对于 Android 初学者,可能对这个问题会比较疑惑: 对于一个 View,比如 Button,如果为其设置多次点击监听 OnClickListener 回调方法,同时还在布局中设置了 onClick 属性,并且也实现了点击回调方法,那么问题来了,哪些回调方法会执行呢?又是以怎样的顺序执行呢?请跟随脚步和我一探究竟…

Read More

Android 相关重难点知识整理

集合

  1. HashMap 进行排序: HashMap 本身无序,但其子类 LinkedHashMap 使用链表结构,实现了有序。通过 HashMap#entrySet() 方法可以将 Map 转为 Set<Entry> ,再在 ArrayList 的构造函数中可以传入 Collections ,正好 SetList 的父类就是 Collections ,这样就可以调用 Collections.sort(list, comparator) 进行排序了。排序好后,使用 for 遍历加入 LinkedHashMap

Read More