1. 程式人生 > >分享一個Android平臺編譯指令碼

分享一個Android平臺編譯指令碼

先說明使用方法

1:將內容copy到一個檔案,如檔名為mk,將此檔案加上可執行許可權 chmod +x mk

2:將mk檔案放於android頂層目錄

3:執行./mk會有提示如下:

^.^ example: ./mk full_g30p_5u-eng
^.^ example: ./mk full_g30p_5u-eng bootimage

根據提示即可知使用方法

./mk 專案 模組

專案:執行 . build/envsetup.sh; lunch 後的輸出

模組:編譯的模組,模組為空時表示編譯整個android系統,模組由幾個選項  pl   lk   bootimage  systemimage

4:

編譯每個模組後會把編譯log放到對應的 模組.log 中,編譯整個android系統時log在 build.log中

5:編譯歷史的記錄在檔案scMake.ini

內容類似如下:

./mk full_air_m65_5u-user lk     ---- 2017-05-18 20:56:54
./mk full_air_m65_5u-user bootimage     ---- 2017-05-18 20:59:19
./mk full_air_m65_5u-user bootimage     ---- 2017-05-19  9:34:54
./mk full_air_m65_5u-user bootimage     ---- 2017-05-19  9:43:08

6:其實自己看腳步內容理解比較直接,謝謝

#腳步內容如下

#---------------------------------------------------------------start------------------------------------------------------

#!/bin/bash

CPUINFO=$(cat /proc/cpuinfo | grep name |cut -f2 -d: | uniq -c;)
echo "the cpu info${CPUINFO}"
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO# *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPUINFO=${CPUINFO% *}
CPU=$CPUINFO
echo "so you job is ${CPU}"


if [ $# -eq 0 ];then
source build/envsetup.sh 1>/dev/null
print_lunch_menu
echo "^.^ example: ./mk full_g30p_5u-eng"
echo "^.^ example: ./mk full_g30p_5u-eng bootimage"
echo ""
fi


if [ $# -eq 1 ];then
source build/envsetup.sh 1>/dev/null
print_lunch_menu
echo "$0 $1 $2 $3 $4   ---- `date '+%F %H:%M:%S'`" >> scMake.ini
echo "lunch $1";
echo "make  -j12 2>&1 | tee build.log";
lunch $1
make -j12 2>&1 | tee build.log
fi


if [ $# -eq 2 ];then
source build/envsetup.sh 1>/dev/null
print_lunch_menu
#echo "make -j${CPU} [pl] [lk] [bootimage] [systemimage]2>&1 | tee build.log";
echo "$0 $1 $2 $3 $4   ---- `date '+%F %k:%M:%S'`" >> scMake.ini
echo "lunch $1";
echo "make  -j${CPU} $2 2>&1 | tee $2.log";
lunch $1
make -j${CPU} $2 2>&1 | tee $2.log

fi

#---------------------------------------------------------------end------------------------------------------------------