参考: https://wiki.cyanogenmod.org/w/Envsetup_help

它是一个.sh文件,用source后就生成android编译相关函数,具体如下。

速查

  Invoking $ source build/envsetup.sh from your shell adds several functions to the build environment. These are listed below with short descriptions. Reference build/envsetup.sh for the most recent list of commands.

函数 作用  示例
function help()  显示帮助信息  
function get_abs_build_var() 获取绝对变量

列出make脚本中某变量的值,前缀上当前路径。ref dumpvar.mk

使用方法:
       get_abs_build_var VAR_NAME
VAR_NAME是需要显示的make脚本中的变量。
例如:
       get_abs_build_var TARGET_PRODUCT
返回
       <Your Android Root>\<VAR_NAME Value>

function get_build_var() 获取绝对变量 列出make脚本中某变量的值。ref dumpvar.mk
Usage:
       get_build_var VAR_NAME
VAR_NAME是需要显示的make脚本中的变量。
Return:
       <VAR_NAME Value>
Example:
       get_abs_build_var TARGET_PRODUCT
function check_product() 检查product 检查指定的TARGET_PRODUCT是否允许,默认的有sim和generic。如果不允许,则输出错误信息,允许则无回显。
Usage:
       check_product <YourTargetProduct>
Example:
       check_product generic
function check_variant() 检查变量 检查variant是否支持,支持则返回0,不支持则返回1。允许的variant列表定义在envsetup.sh中的VARIANT_CHOICES中,默认是user,userdebug,eng。定制android时,可以在VARIANT_CHOICES中添加vairant。
Usage:
       check_variant <YourVariant>
Example:
       check_variant eng
function setpaths() 设置文件路径 奇次执行时,将ANDROID_BUILD_PATHS路径加到PATH中。偶次执行时,将ANDROID_BUILD_PATHS路径从PATH中去除。ANDROID_BUILD_PATHS包括android编译中要使用到的路径,例如ANDROID_EABI_TOOLCHAIN,ANDROID_TOOLCHAIN,ANDROID_QTOOLS,ANDROID_JAVA_TOOLCHAIN,ANDROID_PRODUCT_OUT等等。
Usage:
       setpaths
function printconfig() 打印配置 输出类似如下形势的配置信息。
============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=AOSP
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=Linux
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
============================================
function set_stuff_for_environment() 设置环境变量 依次调用settitle, set_java_home,setpaths,set_sequence_number。设置android编译需要的环境变量。
function set_sequence_number() 设置序号 输出环境变量BUILD_ENV_SEQUENCE_NUMBER。
function settitle() 设置标题 设置shell的prompt提示,PROMPT_COMMAND中加入TARGET_PRODUCT,TARGET_BUILD_VARIANT,和TARGET_BUILD_APPS等信息提示。
function choosesim()   配置环境变量TARGET_SIMULATOR。linux下会提示用户选择device或simulator。然后调用set_stuff_for_environment设置。
function choosetype() 设置type 配置环境变量TARGET_BUILD_TYPE_SIMULATOR。会提示用户选择release或debug。然后调用set_stuff_for_environment设置。
function chooseproduct() 设置product 配置环境变量TARGET_PRODUCT。会提示用户选择release或debug。然后调用set_stuff_for_environment设置。
function choosevariant() 设置variant 配置环境变量TARGET_BUILD_VARIANT。会提示用户选择release或debug。
function tapas() 功能同choosecombo 用户给定variant和一个或多个app name,就是LOCAL_PACKAGE_NAME的名字。tapas设定
export TARGET_PRODUCT=generic
    export TARGET_BUILD_VARIANT=$variant
    export TARGET_SIMULATOR=false
    export TARGET_BUILD_TYPE=release
    export TARGET_BUILD_APPS=$apps
Usage:
       tapas <YourVariant>?  <YourAppName>*
  ?代表可选,*代表0个,1个或多个。YourVariant 和YourAppName的次序可颠倒。
Example:
       tapas user Calculator Calender
