Android四大组件之Service的创建过程

整个Service的启动流程大致可以分为如下几个步骤:

  • 应用进程 A发起startService操作,实际上是通过Binder IPC机制向系统进程system_server中的ActivityManagerService服务模块发送startService的请求消息;
  • 系统进程system_server进程收到请求后,通知zygote进程fork一个新的应用进程B;
  • Progress B通过Binder向系统进程发起attachApplication请求;
  • system_server进程收到应用进程B的attachApplication请求之后,再调用scheduleCreateService()方法,通过Binder IPC远程通信,通知到进程B 创建服务。
  • Progress B收到创建服务的Binder信息之后,在ApplicationThread线程中,利用进程B中自带的Handler H,给ActivityThread线程发送CREATE_SERVICE消息;
  • 主线程收到信息之后,通过反射机制创建需要创建的目标Service,并且调用生命周期中的oncreate()方法;
    下面是创建Service的流程图
    Android四大组件之Service的创建过程_第1张图片

参考:https://www.jianshu.com/p/05b5e4cfb5d9

你可能感兴趣的:(Android学习)