Android开发艺术探索(8) --- 四大组件的工作过程

1. Activity的启动过程


performLaunchActivity方法解析:

  1. ActivityClientRecord中获取带启动的Activity的组件信息
  2. 通过InstrumentationnewActivity方法使用类加载器创建Activity对象
  3. 通过LoadApkmakeApplication方法来尝试创建Application对象
  4. 创建ContextImpl对象并通过Activityattach方法来完成一些重要数据的初始化
  5. 调用ActivityonCreate方法

Android开发艺术探索读书笔记(三)

2. Service的启动过程

2.1 Service启动过程

Service启动过程

handleCreateService

  1. 通过类加载创建Service实例
  2. 创建Application对象并调用onCreate方法
  3. 创建ContextImpl对象,并通过Serviceattach方法建立二者的联系
  4. 调用ServiceonCreate方法,并将Service对象储存在ApplicationThread的一个列表

2.2 Service绑定过程

Service绑定过程
  • ServiceConnectionInnerServiceConnectionserviceDispatcher连接,ServiceConnectionserviceDispatcher由一个ArrayMap连接,ServiceConnection内部又保存了ServiceConnectionInnerServiceConnection
  • ServiceConnection的回调由AMS#publishService完成,它的流程如下

3. BroadcastReceiver

3.1 广播的注册过程

3.1.1 静态注册

PMS来完成整个注册过程

3.1.2 动态注册

  • AMS最终会存储InnerReceiver对象和IntentFilter

3.2 广播的发送和接收过程

4. ContentProvider

  • 懒加载的机制,第一次使用的时候会创建ContentProvider并把它放入内存中,下次直接返回

handleBindApplication

  • 创建ContextImplInstrumentation
  • 创建Application对象
  • 创建当前进程的ContentProvider并调用其onCreate方法
  • 调用ApplicationonCreate方法

Android应用程序组件Content Provider的启动过程源代码分析

你可能感兴趣的:(Android开发艺术探索(8) --- 四大组件的工作过程)