function choosecombo() 设置编译参数 依次调用choosesim,choosetype,chooseproduct,choosevariant,set_stuff_for_environment配置,然后调用printconfig输出。
function add_lunch_combo() 添加lunch项目 向环境变量LUNCH_MENU_CHOICES标识的列表中添加项。envsetup.sh中默认添加了full-eng,full_x86-eng,和simulator。
function print_lunch_menu() 打印lunch列表 列出LUNCH_MENU_CHOICES中的所有选项。
function lunch() 配置lunch 点菜,用户选择/指定product,variant后,lunch命令设置环境变量TARGET_PRODUCT,TARGET_BUILD_VARIANT,TARGET_SIMULATOR,TARGET_BUILD_TYPE,随后调用set_stuff_for_environment设置,并printconfig显示。
Usage:
       lunch  [<YourProduct>-<YourBuildVariant>]

不给参数时,将提示用户选择。
Example:
       lunch
       lunch generic-eng

function gettop()   返回当前android代码树的顶层路径。前提是当前路径位于android代码树中。
function m() make from top 等价于在当前android代码树的顶层路径下执行make命令。
function mm() make from current directory 如果当前路径是代码树顶层,则mm相当于make。如果是深层,测mm相当于
ONE_SHOT_MAKEFILE=$M make -C $T files $@

$M是findmakefile发现的Android.mk,$T是代码树顶层路径,files是main.mk中定义的phony goal,就是完成$M对应目录范围内,所有android需编译的modules以及辅助说明txt文件。

function mmm() make the supplied directories 给定package的路径,则mm会make相应的package。
例如,mmm package/apps/Calculator
function findmakefile() 查找makefile 查找当前或最接近自己的祖辈路径上的Android.mk,返回Android.mk的路径,假设当前路径处于android代码树中。
function croot() 回到根目录 改变当前路径到代码树顶层。
function cproj()   改变当前路径到最近的还有Android.mk文件的祖父辈路径。
function pid()   使用adb shell ps命令列出手机上指定名字的进程的pid。
Usage:
       pid <YourName>
function systemstack()   使用kill -3system_server将系统进程中的线程信息写入/data/anr/traces.txt。
function gdbclient()   建立gdb调试环境,包括两步,手机上运行gdbserver,本机上运行arm-eabi-gdb。
Usage:
       gdbclient <EXE> <PORT> <AppName>
EXE: AppName的执行名。

PORT:gdbserver的端口,例如, 192.168.2.102:5039
AppName:手机中ps列出的app名字,据此查pid。

function sgrep()   查找当前目录及子目录中所有.c,.h,.cpp,.S,.java,.mk,.xml,.sh文件,即源码文件中包含特定单词的行,并颜色显示输出。
Usage:
       sgrep <YourWord>
Example:
       sgrep Calendar
function jgrep() 查找Java文件 同sgrep,但只查.java文件。
function cgrep() 查找c/cpp文件 同sgrep,但只查c相关的文件,即.c,.cc,.cpp,.h文件。
function resgrep()   同sgrep,但只查res相关的.xml文件。
function mgrep()   同sgrep,但只查make相关的脚本文件,包括Makefile文件,Makefile目录下的所有文件,.make文件,.mak文件和.mk文件。
function treegrep()   查找当前目录及子目录中所有.c,.h,.cpp,.S,.java,.xml文件,即源码文件中包含特定单词的行,并颜色显示输出。
function getprebuilt()   输出prebuilt的路径。
function tracedmdump()   生成dexlist文件qtrace.dexlit,dmtrace数据文件dmtrace,和调用dmtracedump工具生成的dmtrace解析文件dmtrace.html,将生成文件放到指定路径。
Usage:
       tracedmdump <YourDirName>
如果YourDirName中不含’\’,则将放置的路径是$ANDROID_PRODUCT_OUT/traces/YourDirName。
function runhat()   貌似使用kill -10的方法得到heap dump并取到本地。使用hat以http方式展现出来。hat可能是个lightweight http server,不曾用过。
function getbugreports()   将手机/sdcard/bugreports目录下的文件下载到本地并压缩打包。
function startviewserver()   用指定端口启动viewserver。
Usage:
       startviewserver <Port>
