1.SystemServer.init1,这是一个jni方法,里面启动了AudioFlinger,MediaPlayerService,CameraService等服务,最后调用到了AndroidRuntime
2.AndroidRuntime.callStatic,,c++调用到了System.init2
3.启动了ServerThread,ServerThread的run方法创建了PackageMangerService,
4.PackageManagerService的构造方法中,将自己添加到了ServiceManager中。
5.PackageManagerService.scanPackageLi 解析 AndroidMainfest.xml中的 activity,service等信息。
本文深入解析Android系统的启动过程,从SystemServer.init1方法入手,详细介绍了AudioFlinger、MediaPlayerService和CameraService等服务的启动机制,以及如何通过AndroidRuntime调用System.init2。进一步讲解了ServerThread的运行机制,它如何创建PackageManagerService,并将其注册到ServiceManager中。最后,分析了PackageManagerService如何扫描AndroidManifest.xml文件,解析其中的activity和服务信息。
1344

被折叠的 条评论
为什么被折叠?



