build/envsetup.sh 生成的命令详解表

参考: 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。

转载于:https://www.cnblogs.com/sjjg/p/6137364.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值