每次進入到android source目錄後的第一件事恐怕就是先執行. build/envsetup.sh,完成一些命令的初始化,今天主要分析envsetup.sh。
1. 命令-也就是envsetup.sh中的函數
function help() # 顯示協助資訊
function get_abs_build_var() # 擷取絕對變數
function get_build_var() # 擷取絕對變數
function check_product() # 檢查product
function check_variant() # 檢查變數
function setpaths() # 設定檔案路徑
function printconfig() # 列印配置
function set_stuff_for_environment() # 設定環境變數
function set_sequence_number() # 設定序號
function settitle() # 設定標題
function choosetype() # 設定type
function chooseproduct() # 設定product
function choosevariant() # 設定variant
function tapas() # 功能同choosecombo
function choosecombo() # 設定編譯參數
function add_lunch_combo() # 添加lunch項目
function print_lunch_menu() # 列印lunch列表
function lunch() # 配置lunch
function m() # make from top
function findmakefile() # 尋找makefile
function mm() # make from current directory
function mmm() # make the supplied directories
function croot() # 回到根目錄
function cproj()
function pid()
function systemstack()
function gdbclient()
function jgrep() # 尋找java檔案
function cgrep() # 尋找c/cpp檔案
function resgrep()
function tracedmdump()
function runhat()
function getbugreports()
function startviewserver()
function stopviewserver()
function isviewserverstarted()
function smoketest()
function runtest()
function godir () # 跳到指定目錄
# add the default one here
add_lunch_combo generic-eng
# Execute the contents of any vendorsetup.sh files we can find.
for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/build/vendorsetup.sh 2> /dev/null`
do
echo "including $f"
. $f
done
2. lunch命令
已經有人分析過了,直接搬過來:
http://www.lupaworld.com/home.php?mod=space&uid=131820&do=blog&id=149462
這裡說一下check_product的流程:
待續
3. choosecombo
待續