Android控件系统(一)——Activity控件系统引导

449 阅读2分钟

  本章作为“Activity控件系统”系列文章的开篇,向大家阐述什么是控件系统?控件系统的实现作为Android高层次抽象,为了更方便与用户打交道的,在这些便捷的背后其实隐藏着很多秘密。这些秘密其实就是控件系统的实现过程所使用的底层的服务。
  本文所描述的控件系统并非Android所有的控件系统,我们将以Activity启动为例,分析这个过程中控件系统所具备的能力,直观的来看控件系统需要具备如下几个能力:

  • 窗口显示能力,窗口外观以及我们自定义的layout;
  • 窗口变化响应能力;
  • 事件输入和响应能力,例如触摸事件、按键事件;
  • Activity管理能力;

  为了满足控件系统的这些能力,Android Framework提供了如下图所示的基础服务,来支撑控件系统的具体工作:

  • Binder:实现进程间通信;
  • Handler:消息队列;
  • WMS(Window Manager Service):窗口显示管理服务;
  • 输入系统:接收外部或内部事件的输入;
  • AMS(Activity Manager Service):Activity管理服务;

image

  之所以单独使用一篇"引导"来向大家说明这些,是为了告诉大家阅读Android源码的一个逻辑————注重框架分析,忽略细节。什么意思呢?因为Android系统源码比较庞大,控件系统并非一个独立的功能模块,它是依赖于系统提供的很多服务的,如果你一味的想把所有的源码都读懂搞清楚,我想控件系统你看半年也是有可能的。
  所以,控件系统中使用到了诸如Binder、Handler、WMS、输入系统等子系统在Framework层中提供的功能,你只需要了解这些子系统提供的API功能即可(就像我们做APP开发),切勿“一追到底、没完没了”,避免只见树木不见森林。
  如果可以,建议对Binder、消息队列、WMS有所了解后,开始分析控件系统,你将会理解的更加透彻;当然,你也可以直接看上面的系列文章。

如果是大牛,上面的话就当我没说啦,嘿嘿;另外,能力有限,写的不好大家莫怪