前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android系统编译流程详解(一)

Android系统编译流程详解(一)

作者头像
李小白是一只喵
发布2020-04-24 09:22:50
3.8K0
发布2020-04-24 09:22:50
举报
文章被收录于专栏:算法微时光算法微时光

android 编译系统编译过程

  1. source build/envsetup.sh:初始化编译环境,加载相关命令
  2. lunch:选择平台编译选项
  3. make -j8:执行编译(其中-j参数表示指定编译线程数,建议cpu核心数乘2即可)
build/envsetup.sh脚本

由于脚本内容过多,截取部分:

脚本代码依次查找{device, vendor, product}目录下的vendorsetup.sh文件,并分别导入到当前环境中来!

lunch

lunch的作用:

等待我们选择编译的平台,这里所谓的平台说白了就是指我们所编译的系统适合运行在什么设备上,并且是user版本还是eng版本,又或者说是debug版本,我们确定版本之后,输入数字按回车就选择好了!

简单介绍下三个版本:

  • user版本: user版本其实就是指可以发放到用户手上的版本了,就比如说我们平时正常的去手机店买手机的时候就是user版本了。
  • eng版本: 这个版本是我们平时所说的工程机一般都是用这个版本,有时候这个版本的机子也会发给用户试用。
  • userdebug版本: 这个是调试版本,开发人员调试的时候用这个版本即可,当然也可以直接用eng版本。

lunch实现截图:(函数实现文件build/make/envsetup.sh)

android 编译系统的结构

android的编译系统可以分为三部分:

  • build/core: 在这个目录中包含了大量的.mk文件
  • 子项目:每个子项目都包含自己的Android.mk,在编译时会被包含进去,而如何编译子项目是由Andorid.mk文件所决定的3
  • out/:编译结果输出到该目录下,编译的结果可以是jar包,apk,也可以是二进制
build/core目录节选

比较重要的是其中的main.mk文件.

由于比较长,只能截取一部分了:

参考

Android源码编译过程及原理(二) Aandroid源码编译详解(一) Android源码编译详解(二)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • android 编译系统编译过程
  • android 编译系统的结构
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档