Activity是什么
Activity是一个Android应用程序组件(也是Android四大组件之一,其他为Service,BroadcastReceive,content provider)Activity主要用于显示的,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。 每个 Activity 都会获得一个用于绘制其用户界面的窗口当我们需要启动一个应用时,到应用完全打开展现在我们面前的这段时间做了些什么?现在对其中的Activity组件启动进行分析:
在这之前我们对Android Application的启动流程进行过分析:Activity的启动是以启动Application为基础的。可参看Android_Application启动梳理。
Activity什么时候开始创建
Activity是应用程序组件,它是依附于应用程序而创建的。首先我们可以确定它的创建肯定是要在应用进程创建之后,当我们准备开启一个应用程序时,来让我们看看Activity的启动过程:
Activity.startActivity()
-->Activity.startActivityForResult()
-->Instrumentation.execStartActivity()
--> ActivityManager.getService().startActivity()
-->ActivityManagerService.startActivity()
-->ActivityManagerService.startActivityAsUser()
-->ActivityStarter.execute()
-->ActivityStarter.startActivityMayWait()
-->ActivityStarter.startActivity()
...
-->ActivityStarter.startActivityUnchecked()
-->ActivityStackSupervisor.resumeFocusedStackTopActivityLocked()
-->ActivityStack.resumeTopActivityUncheckedLocked()
-->ActivityStack.resumeTopActivityInnerLocked()
-->ActivityStackSupervisor.startSpecificActivityLocked()
-->ActivityStackSupervisor.realStartActivityLocked()
-->
... // TODO
我们先从startActivity()开始看起:
.。。。。。。。。。。太多了,追不下去了,先占个坑,Activity启动流程这个慢慢追。