Activity的启动流程及View的工作流程
2018-04-28 17:32:46 31 举报
Activity的启动流程及View的工作流程
作者其他创作
大纲/内容
是
acitivty.startActivity
通过instrumentation.newApplication得到App,并调用onCreate()
view.onLayout()
创建ContextImpl对象
AMS.startActivity()
activity.onCreate()
调用windowManagerImpl.addView(decor)
acitivtyThread.handleResumeActivity()
是否是ViewGroup
绘制装饰,如滚动条
创建PhoneWindow对象
view.layout()确定自身的位置
instrumentation.newActivity()
activity.attach()
绘制子View view.dispatchDraw()
绘制View的褪色边缘
acitivty.startActivityForResult()
root.setView(decor)
绘制View的内容view.onDraw()默认空实现
loadedApk.makeApplication()
绘制背景view.drawBackground()
ActivityThread.handleLaunchActivity()
phoneWindow.setContentView()
setContentView()
H.sendMessage(LAUNCH_ACTIVITY)
调用windowManagerGlobal.addView(decor)
activityThread.applicationThread.scheduleLaunchActivity()
否
activity.onStart()
创建 ViewRootImpl对象
Activity的启动流程及View的工作流程
使用类加载器创建Activity
创建DecorView
activityThread.performLaunchActivity()
得到Application对象
view.draw()
performLayout()
activity.onRestart()
得到decor和WindowManagerImpl对象
绘制子View viewGroup.drawChild()
activtyThread.performResumeActivity()
root.performTraveals()
activity.onResume()
application是否已存在
instrumentation.execStartActivity()
viewGroup.layout()确定子元素的位置
performDraw()
phoneWindow.installDecor()
0 条评论
下一页