Android Framework--启动流程
2017-08-02 16:42
375 查看
Android启动流程
boot引导启动–>kernel启动–>Android核心启动(init–>runtime->zygote–>system_server)boot引导启动
kernel启动
init
init代码位于system/core/init目录下,编译后打包进ramdisk中,最后一并打包到boot.img中。init主要有两个过程:init.main中执行基本的初始化和配置;解析并运行init.rc,启动本地的守护进程
runtime->zygote->systemserver
始于App_main.cpp的main函数runtime的主要工作是startVM启动虚拟机,注册JNI
zygote的主要工作是加载各种资源(预加载类/系统资源/openGL/字体/全局so等),最后zygote进程进入循环等待,负责fork新进程
system_server的主要工作是启动各种服务,其中在AMS.systemReady里启动Launcher
system_server中分init1和init2两个阶段,第一阶段主要负责初始化还有SurfaceFlinger/SensorService/Binder等系统的启动。第二阶段会启一个ServerThread线程来负责启动各种服务(可分为七大类)
第一类:Android核心服务;AMS,WMS等
第二类:通信相关服务;Wifi,Telephone等
第三类:系统功能相关服务;AudioService,MountService,UsbService等
第四类:BatteryService,VibratorService等服务
第五类:EntropyService,DiskStatsService,Watchdog等独立的服务
第六类:蓝牙服务
第七类:UI相关服务。状态栏服务,通知栏服务等
最后附一张较为详细的流程图(始于App_main.cpp#main;亿图打开)
相关文章推荐
- android framework 启动流程
- Android Framework学习(五)之应用进程启动流程
- Android Framework启动流程分析
- framework启动流程之android应用程序
- 【Android framework】am命令启动Activity流程
- android framework 启动流程
- 【Android framework】am命令启动Activity流程
- Android Framework Boot Up Overview(Android系统框架启动流程概述)
- Android Framework启动流程分析
- Android Framework启动流程分析
- Android结构及Framework启动流程
- Android结构和Framework启动流程
- Android Framework启动流程分析
- Android FrameWork 启动流程
- android recovery 模式启动进入流程
- android 4.0系统启动代码流程剖析
- Android镜像与启动流程
- Android 5.0 Camera系统源码分析(1):CameraService启动流程
- android启动流程
- 结合源码探讨Android系统的启动流程