build/envsetup.sh

本文介绍了Android编译系统中`build/envsetup.sh`脚本的作用,包括初始化编译环境,选择编译项如`lunch full rlk6735_65t_c_m0 eng`,以及不同编译命令如`m`, `mm`, `mmm`的用法。此外,还详细讲解了`grep`家族命令在源码搜索中的应用。" 78101743,7243039,戴尔SC系列存储技术前瞻,"['存储技术', '数据管理', '戴尔SC系列', '高性能存储', '存储行业趋势']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此脚本文件主要是在编译模块前用来加载编译过程中用到的命令、环境变量,包括一些基本函数,配置编译工具和路径,查找一些vendorsetup.sh文件并执行

function setpaths()
function m()
function mm()
function mmm()
function lunch()
function jgrep()
function cgrep()
function resgrep()

一、初始化编译环境

1、在根目录下执行source build/envsetup.sh
2、选择一个编译项lunch,列举一项,此项编译成eng版本

full_rlk6735_65t_c_m0-eng

full表示目标设备为Android的模拟器,官方解释为:fully configured with all languages,apps, input methods,全部的应用程序及语言,输入法等。后半部分eng表示带有调试功能的工程机。rlk6735_65t_c_m0是目标产品名字(target product),eng是编译类型(variant)。
3、编译单独模块mmm packages/apps/Dialer/

二、编译命令(要有Android.mk文件)

m 在当前代码树的顶层路径执行make命令,不管哪层路径都可以执行此命令

function m()
{
    local T=$(gettop)
    local DRV=$(getdriver $T)
    if [ "$T" ]; then
        $DRV make -C $T -f build/core/main.mk $@
    else
        echo "Couldn't locate the top of the tree.  Try setting TOP."
        return 1
    fi
}

mm 在当前路径下执行make命令,当前路径如果是顶层,相当于全编,不包括它们的依赖文件

mmm 编译指定路径的全部文件,不包括它们的依赖文件(mmm packages/apps/Dialer/),用Tab键可以补全路径名称。

如果修改了资源文件,要加参数-B强制编译

mmm -B packages/apps/Dialer/

如果要单独编译某个模块

mmm packages/apps/Dialer:Dialer

不论采用何种编译方式,编译成功后都有如下类似日志

Install: out/target/product/rlk6580_we_c_m/system/priv-app/Dialer/Dialer.apk

建议使用mmm方式分模块编译,如果使用mm方式编译,就会删除system.img、ramdisk.img、userdata.img等IMG镜像文件,之后还用重新编译全部代码生成这些文件,非常耗时。

三、linux grep命令

grep:Global Regular Expression Print,表示全局正则表达式版本,用来进行文本搜索

jgrep:在java文件进行文本搜索

function jgrep()
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" -print0 | xargs -0 grep --color -n "$@"
}

cgrep:在c/cpp/cc/h/hpp文件进行文本搜索

resgrep:在xml文件进行文本搜索,例如resgrep 'xxx'或者resgrep "xxx"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值