总目录
- FrameWork层源码的分析
-
- 0)Android系统启动流程
- 1)应用程序内Activity的启动流程
- 2)startService的流程分析
- 3 ) 注册广播接收器的源码分析
- 4)广播发送过程源码解析
- 5)广播处理过程源码解析
- 6)AssetManager加载资源过程
- 7)ClassLoader及dex加载过程
- 8)插件化框架VirtualApk之初始化
- 9)插件化框架VirtualApk之插件加载
- 10)插件化框架VirtualApk之Activity启动
- 11)插件化框架VirtualApk之Service管理
- 12)热修复框架AndFix完全解析
- 13)InstantRun源码分析[转]
- 14 ) Google新组件下的架构思考
FrameWork层源码的分析
0)Android系统启动流程
简单描述:
- 1 按下电源键开机,启动芯片代码,启动一个BootLoader小程序。
- 2 BootLoader主要的功能是完成系统的设置,启动init.rc,init.cpp,init.zygote32.rc(8.0以后)
- 3 init 启动zygote:通过rc文件,service.cpp找到相关的name,对应的main方法。即app_main.cpp的main方法。
- 4 zygote启动SystemServer
Zygote开启了Android世界。
app_main.cpp是启动zygote进程的方法。
AndroidRuntime.start() ----(启动虚拟机,)
启动ZygoteInit的main方法执行。主要做了以下四件事
- 创建一个Server端的socket(LocalServerSocket)。
- 预加载类和资源。
- 启动SystemServer进程。
- 等待AMS请求创建新的应用程序进程。
启动SystemServer, —> RuntimeInit.zygoteInit
—>启动Binder线程池,这样就可以和其他进程通讯了,nativeZygoteInit();
—>执行SystemServer的main方法,applicationInit(targetSdkVersion, argv, classLoader)
- 5 SystemServer启动主线程,以及其他的系统服务。
开启looper,创建mSystemServiceManager,启动服务器的小助手,
启动引导服务,核心服务,其他服务
< |
---|