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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值