不指定端口,则默认4939。
function stopviewserver()   关闭viewserver。
function isviewserverstarted()   检查viewserver是否可用。
function smoketest()   编译smoketest并安装手机运行。
function runtest()   运行development/testrunner/runtest.py $@
function godir() 跳到指定目录 给出一个词,godir会输出一个路径列表供用户选择要进入的路径。路径列表包含的路径满足,路径名中包含这个词,或这路径下的文件有文件名含这个词。out/路径下不考虑。
Usage:
       godir <YourKey>
Usage:
       godir Calculator
function set_java_home()   设置JAVA_HOME环境变量为/usr/lib/jvm/java-6-sun。

build/envsetup.sh 生成的命令详解表的更多相关文章

  1. MySQL Explain命令详解--表的读取顺序,数据读取操作的类型等

    表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度(key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的) 不损失精确 ...

  2. 【转】Android编译系统详解(一)——build/envsetup.sh

    出处 http://www.cloudchou.com/android/post-134.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 准备好编译环境后,编译Rom的 ...

  3. Protobuf 文件生成工具 Prototool 命令详解

    Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...

  4. Android 6.0 RK3288 ROM编译详解+命令详解【转】

    本文转载自:http://blog.csdn.net/MLQ8087/article/details/58607692 Android 6.0 RK3288 ROM编译详解+命令详解 原创 2017年 ...

  5. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  6. Dockerfile命令详解

    使用docker就会避免不了的要做各种镜像,就会用到dockerfile,记录一下dockerfile的主要命令 1.主要组成部分     dockerfile执行build命令时,是从上倒下依次执行 ...

  7. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  8. LINUX的磁盘管理du命令详解

    LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...

  9. Linux CAT与ECHO命令详解 <<EOF EOF

    Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: .一次显示整个文件. $ cat filename .从键盘 ...

随机推荐

  1. Json 学习

    json 格式: 1) 并列的数据之间用逗号(", ")分隔. 2) 映射用冒号(": ")表示. 3) 并列数据的集合(数组)用方括号("[]&qu ...

  2. Android应用层View绘制流程与源码分析

    1  背景 还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原 ...

  3. Python Set Literals

    现有3种方式创建set() >>> def f(): ... return set([1, 2, 3]) ... >>> def h(): ... return s ...

  4. hadoop实战 -- 网站日志KPI指标分析

    本项目分析apache服务器产生的日志,分析pv.独立ip数和跳出率等指标.其实这些指标在第三方系统中都可以检测到,在生产环境中通常用来分析用户交易等核心数据,此处只是用于演示说明日志数据的分析流程. ...

  5. DNS CNAME的一些细节

    1, 概述 DNS中的CNAME可以减轻运维压力,使得已有的DNS配置具有一定的灵活性和可扩展性.本文对CNAME中的一些细节做阐述, 使DNS服务器的运维人员和开发人员能合理地使用CNAME. 2, ...

  6. DataAnnotations里DisplayAttribute和 ValidationAttribute 如何从资源文件读取信息,显示多语言

    这个是我们常见的AccountModel代码 public class ChangePasswordModel { [Required] [DataType(DataType.Password)] [ ...

  7. [原创]java WEB学习笔记104:Spring学习---AOP 前奏,通过一个问题引入动态代理

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. 解决checkbox的attr(checked)一直为undefined问题

    需要做个一个全选的checkbox功能,遇到checkbox的attr("checked")一直为undefined,下面与大家分享下最终的解决方案   最近本屌丝应项目开发需求, ...

  9. UVALive 7143 Room Assignment(组合数学+DP)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  10. mbed学习之Digital IO (一)

    mbed的IO操作非常灵活,常见的关于Digital IO操作整理如下表 ,其中蓝色字体是构造函数,绿色字体的是操作符重载,使用时只要创建对象,就可以调用对应的方法来操作,并且每种都提供了操作符重载, ...