Android启动生命周期流程

本文详细介绍了Android系统的启动过程,从Linux内核初始化开始,到Servicemanager的启动,再到Zygote进程的创建,直至应用程序的启动。重点阐述了核心组件如SystemServer和服务线程ServerThread的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android启动生命周期流程:

第一步:启动Linux:

1,Bootloader
2,Kernel
第二步:Android系统启动:入口为Init.rc(system\core\rootdir)
1,/system/bin/servicemanager:Binder守护进程;
2,Runtime;
3,Zygote:app_process/App_main;
4,Start VM;
5,System Server;
6,Start Android Services:Register to ServiceManager
7,Start Launcher;

第三步:应用程序启动:运行PackageManager


Android启动生命周期流程说明:

1,Android的servicemanager文件位于/system/bin/servicemanager中,在系统启动一开始会通过源码为ServiceManager.java的文件实例化一个Daemon Process,用于在后台维护系统的运行;
2,启动/system/bin下的zygote的时候实际上启动了app_main.cpp,该系统文件CPP位于frameworks\base\cmds\app_process\app_mian.cpp文件中;
3,app_main.cpp调用了AndroidRuntime.cpp,然后AndroidRuntime.cpp通过JNI调用了ZygoteInit.java, ZygoteInit.java又调用了SystemServer.java;
4, SystemServer.java通过JNI调用了com_android_server_systemService.cpp,然后通过运行system_init.cpp反过来调用SystemServer.java中的init2()这个方法,此时在init2()这个方法中调用了runtime->callStatic(“com/android/server/SystemServer”,”init2”)启动ServerThread线程
服务线程ServerThread包含下面的功能:
1,PowerManagerService:电源管理;
2,ActivityManagerService:组件管理;
3,WindowManagerService:窗口管理;
4,PackageManagerService:应用程序是通过该Service启动的
……








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值