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的启动流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享