Android 系统的语言加载功能的部分片段

本文介绍了Android系统启动时如何设定语言和区域参数,主要关注`AndroidRuntime.cpp`和`SystemServer`中的处理。首先,C++层的`AndroidRuntime`在启动虚拟机时依据`persist.sys.locale`等属性加载语言设置。接着,`SystemServer`服务运行时,会更新这些属性以确保`persist.sys.locale`的优先级。默认语言和地区通常在编译时通过`build/tools/buildinfo.sh`和`PRODUCT_DEFAULT_LOCALE`设置,优先级顺序为`persist.sys.locale`、`persist.sys.language`等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓系统启动时,根据系统当前的属性信息,设定了语言和区域参数

 

所依赖的属性参数,可以在系统编译时指定。下面的两个文件是有关通过当前系统属性设置 Locale 的动作:

1. frameworks/base/core/jni/AndroidRuntime.cpp

里面有个方法,方法上有说明,表明了根据几个属性值加载,先判断的属性如果不为空,就不会去判断后面的属性了,如下:

/*
 * Read the persistent locale. Inspects the following system properties
 * (in order) and returns the first non-empty property in the list :
 *
 * (1) persist.sys.locale
 * (2) persist.sys.language/country/localevar (country and localevar are
 * inspected iff. language is non-empty.
 * (3) ro.product.locale
 * (4) ro.product.locale.language/region
 *
 * Note that we need to inspect persist.sys.language/country/localevar to
 * preserve language settings for devices that are upgrading from Lollipop
 * to M. The same goes for ro.product.locale.language/region as well.
 */
const std::string readLocale()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值