
Android SDK源码解析
文章平均质量分 86
低调小一
Ubuntu重度患者,曾经的服务器开发工程师,如今正在深入学习到Android Framework
展开
-
Scroller源码详解
View弹性滑动详解之前写了一个滚动选择控件 ,在这个控件中我设计了弹性滚动的实现机制,再了解View弹性滚动之前,我们先来学习一下View滚动机制的实现.View的scrollTo/scrollBy这里基于Android5.0版本的源码介绍View类中这两个函数的具体实现.scrollTo源码如下:/** * 对View设置滚动的x和y轴坐标. * @param x x轴滚动的终点坐标 *原创 2016-05-26 21:03:53 · 6670 阅读 · 0 评论 -
RecyclerView的缓存机制
原文链接原文出处:基于滑动场景解析RecyclerView的回收复用机制原理前言之前优化Feed流框架的时候,看到过一篇基于滑动场景分析RecyclerView回收复用的文章,感觉十分经典,因此转载复习之。正题RecyclerView 的回收复用机制的内部实现都是由 Recycler 内部类实现,下面就都以这样一种页面的滑动场景来讲解 RecyclerView 的回...转载 2018-08-10 19:58:23 · 10804 阅读 · 5 评论 -
Android自定义View构造函数详解
目录目录初始Custom View的构造函数生成Custom View的自定义属性在Custom View的构造函数中获取自定义属性设置自定义属性值在布局xml文件中为属性赋值在style中为属性赋值通过RstyledefStyle为属性赋值在Custom View所在的Activity的Theme中指定后记初始Custom View的构造函数之前写过一篇实现圆形进度条的博客(自定原创 2015-11-04 21:19:30 · 22057 阅读 · 13 评论 -
LruCache源码解析
LruCache之前分析过Lru算法的实现方式:HashMap+双向链表,参考链接:LRU算法&&LeetCode解题报告这里主要介绍Android SDK中LruCache缓存算法的实现, 基于Android5.1版本源码.构造函数LruCache只有一个构造函数,并且有一个必传参数:public LruCache(int maxSize) { if (maxSize <= 0) {原创 2016-05-27 15:28:31 · 2146 阅读 · 2 评论 -
LayoutInflater.inflate源码详解
LayoutInflater.inflate源码详解LayoutInflater的inflate方法相信大家都不陌生,在Fragment的onCreateView中或者在BaseAdapter的getView方法中我们都会经常用这个方法来实例化出我们需要的View. 假设我们有一个需要实例化的布局文件menu_item.xml:<LinearLayout xmlns:android="http:/原创 2016-08-02 16:22:44 · 1633 阅读 · 0 评论 -
SparseArray源码解析
SparseArray源码解析Android官方推荐:当使用HashMap(K, V),如果K为整数类型时,使用SparseArray的效率更高.我们通过分析SparseArray的源码,来看一下为什么当K为整数类型时,使用SparseArray的效率更高.之前写过一篇Android SparseArray源码分析, 今天review时候,感觉只是大量的罗列了代码却没有具体分析,而且不是基于Mark原创 2016-06-01 21:01:43 · 3188 阅读 · 0 评论 -
Android Touch事件分发响应机制
概述在Android中,事件包括了点按、长按、拖拽、滑动等,这些事件才能让Android响应用户的各种操作。但是归根结底,所有的这些事件都是以如下三个部分作为基础的:ACTION_DOWN(按下)ACTION_MOVE(移动)ACTION_UP(抬起)所有的操作事件首先必须执行ACTION_DOWN(按下)操作,之后所有的操作都是以按下操作为前提,当按下操作完成后,接下来可能是一段ACTIO原创 2015-08-19 20:36:00 · 2027 阅读 · 0 评论 -
源码角度深入理解Activity
目录目录前言Activity相关类介绍ActivityThread前言这篇博客的名字起的很大,我自己也很担心是否有能力来从源码的角度深入分析Activity。 写这篇博客的起因是因为最近一直利用空闲时间在学习《Android开发艺术探索》,今天总算读完一遍,但是其中第九章节“四大组件的工作过程”一直让我介怀,感觉自己并没有真正的搞懂。 所以这里也是花时原创 2015-12-30 17:14:07 · 3388 阅读 · 1 评论 -
Android View measure流程详解
Android View measure流程详解Android中View绘制的流程包括:measure(测量)->layout(布局)->draw(绘制).因为Android中每个View都占据了一块矩形的空间,当我们要在屏幕上显示这个矩形的View的时候首先我们需要知道这个矩形的大小(宽和高)这就对应了View的measure流程.有了View的宽和高,我们还需要知道View左上角的起点在哪里原创 2016-05-18 15:47:04 · 9078 阅读 · 0 评论 -
Android源码解析-ViewModel
前言最近一个月主要实现了IM功能,其中UI框架使用了ViewModel和LiveData的存储和通知机制,实现后代码简洁易于维护。感慨于Android arch components控件强大同时,需要顺带分析一波其中源码实现。今天先来分析一下ViewModel的源码实现。ViewModel简介ViewModel是通过关联生命周期的方式来存储和管理跟UI相关的数据。即使configurati...原创 2019-09-27 16:30:52 · 1225 阅读 · 0 评论