Andriod编译过程一般为:

1.source build/envsetup.sh //加载命令,在项目根目录下(~/purple/code/a/A_code20211126/sdm660)目录

备注:在envsetup.sh里将执行vendor和device目录及各自子目录下所有的vendorsetup.sh,这些vendorsetup.sh做的事情是调用add_lunch_combo将它们各自的产品添加到 LUNCH_MENU_CHOICES 变量里,在lunch时会用到。

2. lunch       //选择平台编译选项

lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。

备注:这里的product列表是用户在执行source build/envsetup.sh时,including了一些shell脚本,从而添加至产品列表的,与第一步对应上。

3 .make       //执行编译

所有的操作是基于在A的项目基础上新建B的项目,即两个项目共用一套代码.

二 新增lunch项

1、 如果没有项目代码,需在本地仓中新建一个文件夹从库中拉一份代码下来,

需要使用repo命令下载一份代码  //下载代码

2、进入代码的device目录找到对应版本的配置文件路径

(~/purple/code/a/A_code20211126/sdm660/device/guideir/common)

该路径下有一个vendorsetup.sh文件,打开该文件,新增配置选项,如图:

下面一半是新增的版本型号,该文件会在lunch的时候去让用户选择编译什么版本。

在~/purple/code/a/A_code20211126/sdm660/device/guideir目录下将A的目录复制一份且命名为B,然后修改B中的部分文件即可。cp –r A B

复制完成后需要修改部分文件的内容,我们将已经修改好的和之前的经行对比可以看到具体的修改点   meld A/ B/

这样就可以去查看两个文件的修改情况。

在Andriod.mk文件中会去包含很多xml文件,最后会根据这些xml文件去配置编译选项。

这样,一个新的项目的lunch过程就基本完成了,后面只需要在对应的目录下去修改相应的文件即可。

小结:source build/envsetup.sh会调用add_lunch_combo函数添加很多单板信息进来,同时还会查找/device和/vendor下的vendorsetup.sh文件,查找深度为4级目录,找到后就执行它,它里面至少会有这么一行:add_lunch_combo xxxx,继续添加单板信息。lunch函数则会打印出所有的单板信息供你选择,你输入选择后,lunch命令会对你的选择做一系列检测,并从中提取出product和varient,并最终导出这些信息,供正式编译的时候使用。

如果想要研究每一步具体做了哪些事情,可以去深入研究具体的各个文件的执行过程,和一些变量的作用。

可以用Cherry Pick命令对上库的代码在本地仓进行更新。

Andriod中如何新建lunch项相关推荐

  1. RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项

    RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 文章目录 RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 ...

  2. 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案

    [IDEA]关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案 参考文章: (1)[IDEA]关于 IDEA 中新建 web 项目的 webapp 文 ...

  3. 关于MOSS列表库新建列表项前的!New标识

    当在文档库或者列表内上传新的项目时,系统会自己在新项目的后面或者前面(英文版,中文版服务器位置不同)加上[!New]或者[! 新],如下. 默认的话,新建列表项两天内都会挂着这个标识. 修改默认天数的 ...

  4. 我的电脑中无法新建txt文本文档

    我的电脑中无法新建txt文本文档 电脑中病毒或者是系统错误所致,可以通过如下方式进行解决: 1.按Win+R打开运行,输入regedit,回车打开注册表编辑器; 2.按Ctrl+F键,输入:.txt, ...

  5. Win10右键菜单栏目中增加新建excel的方法教学

    Win10右键菜单栏目中增加新建excel的方法教学.有用户需要建立excel表格的时候,发现自己的右键菜单栏中没有新建表格的选项.那么我们怎么去将新建excel的功能添加到这个栏目中呢?接下来我们一 ...

  6. 计算机一级在上网题中怎么新建文本文件,计算机一级上网题教程 计算机基础知识题库...

    计算机一级上网题怎么做? 在计算机一级考试中,有一道在线题困扰着很多人.我不能从这个问题开始.我来教你怎么解决这个问题.1网上试题通常是计算机考试的最后一道题,内容是发电子邮件. 2. 根据第一项,在 ...

  7. 在python语言中可作为源文件后缀名的是_在计价软件中可以新建下列哪些类型的项目( )...

    [多选题]在2013清单计价中,其他项目界面,包括( ) [单选题]锂离子电池最常用的负极材料是碳材料,其理论嵌锂容量是() [单选题]某企业为增值税一般纳税人,购买原材料取得增值税专用发票上注明的价 ...

  8. 如何在Windows 7中添加快速启动项

    据国外媒体报道,毫无疑问的,在微软的最新一代客户端操作系统Windows 7中,Windows的图形用户界面是微软为用户带来的巨大创新. 而在Windows 7图形用户界面的变革中,变化最大的就是任务 ...

  9. 艾伟也谈项目管理,在团队中如何推行一项新的实践

    在一个老团队中,推行一项新的实践是非常不易的. 如果要求,每天10点站立会议增强团队成员之间沟通.大家会心里先衡量一下,恩,不就是每天站个十几分钟,自己说几句话,然后听别人说嘛,不难做到. 如果要求, ...

  10. Java最新版本中另外发现五项漏洞

    就在Java披露两项安全漏洞的仅仅一周之后,一家波兰安全企业再次发布报告,称在Java最新版本中另外发现五项漏洞.在旧有漏洞的影响之下,***者能够利用新问题绕过Java的沙箱机制并安装恶意软件. S ...

最新文章

  1. Oracle提示错误消息ORA-28001: the password has expired
  2. campaign read in WebUI - Fiori is correct!
  3. nfc reader智能解码程序_更关注健康的高性价比智能手表 华米Amazfit Pop体验
  4. K-Means算法和K-Means++算法的聚类
  5. 33 WM配置-策略-出库策略6-定义过期日期策略H(SLED)
  6. SVM与感知机的异同点
  7. Linux Vim显示行号方法详解
  8. c/s及b/s结构比较
  9. Effective C# Item17:尽量减少装箱和拆箱
  10. 下拉树取值与赋值单元格填报(取值赋值)
  11. Python 学习第一周
  12. java 最大子段和问题,最大连续子数组和(最大子段和)
  13. svn里 is already locked
  14. 无线局域网和蜂窝移动网络_干货!无线AP覆盖系统解决方案
  15. JavaWeb之Servlet-注册页面
  16. 从键盘输入一个英文字母,如果它是大写英文字母,则将其转换为小写英文字母,如果它是小写英文字母,则将其转换为大写英文字母,然后将它及其ASCII码值显示到屏幕上,如果不是英文字母,则不转换直接输出到屏幕
  17. 装修小知识 杜绝厨房装修遗憾
  18. 爬虫,第十次实战之线程池(梨视频下载)
  19. 计算机导论二进制小数乘法,二进制计算
  20. JAVA垃圾分类管理系统-含论文基于SSM【数据库设计、毕业设计、源码、开题报告】

热门文章

  1. Android Qcom Display学习(三)
  2. 在48小时内了解智能制造,让你少走弯路
  3. Hibernate 框架检索策略
  4. 文本自动生成研究进展与趋势
  5. spring boot电影院售票与管理系统 毕业设计源码论文+答辩PPT
  6. android手机通过wifi控制数码管,淫技:android无屏操作之adb操控wifi
  7. html规范eml文件,eml文件【操作办法】
  8. 使用MapReduce实现k-means算法
  9. com.android.pngp.tln,杂七杂八的记录
  10. 京东朱健:聊聊京东广告系统的数据库选型