Android源码
蒲公英291
这个作者很懒,什么都没留下…
展开
-
Android源码中的适配器模式
在Android开发过程中,ListView的Adapter是我们最常见的类型之一,我们需要使用Adapter加载Item View的布局,并且进行数据绑定、缓存复用等操作。代码大致如下:ListView myListView = (ListView)view.findViewById(R.id.id_list);MyAdapter adapter = new MyAdapter()原创 2016-07-19 22:36:07 · 1971 阅读 · 0 评论 -
Android中的ViewRootImpl类源码解析
转载请注明出处http://blog.csdn.net/qianhaifeng2012/article/details/51737370请支持原创ViewRoot目前这个类已经没有了,是老版本中的一个类,在Android2.2以后用ViewRootImpl代替ViewRoot,对应于ViewRootImpl.java,他是链接WindowManager和DecorView的纽带,另...原创 2016-06-22 22:33:25 · 11177 阅读 · 15 评论 -
Android应用程序的启动过程源码解析—点击图标启动过程
在Android系统中,有两种操作会引发Activity的启动,一种用户点击应用程序图标时,Launcher会为我们启动应用程序的主Activity;应用程序的默认Activity启动起来后,它又可以在内部通过调用startActvity接口启动新的Activity,依此类推,每一个Activity都可以在内部启动新的Activity。通过这种连锁反应,按需启动Activity,从而完成应用程序的原创 2016-07-27 16:05:38 · 3872 阅读 · 0 评论 -
View的measure过程
view的measure过程要分情况来看,如果只是一个原始的View,那么通过measure方法就完成了测量过程,如果是一个ViewGroup,除了完成自己的测量过程外,还会遍历去调用所有子元素的measure方法,各个子元素再递归执行这个过程,下面分两种情况分别讨论。0、MeasureSpec在说measure过程之前,需要先说明一个类,MeasureSpec,从名字来看,Measure原创 2016-06-08 21:05:44 · 433 阅读 · 0 评论 -
View的layout过程
Layout过程的作用是ViewGroup用来确定子元素的位置,当ViewGroup的位置被确定之后,它会在onLayout方法中遍历所有的子元素并调用其layout方法,在layout方法中onLayout又会被调用。layout过程和measure过程相比就简单多了,layout方法确定View本身的位置,而onLayout方法则会确定所有子元素的位置。先看View的layout方法。代码如下原创 2016-06-12 15:25:26 · 414 阅读 · 0 评论 -
View的draw过程
View的Draw相比就比较简单了,它的作用是将View绘制到屏幕上面。View的绘制过程遵循如下几步。1)绘制背景,通过background.draw方法。2)绘制自己,通过onDraw方法3)绘制子元素,dispatchDraw方法4)绘制装饰,通过onDrawDScrollBars方法可以通过源码来验证一下: public void draw(Canvas ca原创 2016-06-12 15:50:31 · 710 阅读 · 0 评论 -
View的事件分发机制源码解析
上一篇博文,详细讲述了View的事件分发机制,地址为:View的事件分发机制,这篇博客将从源码的角度进一步分析,并正式上一篇博文的结论。我们知道当一个点击事件产生后,它的传递过程遵循如下顺序:Activity——>Window——>View即事件总是先传递给Activity,Activity再传递给Window,最后Window再传递给顶级View。顶级View接受事件后,就会按照事件原创 2016-06-14 21:33:36 · 4058 阅读 · 0 评论 -
Android中的消息机制
Android中的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。MessageQueue的中文翻译是消息队列,顾名思义,它的内部存储了一组消息,以队列的形式对外提供插入和删除的工作。注意MessageQueue底层其实采用单链表而不是队列;Looper的中文翻译为循环,在这里可以理解为消息循环。由于MessageQueue只是原创 2016-06-17 22:29:51 · 391 阅读 · 0 评论 -
从AsyncTask的源码解析AsyncTask工作原理
为了分析AsyncTask的工作原理,我们从它的execute方法开始分析,execute方法又会调用executeOnExecutor方法,他们的源码如下: public final AsyncTask execute(Params... params) { return executeOnExecutor(sDefaultExecutor, params);原创 2016-06-18 22:27:16 · 475 阅读 · 0 评论 -
Android源码中的代理模式解析
Android源码下的比较经典的代理模式其中之一是ActivityManagerProxy代理类,其具体代理的ActivityManagerNative的子类ActivityManagerService,ActivityManagerService在这里就不在具体赘述了,这里主要梳理一下整个代理的框架。ActivityManagerProxy是ActivityManagerNative的内部类原创 2016-07-20 21:26:47 · 926 阅读 · 0 评论 -
Android头像加载框架
好久没更新博客,最近在完成实习任务,自己研究出了一套头像加载机制,虽然谈不上高大上,但是使用起来确实比较方便,可以用在任何Android应用中需要头像的地方。先说一下这个头像加载的思路: 首先加载本地 如果本地加载成功 检查本地头像是不是最新的,如果是最新的,不操作,如果不是最新的,加载网络最新 如果本地加载失败原创 2016-11-06 14:22:57 · 3873 阅读 · 2 评论