Activity启动流程详解

普通Activity创建也就是平常我们在代码中采用startActivity(Intent intent)方法来创建Activity的方式。总体流程如下图:
Activity启动流程详解_第1张图片
启动过程设计到两个进程:本地进程和系统服务进程。本地进程也就是我们的应用所在进程,系统服务进程为所有应用共用的服务进程。整体思路

  1. startActivity(Intent intent) activity向Instrumentation请求创建

  2. Instrumentation通过AMS在本地进程的IBinder接口,访问AMS,这里采用的跨进程技术是AIDL

  3. 然后AMS进程一系列的工作,如判断该activity是否存在,启动模式是什么,有没有进行注册等

  4. 通过ClientLifeCycleManager,利用本地进程在系统服务进程的IBinder接口直接访问本地ActivityThread。

  5. ApplicationThread是ActivityThread的内部类,IApplicationThread是在远程服务端的Binder接口

  6. ApplicationThread接收到服务端的事务后,把事务直接转交给ActivityThread处理

  7. ActivityThread通过Instrumentation利用类加载器进行创建实例,同时利用Instrumentation回调activity的生命中周期

你可能感兴趣的:(View,android,activity启动流程)