摘要: LRU Cache数据结构的介绍可以参考前面的http://www.cnblogs.com/XP-Lee/p/3441555.html。 本文以Android LRUCache来做一个简单的介绍。我们已经知道LRU Cache是一个hash map+双向链表的数据结构,那么在Android的Java自然也逃不出这个框,谷歌在Android3.1(v4 library也支持)之后提供了一个封装此数据结构实现的LRUCache类。Android LRUCache访问数据 LRUCache暴露了三个线程安全的方法get(K)、put(K)和remove(K),通过这三个方法,我们可以操作ca... 阅读全文
posted @ 2013-11-26 17:33 xplee 阅读(892) 评论(0) 推荐(0) 编辑
摘要: 对于AbsListView子类,假设它的宽高是自适应的,你会发现getView()和getCount()会被疯狂的反复调用。即使在AbsListView子类设置完adapter后,getView()和getCount()也会被疯狂的调用10几次甚至更多。原因就在于measure过程,AbsListView子类会包含很多个item,而且由于AbsListView和Adapter机制的关系,会尽可能的将一系列item显示在屏幕中,当然这些item的父容器都是AbsListView子类。 在Android中View的布局机制分成两个阶段:measure和layout。在measure阶段时主要... 阅读全文
posted @ 2013-11-26 16:27 xplee 阅读(554) 评论(0) 推荐(0) 编辑
摘要: layout mechanism Android中View的layout mechanism主要分为两个阶段:measure阶段和layout阶段。layout mechanism按照一定的顺序进行,总体上来讲是先measure然后layout。一、measure阶段 以父容器提供的宽高参数作为限制条件,计算本身的大小(宽高)。这个过程需要调用final方法measure(int, int)完成。根据源码,我们可以知道实际的measure过程却是由回调方法onMeasure(int, int)来进行。因此我们常常可以看到在View的子类中,会根据需要,有重写方法onMeasure(int,.. 阅读全文
posted @ 2013-11-26 15:37 xplee 阅读(469) 评论(0) 推荐(0) 编辑