window windowManager

  1. windowManager 与windowManagerService的交互式一个IPC过程
  2. Android所有视图都是通过window呈现
  3. window 抽象类,具体实现是PhoneWindow 通过WindowManager创建
  4. WindowManager是外界访问Window的入口,
  5. window的具体实现在WindowMngerService.
  6. window分类:应用window(activity)子window(dialog,不能单独存在,必须要依附在特定父window) 系统window(toast,系统状态栏)
  7. window分层:z-ordered 层级打的覆盖层级小的上面 应用类:1-99 子window:1000-1999 系统:2000-2999
  8. windowmanager提供的方法;addView,updateView,removeView

window的内部机制:

  1. 每个window对应着一个view 一个ViewRootImpl
  2. window 和view通过ViewRootImpl建立联系
  3. window的添加过程: a. 检验参数是否合法 b. 创建ViewRootImpl,并将view添加到列表中 c. 通过ViewRootImpl来根系界面并完成window的添加过程 ViewRootImpl.setView 其实是view的绘制过程,setview中通过requestLayout异步绘制 requestlayout调用scheduleTraversals(view绘制的入口) d. windowSession【实际上是一个Binder】 IPC完成window的添加过程。其内部调用WindowManagerService实现添加window.
  4. deleteView中view会调用onDetachedFromWindow 做资源回收的工作
  5. 体现的设计模式 a. add remove,update等操作 是 windowManager的实现类windowManagerImpl中交由windowManagerGlobal处理,后者以工厂的方式提供实例。 b. windowManagerImpl体现了桥接模式,所有操作委托给WindowManagerImpl实现。

Android源码中接口,抽象类多如牛毛,好像自己不是Interface,abstract class都不好意思出门见人, 管中窥豹,感叹一声,google的程序员真是高瞻远瞩啊

window,windowManager --《android 艺术探索读书》笔记相关推荐

  1. Android开发艺术探索 读书笔记

    啥也不说了,@主席的<Android开发艺术探索>真是业界良心之作,不得不看!感谢主席,膜拜主席!主席主席,我要跟你生猴子!(>^ω^<) 读书笔记中若有任何问题请留言告知,谢 ...

  2. Android开发艺术探索读书笔记(一)

    首先向各位严重推荐主席这本书<Android开发艺术探索>. 再感谢主席邀请写这篇读书笔记 + 书评.书已经完整的翻完一遍了,但是还没有细致的品读并run代码,最近有时间正好系统的把整本书 ...

  3. Android 开发艺术探索 - 读书笔记目录

    仅作为读书笔记使用,建议阅读原书. 书中代码部分已和现版本不符,建议对比最新版本学习. 读了这本书,越发认识到和大佬们的差距.嗯,加油吧. 过去の自分が今仆の土台となる 第 1 章 - Activit ...

  4. Android开发艺术探索读书笔记

    前言 Android开发艺术(这本书真的是艺术,太崇拜刚哥了,值得每一个做Android开发刷十遍的书) 1,Activity生命周期和启动模式 典型情况下的生命周期分析 onCreate() onS ...

  5. Android开发艺术探索读书笔记(二)

    首先感谢大家支持,昨天第一篇写出来之后反响很好,主席本人也非常赞赏(捂脸-),再接再厉,推出第二篇.这篇的主要内容是对两章View的内容进行总结.不得不说,自定义View是很多开发者的痛点,一方面我们 ...

  6. Android开发艺术探索读书笔记(第5章 RemoteView)

    原理 RemoteView的作用是在其他进程中显示并更新view界面. 大量的IPC操作会影响效率,为了解决这个问题,系统并没有通过Binder去直接支持View的跨进程访问,而是提供了一个Actio ...

  7. Android深度探索读书笔记 第七章

    第七章主要介绍led驱动.1测试led驱动:测试之前需要用USB数据线连接s3c开发板,然后打开S3C开发板的电源开关,成功启动后,执行build..sh脚本文件编译和安装led驱动.2 创建led驱 ...

  8. Android深度探索读书笔记 第六章

    Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都存在/dev目录中.编写linux驱动程序的步骤:1建立linux驱动骨架:linux内核在使用驱动时首先需要装载驱动.在 ...

  9. 《android开发艺术探索》笔记之Bitmap的加载和Cache

    <Android开发艺术探索>笔记之Bitmap的加载和Cache<一> 我放暑假前,就在图书馆借了一本<Android开发艺术探索>,这也是我看到很多人推荐的.之 ...

最新文章

  1. Debug Your Life!关于学习、面试和工作成长(附B站录播)
  2. 【Android 异步操作】Handler ( 主线程中的 Handler 与 Looper | Handler 原理简介 )
  3. POJ3267The Cow Lexicon
  4. 《POSIX多线程程序设计》读书笔记
  5. dotweb——go语言的一个微型web框架(二)启动dotweb
  6. C#重写ShowDialog函数
  7. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  8. 输入字符串统计字符串中每个字符出现的次数
  9. python 中locals() 和 globals()
  10. matlab多折线图,MATLAB画出堆叠折线图
  11. 2018初中计算机考试知识点,[2018年最新整理]全国计算机一级考试MS_Office知识点.docx...
  12. 内网主机通过外网地址访问内网服务器
  13. 计算机组成原理问题集合
  14. Android人脸支付功能,OPPO Find X成为首款支持微信人脸支付的安卓手机
  15. Java--->奥运五环
  16. 键盘的空格键都有什么用处
  17. 【linux内核分析与应用-陈莉君】动手实践--内核多任务并发实例
  18. 计算机网络总线型结构优 缺点,总线型拓扑结构优缺点是什么
  19. 新手小白怎么学抖音运营?抖音运营5大技巧
  20. 京东白条三道坎:“白条”如何吸金?

热门文章

  1. app后台运行会给服务器发信息吗_零基础搭建电视直播APP平台第一弹(支持安卓+电视盒子)...
  2. html事件机制,浅析JavaScript中的事件机制_基础知识
  3. java io流顶层_Java中的IO流(一)
  4. cron 每小时_旺季招聘:高薪小时工!
  5. 计算机语言里的笑脸,设备类型显示笑脸
  6. java 有多少api_Java常用API(二)
  7. 电脑的基础知识_电脑入门基础知识
  8. 【重要】如何彻底夯实CV基础,有三AI三大导师一起带你学习!
  9. 如何把控产品 — 产品管理全流程解析
  10. MFC中CStatic控件动态改变