在envsetup.sh中,原有choosecombo命令中只有3个参数,现想增加一个参数来作为多种字体的编译开关,如下修改:
function choosecombo()
{
choosetype $1
echo
echo
chooseproduct $2
echo
echo
choosevariant $3
echo
echo
choosefont $4 #新增一个参数,选择编译使用的系统字体
....
}
另外,仿照function choosevariant()的写法来写函数function choosefont(),但是所定义的参数TARGET_BUILD_FONT无法正常执行下去:
FONT_CHOICES=(default font1)
function choosefont()
{
echo "Font choices are:"
local index=1
local v
for v in ${FONT_CHOICES[@]}
do
echo " $index. $v"
index=$(($index+1))
done
local default_value=font1
local ANSWER
export TARGET_BUILD_FONT=
while [ -z "TARGET_BUILD_FONT" ] #测试发现此处判断结果为false,因此直接跳出while循环
do
echo -n "Which would you like? [$default_value] "
....
}
另外根据别人建议,在build/core/dumpvar.mk中增加了
$(info TARGET_BUILD_FONT=$(TARGET_BUILD_FONT))
但是最终也未能成功。
请各位指点一下,这个参数应该怎么加?是否有其他地方也需要同步修改?
网上关于android编译系统的解释非常多,但是这块内容似乎很少,请指点。
谢谢!!
android envsetup.sh choosecombo
------解决方案--------------------
http://asysbang.com/forum.php?mod=viewthread&tid=22&extra=page%3D1
第4条定制
------解决方案--------------------
不同产品拷贝不同的vendor_fonts.xml
比如有A_vendor_fonts.xml和B_vendor_fonts.xml
如果是一个产品要出不同的字体的话,就把一个产品拆成2个产品。。。
------解决方案--------------------
我测试了下,没问题呀
choosecombo 之后
echo ${TARGET_BUILD_FONT}
能正确打印出我选择的font3
估计是你写的有问题,注意下格式