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()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值