android activity管理(二) activity启动流程,(ActivityClientRecord)
ActivityClientRecord 是Apk进程中一个Activity代表,这个对象的activity成员引用真正的Activity组件,一个Activity涉及到哪些对象呢?
- Activity子类 ,应用实现的Activity实体。
- ContextImpl 接口就是我们非常数据的Context。
- PhoneWindow 接口是Window,这个对象可以理解为窗体客户端,维护的是布局XML文件,负责解析和加载控件。
- DecorView 顶层控件,应用创建的控件只是它的子控件。
- ViewRootImpl 这个对象可以理解为渲染引擎,负责渲染PhoneWindow中的控件到surface上。
- Surface 窗体的显示载体。
一个Activity的显示,在Apk进程中基本分成三个步骤:一个是解析XML文件加载控件。第二个是请求一个系统窗体返回一个Surface,第三个是将控件画到surface上。
HandleLaunchActivity()方法
1、调用handleConfigurationChanged()更新资源配置。
2、调用WindowManagerGlobal:initialize()方法初始化全局窗口管理系统,每一个Apk进程一个WindowManagerGlobal对象。
3、调用performLaunchActivity()拉起activity。
4、调用handleResumeActivity()唤醒