Android 11.0 ActivityManagerService的启动流程

2021/7/31 23:08:19

本文主要是介绍Android 11.0 ActivityManagerService的启动流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

        首先推荐一篇文章,ActivityManagerService-AMS启动流程-[Android取经之路]。这篇文章是以Android 10.0源码为基础分析的,写的很详细也很棒,我学习AMS的启动就是看着这篇文章学的,在此先感谢作者的分享。

        我们都知道,AMS非常重要,关乎着四大组件的启动,同时它也非常非常复杂,如果不是做系统定制开发的想把AMS彻底搞清楚那真的是非常困难的一项巨艰巨的任务。同时,即便是做系统定制开发的人,甚至是Google的开发者也不一定能完全搞清楚。因此,在学习这种系统核心服务的时候,我建议我们只需要把它的流程搞清楚就可以了,至于那些细节真的没必要。

        据此,我自己学习之后(花了好长时间才把上面推荐的文章看完),我自己画了一个启动的时序图,主要方便自己复习,现在分享出来,与诸位共勉。

 从SystemServer.java到AMS.onStart方法

1. SystemServer.java startBootstrapServices方法中调用 ActivityManagerService.Lifecycle.startService(mSystemServiceManager, atm);
2. ActivityManagerService.java 中的 Lifecycle中的startService方法,
3. 之后调用SystemServiceManager.java 中的startService方法
4. SystemServiceManager.java 中经过一些startService 方法的调用,最终会执行到service.onStart(); 而此时的service就是ActivityManagerService所以流程就来到了onStart方法
5. onStart方法中调用了mService.start()



这篇关于Android 11.0 ActivityManagerService的启动流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程