1.Android控件架构下图是UI界面架构图,每个Activity都有一个Window对象,通常是由PhoneWindow类来实现的。PhoneWindow将DecorView作为整个应用窗口的根View,DecorView将屏幕分成两部分:TitleView和ContentView。Conten ...
分类:
其他好文 时间:
2016-06-21 22:26:45
阅读次数:
328
本文将分以下在步骤寻找android中事件的来源:
一、activity启动时 创建window以及windowManager的过程。
二、调用setContentView设置布局的过程
三、Activity在onResume之后创建ViewRootImp将window和DecorView关联的过程
四、创建InputChanel 发送给InputManagerService进行注册的过程...
分类:
移动开发 时间:
2016-06-16 16:24:43
阅读次数:
308
从这篇文章中我们开始分析android系统的事件分发流程,其实网上已经有了很多关于android系统的事件分发流程的文章,奈何看了很多但是印象还不是很深,所以这里总结一番。
android系统的事件分发流程分为很多部分:
- Native层 --> ViewRootImpl层 --> DecorView层 --> Activity层 --> ViewGroup层 --> View层...
分类:
移动开发 时间:
2016-05-30 15:31:04
阅读次数:
303
ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorVie...
分类:
移动开发 时间:
2016-05-26 17:16:45
阅读次数:
424
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程。View的绘制经历三个过程:Measure、Layout、Draw。基本流程如下图: performTraversals函数,具体的可以参考一下源代码: 1、Measure过程 Measure ...
分类:
移动开发 时间:
2016-05-17 11:11:53
阅读次数:
225
View 的工作原理
ViewRoot和DecorView
1.ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均通过ViewRoot来完成。
2.ActivityThread中,Activity创建完成后,会将DecorView添加到Window中,同时创建ViewRootImpl对象,并建立两者的关联。
3....
分类:
其他好文 时间:
2016-05-13 04:19:08
阅读次数:
128
Android6.0关机流程
Android系统关机有如下方式:1.定时关机、2.命令行输入reboot重启、3.长按电源键出现关机对画框等,本文以长按电源键为例来分析基于Android 6.0的高通源码。
长按电源键会启动Android系统的按键消息处理机制。每个activity具有一个phonewindow对象,每个phonewindow对象具有一个DecorView对象,每个DecorV...
分类:
移动开发 时间:
2016-05-12 18:56:48
阅读次数:
2965
一.概述这篇文章主要解答一些在平时学习工作过程中遇到的一些比较值得研究的问题。二.问题1.DecorView是何时被创建的...
分类:
移动开发 时间:
2016-05-12 15:25:06
阅读次数:
233
1.概述
点击某个控件,首先会去调用activity的dispatchTouchEvent方法,然后通过window传递给decorview最终传递给我们设置的布局,如果不拦截事件,在布局的dispatchTouchEvent方法中找到被点击的相应控件,再去调用该控件的dispatchTouchEvent法,dispatchTouchEvent方法会根据onTouch方法的返回值判断是否调用onT...
分类:
移动开发 时间:
2016-05-10 07:08:41
阅读次数:
322
基础
整个过程基本上都在PhoneWindow中完成的。先罗列里面会用到的方法。如下:
//可以看出它mDecor为DecorView对象
protected DecorView generateDecor() {
return new DecorView(getContext(), -1);
}
//findViewById...
分类:
其他好文 时间:
2016-05-07 10:32:21
阅读次数:
229