android启动过程

来源:互联网 发布:网络流媒体地址 编辑:程序博客网 时间:2024/06/08 04:46

第一步:首先当然是上电,引导芯片跳转到固话地址,加载引导程序并执行

 

第二步:

初始化堆栈,BBS段内存 汇编

vendor\mediatek\proprietary\bootable\bootloader\preloader\platform\mt6735\src\init\init.s

进入main函数:

vendor\mediatek\proprietary\bootable\bootloader\preloader\platform\mt6735\src\core\main.c

首先就是初始uart端口mtk_uart_init(UART_SRC_CLK_FRQ, CFG_LOG_BAUDRATE);

platform_pre_init();以及platform_init();进行一系列的timeruartflash,,gpio, pmic硬件初始化

 

第三步:

启动内核,设置缓存、被保护存储器、计划列表,加载驱动,然后启动android系统的第一次进程root进程,挂载系统目录,并运行init.rc,,设置进程优先级,挂载目录,修改目录权限,启动zytego应用进程

system\core\rootdir\init.rc

 

第四步:

启动核心服务

ZygoteInit.java

StartSystemServer

Framework\base\services\java\com\android\server\systemserver.java

1. 启动电源管理器;

2. 创建Activity管理器;

3. 启动电话注册;

4. 启动包管理器;

5. 设置Activity管理服务为系统进程;

6. 启动上下文管理器;

7. 启动系统Context Providers;

8. 启动电池服务;

9. 启动定时管理器;

10. 启动传感服务;

11. 启动窗口管理器;

12. 启动蓝牙服务;

13. 启动挂载服务。

其他服务:

1. 启动状态栏服务;

2. 启动硬件服务;

3. 启动网络状态服务;

4. 启动网络连接服务;

5. 启动通知管理器;

6. 启动设备存储监视服务;

7. 启动定位管理器;

8. 启动搜索服务;

9. 启动剪切板服务;

10. 启动登记服务;

11. 启动壁纸服务;

12. 启动音频服务;

13. 启动耳机监听;

14. 启动AdbSettingsObserver(处理adb命令)。

 

最后发送ACTION_BOOT_COMPLETED广播

 

 

 

 

0 0
原创粉丝点击