Android Activity的展示过程简述

Android Activity的显示过程简述
  首先从ActivityThread 类中main()函数中开始执行,调用 Looper.prepareMainLooper() 为 UI 线程创建一个消息队列(MessageQueue)
   然后创建一个ActivityThread对象,在 ActivityThread 初始化的时候会创建两个对象,一个对象

  final ApplicationThread mAppThread = new ApplicationThread();
    final Looper mLooper = Looper.myLooper();
    final H mH = new H();


H 继承于Handler类  ApplicationThread 继承于Binder 类,负责接收远程 ActivityManagerService 的IPC 调用,接收到消息会通过 H  把消息发送给消息队列,UI 主线程会异步的从消息队列中取出消息并执行相应的业务逻辑。
    当ActivityThread 接收到ActivityManagerServer 发送start 某个Activity 的请求之后,会创建对应的Activity对象,从 Activity->PhoneWindows->DecorView->view->ViewGroup。创建完毕之后,Activity 需要把创建好的界面显示在屏幕当中,由 WindowsManager 代理管理WindowManagerService 提供的接口通知底层Linux 驱动完成显示UI到屏幕的工作。