摘要: view如何被添加到window上并显示出来: === 1.主线程activityThread,handleLaunchActivity中加载完activity后,执行handleResumeActivity,其中wm.addView(decor, l); 2.执行WindowManagerImpl 阅读全文
posted @ 2017-02-06 17:11 沁河 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 事件分发 ======== 分发对象 事件 事件种类 MotionEvent.ACTION_DOWN:按下View(所有事件的开始) MotionEvent.ACTION_MOVE:滑动View MotionEvent.ACTION_CANCEL:非人为原因结束本次事件 MotionEvent.AC 阅读全文
posted @ 2017-02-06 17:00 沁河 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 绘制流程 ========= ViewRootImpl.performTraversals 起点 Measure 决定view大小 Layout 决定view的位置 Draw 绘制 performTraversals ===== 依次执行measure,layout,draw measure 父容器 阅读全文
posted @ 2017-02-06 16:24 沁河 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 原理 ==== Activity中的setContentView实际上是执行phoneWindow中的setContentView,将该布局文件,解析成view,作为DecorView的子view 源码 === Activity PhoneWindiw LayoutInflater 阅读全文
posted @ 2017-02-06 16:22 沁河 阅读(295) 评论(0) 推荐(0) 编辑
摘要: android消息机制——handler ====== 为啥要有消息机制? android有个主线程,activityThread,可以操作UI,其他线程不能更新UI。APP开发过程中经常遇到耗时操作,如文件读写,网络请求等。如果把这些耗时请求都放在主线程上面,会发生 ANR (Applicatio 阅读全文
posted @ 2017-02-06 16:21 沁河 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 原理 === 通过layoutId,装换成xml对象,XmlResourceParser,将XmlResourceParser转成AttributeSet对象,根据XmlResourceParser的name得到view对象的类型,最后根据Constructor实例化view对象 几个概念 === 阅读全文
posted @ 2017-02-06 16:12 沁河 阅读(767) 评论(1) 推荐(0) 编辑