Android10.0 Service启动源码解析

本文出自门心叼龙的博客,属于原创类容,转载请注明出处。

Service的启动流程的还是比较简单的,不像Activity那么复杂,相关联的类和方法都少了很多,不像Activity启动流程里面走着走着就会迷失方向,源码分析这是加强Android内功修炼的必修课,分析了几个流程之后,你就会觉得也不过如此,因为他们的套路都是一样的,大体的实现思想都是相通的,只是具体的代码实现不同罢了。

在上一篇文章我们主要分析了Android10.0 Activity的启动过程,今天我们主要来探索Service的启动过程,本来打算先从5.0开始,然后在分析最新版10.0的启动过程,结果让我失望了,10.0的启动过程和5.0的是方法调用链是一样的,只是有些方法的代码逻辑有些小的改动,它不像Activity的启动流程变化那么大,这说明当时Service启动这块的代码逻辑写的还是非常不错的,Android已经迭代到10了经历了那么版本,这块的代码还是那么的完美稳定,没有什么需要大的改造的地方,10.0中有些小变化会在下面的详解过程会提到,既然5.0和10.0差别不大,索性就以5.0作为研究版本写了这篇文章。

Service是Android四大组件中排行老二,地位仅次于Activity,Activity位于前台向用户展示界面;Service位于后台不可见,但是它承担了大部分的的数据处理工作,主要为其他组件提供后台服务,监控其他组件的运行状态。

Activity中的流程

Service的启动是从Activity的startService方法开始的,这个方法是从他的父类ContextWrapper继承而来的,下面这是Activity的继承关系图:
在这里插入图片描述
从上图我们很清晰的看到,Ac

猜你喜欢

转载自blog.csdn.net/geduo_83/article/details/103061414