MTK Android 4.4 客制化过程(1)-makefile如何编译Android语言

1.需求:

必须要有:英语,印尼,马拉西亚,德语,英语,西班牙语,菲律宾,法语,意大利,波斯文,葡萄牙,越南,土耳其,俄语,阿拉伯,印度,泰语,柬埔寨,缅文
默认语言:英语

路径:mediatek\config\xxx\ProjectConfig.mk (xxx指的是项目名)

To control resource build. The value would be assigned to PRODUCT_LOCALES under build/target/product/XXX.mk (XXX is each project's name)
MTK_PRODUCT_LOCALES=en_US es_ES zh_CN zh_TW ru_RU pt_BR fr_FR de_DE tr_TR it_IT in_ID ms_MY vi_VN ar_EG my_ZG th_TH fa_IR km_KH tl_PH hi_IN pl_PL ur_PK ja_JP ko_KR cs_CZ nb_NO da_DK et_EE hr_HR lv_LV lt_LT hu_HU nl_NL  sk_SK fi_FI sv_SE el_GR bg_BG sr_RS uk_UA bn_BD lo_LA bn_IN en_GB hdpi -sw600dp -sw720dp

这个只是宏配置在 build\target\product\common.mk 生效
实际的配置为 PRODUCT_LOCALES和PRODUCT_PACKAGES

添加特殊字体文件

ifneq (,$(filter km_KH,$(MTK_PRODUCT_LOCALES)))
  PRODUCT_PACKAGES += Mondulkiri.ttf
endif

PRODUCT_LOCALES参数是用来控制指定打包资源文件 你系统应用对应的语言包和配置的资源都会编译进系统
比如 hdpi mdpi等一些资源,因为屏幕分辨率的因素,只支持hdpi 则mdpi的相关资源就可以不配置,进而节省系统空间

PRODUCT_LOCALES := $(MTK_PRODUCT_LOCALES)
PRODUCT_LOCALES += $(MTK_PRODUCT_AAPT_CONFIG)

这里配置的时候把en_US放在第一位这里就默认为英语
具体配置在 build\core\Makefile


define default-locale
$(subst _, , $(firstword $(1)))
endef
$(if $(product_property_override_locale_language),,$(word 1, $(call default-locale, $(1))))
endef
define default-locale-region
$(if $(product_property_overrides_locale_region),,$(word 2, $(call default-locale, $(1))))
endef
上面一段脚本 ,目的就是先把字符串选出第一位字符然后进行分割比如说en_US 就分成en和US
分别赋值给 PRODUCT_DEFAULT_LANGUAGE PRODUCT_DEFAULT_REGION
...
...
...
PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \
这里就分割成en
PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \
这里就分割成US

之后赋值在build\tools\buildinfo.sh

if [ -n "$PRODUCT_DEFAULT_LANGUAGE" ] ; then
  echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
fi
if [ -n "$PRODUCT_DEFAULT_REGION" ] ; then
  echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION"
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值