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

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

作者: 官子寒 | 来源:发表于2020-03-14 19:08 被阅读0次

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) --- 四大组件的工作过程

      本文链接:https://www.haomeiwen.com/subject/jmrsthtx.html