Andriod中如何新建lunch项
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项相关推荐
- RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项
RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 文章目录 RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 ...
- 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案
[IDEA]关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案 参考文章: (1)[IDEA]关于 IDEA 中新建 web 项目的 webapp 文 ...
- 关于MOSS列表库新建列表项前的!New标识
当在文档库或者列表内上传新的项目时,系统会自己在新项目的后面或者前面(英文版,中文版服务器位置不同)加上[!New]或者[! 新],如下. 默认的话,新建列表项两天内都会挂着这个标识. 修改默认天数的 ...
- 我的电脑中无法新建txt文本文档
我的电脑中无法新建txt文本文档 电脑中病毒或者是系统错误所致,可以通过如下方式进行解决: 1.按Win+R打开运行,输入regedit,回车打开注册表编辑器; 2.按Ctrl+F键,输入:.txt, ...
- Win10右键菜单栏目中增加新建excel的方法教学
Win10右键菜单栏目中增加新建excel的方法教学.有用户需要建立excel表格的时候,发现自己的右键菜单栏中没有新建表格的选项.那么我们怎么去将新建excel的功能添加到这个栏目中呢?接下来我们一 ...
- 计算机一级在上网题中怎么新建文本文件,计算机一级上网题教程 计算机基础知识题库...
计算机一级上网题怎么做? 在计算机一级考试中,有一道在线题困扰着很多人.我不能从这个问题开始.我来教你怎么解决这个问题.1网上试题通常是计算机考试的最后一道题,内容是发电子邮件. 2. 根据第一项,在 ...
- 在python语言中可作为源文件后缀名的是_在计价软件中可以新建下列哪些类型的项目( )...
[多选题]在2013清单计价中,其他项目界面,包括( ) [单选题]锂离子电池最常用的负极材料是碳材料,其理论嵌锂容量是() [单选题]某企业为增值税一般纳税人,购买原材料取得增值税专用发票上注明的价 ...
- 如何在Windows 7中添加快速启动项
据国外媒体报道,毫无疑问的,在微软的最新一代客户端操作系统Windows 7中,Windows的图形用户界面是微软为用户带来的巨大创新. 而在Windows 7图形用户界面的变革中,变化最大的就是任务 ...
- 艾伟也谈项目管理,在团队中如何推行一项新的实践
在一个老团队中,推行一项新的实践是非常不易的. 如果要求,每天10点站立会议增强团队成员之间沟通.大家会心里先衡量一下,恩,不就是每天站个十几分钟,自己说几句话,然后听别人说嘛,不难做到. 如果要求, ...
- Java最新版本中另外发现五项漏洞
就在Java披露两项安全漏洞的仅仅一周之后,一家波兰安全企业再次发布报告,称在Java最新版本中另外发现五项漏洞.在旧有漏洞的影响之下,***者能够利用新问题绕过Java的沙箱机制并安装恶意软件. S ...
最新文章
- Oracle提示错误消息ORA-28001: the password has expired
- campaign read in WebUI - Fiori is correct!
- nfc reader智能解码程序_更关注健康的高性价比智能手表 华米Amazfit Pop体验
- K-Means算法和K-Means++算法的聚类
- 33 WM配置-策略-出库策略6-定义过期日期策略H(SLED)
- SVM与感知机的异同点
- Linux Vim显示行号方法详解
- c/s及b/s结构比较
- Effective C# Item17:尽量减少装箱和拆箱
- 下拉树取值与赋值单元格填报(取值赋值)
- Python 学习第一周
- java 最大子段和问题,最大连续子数组和(最大子段和)
- svn里 is already locked
- 无线局域网和蜂窝移动网络_干货!无线AP覆盖系统解决方案
- JavaWeb之Servlet-注册页面
- 从键盘输入一个英文字母,如果它是大写英文字母,则将其转换为小写英文字母,如果它是小写英文字母,则将其转换为大写英文字母,然后将它及其ASCII码值显示到屏幕上,如果不是英文字母,则不转换直接输出到屏幕
- 装修小知识 杜绝厨房装修遗憾
- 爬虫,第十次实战之线程池(梨视频下载)
- 计算机导论二进制小数乘法,二进制计算
- JAVA垃圾分类管理系统-含论文基于SSM【数据库设计、毕业设计、源码、开题报告】
热门文章
- Android Qcom Display学习(三)
- 在48小时内了解智能制造,让你少走弯路
- Hibernate 框架检索策略
- 文本自动生成研究进展与趋势
- spring boot电影院售票与管理系统 毕业设计源码论文+答辩PPT
- android手机通过wifi控制数码管,淫技:android无屏操作之adb操控wifi
- html规范eml文件,eml文件【操作办法】
- 使用MapReduce实现k-means算法
- com.android.pngp.tln,杂七杂八的记录
- 京东朱健:聊聊京东广告系统的数据库选型