android 系统开发入门(一) 启动及编译过程介绍

本文介绍了Android系统的启动分为uboot、kernel和android三个阶段,详细描述了每个阶段的特点。在编译流程上,从mboot、kernel到android的编译过程,再到make指令的使用。此外,文章还提到了全编译与模块编译的命令,如mm和mmm,并解释了它们的区别和使用场景。

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

1)android启动阶段通常是3个阶段:
第一个阶段未uboot,即上电开机到驱动加载前,通常看到的现象为进入开机logo前的阶段;
第二个界面为kernel阶段,即驱动加载阶段,通常看到的现象开机动画显示的前一阶段;
第三个阶段为android启动阶段,即由孵化器ZygoteInit启动系统各个服务,系统各个服务启动完成后会走systemready回调,之后启动systemui服务,之后会遍历所有home属性的activity,然后选择进入launcher,当所有初始化做完之后会发出开机完成boot_complete广播(详细的开机过程网上一搜一大把)
2)与1对应起来,系统编译的流程也是如此,先编译mboot,然后再编译kernel,然后再编译android,到最后将所有生成的文件打包到固件里面(即bin文件),编译android时原生的步骤是
-- source build/envsetup.sh 读取envsetup.sh 中的函数,并执行脚本,配置环境变量等
-- lunch 选择平台编译选项,一般分为user,userdebug,eng,常规的流程应该是给客户的最终版本是user版本,开发版本是userdebug或者eng,开发版本一般都是可以自动打开adb和机器可以root,remount的,user版本则相反,具体详细区别百度一搜一大把
-- make(全编译)或mm(模块编译)
不同厂家有的会做客制化,修改部分的指令,但是基本原理都是一样的
3)make过程
原生的编译安卓指令是make,入口文件是源码树根目录下名称为Makefile的文件,当在源代码根目录上调用 make 命令时,make 命令

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值