Andriod中如何新建lunch项

2023-10-27

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命令对上库的代码在本地仓进行更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Andriod中如何新建lunch项 的相关文章

随机推荐

  • redis集群配置(Mac)

    主要解决在Mac进行redis的集群安装及配置 包括对集群 节点 槽 slot 键的基本命令使用 以及常见错误 版本 redis 5 3 系统 mac 10 前期准备 目录结构 mkdir cluster test cd cluster t
  • Failed to launch emulator 和 Failed to install the app解决方法

    1 按照react native官网配置好android开发环境 创建一个新项目 然后在vscode使用npm start和npm run android 运行打包的时候 报了上面两个错误 这是在创建好Device Manager中模拟手机
  • 互联网摸鱼日报(2023-03-06)

    互联网摸鱼日报 2023 03 06 InfoQ 热门话题 Snap首席信息安全官 我给软件供应链风险打 9 9 分 满分 10 分 技术深度解析 H 266 VVC 标准之量化技术 字节新一代解码器 BVC 帮助 H 266 VVC 标准
  • CMake编译opencv4.6

    openCV系列文章目录 文章目录 openCV系列文章目录 前言 一 准备工作 二 使用步骤 1 使用CMake编译openCV 总结 前言 最近在项目中遇到图片处理 一拍脑袋就想到大名鼎鼎的opencv 一 准备工作 1 openCV官
  • STM32中实现OLED多级菜单(支持修改参数)

    STM32中实现OLED多级菜单 目录 STM32中实现OLED多级菜单 一 完整工程源码下载 二 硬件连接 1 OLED12864 2 按键 3 蜂鸣器 三 效果展示 1 图片效果 2 视频效果 四 核心代码 1 gui h文件 2 gu
  • Redis(三)持久化

    RDB Redis DataBase Redis使用操作系统的多进程 COW Copy On Write 机制来实现快照持久化 Redis在持久化时会调用 glibc 的函数fork产生一个子进程 快照持久化完全交给子进程来处理 父进程继续
  • Zotero查看文献条目所属的分类

    Zotero是一个开源的文献管理软件 不光功能强大还支持插件扩展 但是很多Zotero用户可能会经常面临一个困境 就是不能很方便的确定某个文献条目具体属于哪些文件夹 如通过关键字在整个文献库搜索到某篇文献时 如果想看与该文献很相关的文献 定
  • OpenCV 验证码图像增强处理 一、滤波增强

    前言 图像增强是对图像进行处理 使其比原始图像更适合于特定的应用 它需要与实际应用相结合 对于图像的某些特征如边缘 轮廓 对比度等 图像增强是进行强调或锐化 以便于显示 观察或进一步分析与处理 图像增强的方法是因应用不同而不同的 有的小伙伴
  • WSL2默认DNS配置导致无法访问网络

    问题分析 1 进入wsl ping www baidu com 不通 2 本机cmd ping www baidu com 正常 3 把本机ping 百度的ip拿出来 用wsl直接ping 百度的ip正常 通过此步骤基本可以判断是WSL2默
  • 【GitHub.io/Github Pages使用教程】从头开始搭建自己的Github Pages,打造个人博客网站,展示个人简历、项目、文档或想要与世界共享的任何其他内容

    巨人半边莲 如果你曾征服乞力马扎罗山 留意过海拔 3 657 4 267 米处的尖顶植物 这种植物有时形似绿色大柱子 或 花序 从中间长出花序 那么你就可能看到许多巨人半边莲 这些植物生长在非洲最高山上 事实上 巨人半边莲是乞力马扎罗山上发
  • 基于Matlab的2ASK、2PSK性能仿真

    这里我们将简单的在Matlab中进行2ASK与2PSK的仿真 比较实际误码率与理论误码率 最终做出相应的曲线 2ASK的仿真 我们首先来2ASK的看一下程序框图 产生 0 1 随机数序列这里我们使用的是Matlab中randi imin i
  • Thinkphp5 联表(联合、关联、join)查询

    Db table think artist gt alias a gt join think work w a id w artist id gt join think card c a card id c id gt select joi
  • ps2020闪退_Adobe Photoshop 2020总是打不开,闪退,怎么回事,解决方法

    尽管还没有到2020年 但adobe公司更新软件的步伐没有停止 adobe 2020全家桶系列软件已经发布 其中就包括大家最喜欢的图像设计大师Photoshop 2020 我在第一时间也给大家分享了Photoshop2020简体中文版 许多
  • 微分动态规划的基本思想

    吴恩达cs229第19课 微分动态规划这一部分 看了两遍才看明白 赶紧记下来 微分动态规划是基于LQR 线性二次型 的 后者能够比较简洁地计算最优策略 但要基于一个前提 就是 t 1 时刻的状态 是 t 时刻的状态和 t 时刻采取行为的线性
  • LaTeX常用语法查询(自用)

    文章目录 LaTex文档结构 添加作者 标题 日期 章节和段落 插入目录 插入数学公式 两种插入模式 上下标和空格 根式与分式 符号 括号 省略号 矩阵 插入图片 插入表格 编辑器 离线编辑 在线编辑 分点 itemize 参考文献插入链接
  • 使用golang的pprof包对程序进行性能分析

    golang提供pprof包 可以监控golang程序的堆栈 cpu的耗时等性能信息 下边就说一下这个pprof包的使用 1 首先是引入 在两个地方可以引入 net http pprof runtime prof 其中 net http p
  • 尺寸汇总

    尺寸汇总 获取视口的宽高 含滚动条 window innerWidth window innerHeight 不含滚动条 document documentElement clientWidth document documentEleme
  • python使用matplotlib实现折线图的绘制

    一 意义 数据可视化可以以简洁的方式呈现出数据 发现众多数据中隐藏的规律和意义 Matplotlib是一个数学绘图库 利用它可以制作简单的图表 散点图 折线图 然后 将基于漫步概念生成一个更有趣的数据集 根据一系列随机决策生成的图表 本文我
  • 数据结构(9)之带权图

    1 带权图中 边带有一个数字 叫做权 它可能代表距离 耗费 时间或其他意义 2 带权图用来最常解决的问题是最短路径问题 pps 3 带权图的最小生成树中有所有的顶点和连接它们的必要的边 且这些边的权值最小 4 优先级队列的算法可用于寻找带权
  • Andriod中如何新建lunch项

    Andriod编译过程一般为 1 source build envsetup sh 加载命令 在项目根目录下 purple code a A code20211126 sdm660 目录 备注 在envsetup sh里将执行vendor和