一、build.prop生成过程

Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product/<board>/system/目录下。在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_get*()[Java域]读取这些属性值。


build.prop的生成是由make系统解析build/core/Makefile完成。

1)Makefile中首先定义各种变量,这在下一步执行时会用到。比如:

[plain] view plain copy
  1. ...
  2. PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))"\
  3. PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))"\
  4. ...
2)Makefile中调用build/tools/ buildinfo.sh 执行脚本,并输出到build.prop

Buildinfo.sh很简单,只是echo一些属性,比如:

[plain] view plain copy
  1. ...
  2. echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
  3. echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION"
  4. ...
而,ro.product.locale.language/ ro.product.locale.region就是些属性,等号后面是值。

3)Makefile中直接把$(TARGET_DEVICE_DIR)/system.prop的内容追加到build.prop中。

4)收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中。

ADDITIONAL_BUILD_PROPERTIES又会收集PRODUCT_PROPERTY_OVERRIDES中定义的属性

[plain] view plain copy
  1. ADDITIONAL_BUILD_PROPERTIES:=\
  2. $(ADDITIONAL_BUILD_PROPERTIES)\
  3. $(PRODUCT_PROPERTY_OVERRIDES)

通过build.prop生成过程的分析,可知哪里可以修改原有的属性或加入自己定义属性,那就是2) buildinfo.sh; 3) system.prop; 4) ADDITIONAL_BUILD_PROPERTIES或PRODUCT_PROPERTY_OVERRIDES。不过个人建议改在system.prop或PRODUCT_PROPERTY_OVERRIDES,这对应于具体特定平台或产品的修改。


二、具体的配置项目:

1、默认语言和时区:

persist.sys.timezone=Asia/Shanghai
persist.sys.language=zh
persist.sys.country=CN

加入system.prop即可;


persist.sys.timezone值域 Marshall Islands马绍尔群岛Pacific/Majuro Midway Island中途岛Pacific/Midway Hawaii夏威夷Pacific/Honolulu Alaska阿拉斯加州America/Anchorage Pacific Time太平洋时间America/Los_Angeles Tijuana蒂华纳America/Tijuana Arizona亚利桑那America/Phoenix Chihuahua吉娃娃America/Chihuahua Mountain Time山地时间America/Denver Central America中美洲America/Costa_Rica Central Time美国中部时间America/Chicago Mexico City墨西哥城America/Mexico_City Saskatchewan萨斯喀彻温省America/Regina Bogota波哥大America/Bogota Eastern Time东部时间America/New_York Atlantic Time (Barbados)大西洋时间(巴巴多斯)America/Barbados Atlantic Time (Canada) 大西洋时间(加拿大) America/Halifax Manaus 马瑙斯 America/Manaus Santiago 圣地亚哥 America/Santiago Newfoundland 纽芬兰 America/St_Johns Brasilia 巴西利亚 America/Sao_Paulo Buenos Aires 布宜诺斯艾利斯 America/Argentina/Buenos_Aires Greenland 格陵兰 America/Godthab Montevideo 蒙得维的亚 America/Montevideo Mid-Atlantic 中大西洋 Atlantic/South_Georgia Azores 亚速尔群岛 Atlantic/Azores Cape Verde Islands 佛得角群岛 Atlantic/Cape_Verde Casablanca 卡萨布兰卡 Africa/Casablanca London, Dublin 伦敦,都柏林 Europe/London Amsterdam, Berlin 阿姆斯特丹,柏林 Europe/Amsterdam Belgrade贝尔格莱德Europe/Belgrade Venezuela委内瑞拉America/Caracas Brussels布鲁塞尔Europe/Brussels Sarajevo萨拉热窝Europe/Sarajevo Windhoek温得和克Africa/Windhoek W. Africa TimeW.非洲时间Africa/Brazzaville Amman, Jordan约旦安曼,Asia/Amman Athens, Istanbul雅典,伊斯坦布尔Europe/Athens Beirut, Lebanon贝鲁特,黎巴嫩Asia/Beirut Cairo开罗Africa/Cairo Helsinki赫尔辛基Europe/Helsinki Jerusalem耶路撒冷Asia/Jerusalem Minsk明斯克Europe/Minsk Harare哈拉雷Africa/Harare Baghdad巴格达Asia/Baghdad Moscow莫斯科Europe/Moscow Kuwait科威特Asia/Kuwait Nairobi内罗毕Africa/Nairobi Tehran德黑兰Asia/Tehran Baku巴库Asia/Baku Tbilisi第比利斯Asia/Tbilisi Yerevan埃里温Asia/Yerevan Dubai迪拜Asia/Dubai Kabul喀布尔Asia/Kabul Islamabad, Karachi伊斯兰堡,卡拉奇Asia/Karachi Ural'skUral'skAsia/Oral Yekaterinburg叶卡捷琳堡Asia/Yekaterinburg Kolkata加尔各答Asia/Calcutta Sri Lanka斯里兰卡Asia/Colombo Kathmandu加德满都Asia/Katmandu Astana阿斯塔纳Asia/Almaty Yangon仰光Asia/Rangoon Krasnoyarsk克拉斯诺亚尔斯克Asia/Krasnoyarsk Bangkok曼谷Asia/Bangkok Beijing北京Asia/Shanghai Hong Kong香港Asia/Hong_Kong Irkutsk伊尔库次克Asia/Irkutsk Kuala Lumpur吉隆坡Asia/Kuala_Lumpur Perth珀斯Australia/Perth Taipei台北Asia/Taipei Seoul汉城Asia/Seoul Tokyo, Osaka东京,大阪Asia/Tokyo Yakutsk雅库茨克Asia/Yakutsk Adelaide阿德莱德Australia/Adelaide Darwin达尔文Australia/Darwin Brisbane布里斯班Australia/Brisbane Hobart霍巴特Australia/Hobart Sydney, Canberra悉尼,堪培拉Australia/Sydney Vladivostok符拉迪沃斯托克Asia/Vladivostok Guam关岛Pacific/Guam Magadan马加丹Asia/Magadan Auckland奥克兰Pacific/Auckland Fiji斐济Pacific/Fiji Tonga汤加Pacific/Tongatapu

persist.sys.language和persist.sys.country值域

LANGUAGE-COUNTRY(在设置时,注意用大写) 简体中文(中国) zh-cn繁体中文(台湾地区) zh-tw 繁体中文(香港) zh-hk英语(香港) en-hk 英语(美国) en-us英语(英国) en-gb 英语(全球) en-ww英语(加拿大) en-ca 英语(澳大利亚) en-au英语(爱尔兰) en-ie 英语(芬兰) en-fi芬兰语(芬兰) fi-fi 英语(丹麦) en-dk丹麦语(丹麦) da-dk 英语(以色列) en-il希伯来语(以色列) he-il 英语(南非) en-za英语(印度) en-in 英语(挪威) en-no英语(新加坡) en-sg 英语(新西兰) en-nz英语(印度尼西亚) en-id 英语(菲律宾) en-ph英语(泰国) en-th 英语(马来西亚) en-my英语(阿拉伯) en-xa 韩文(韩国) ko-kr日语(日本) ja-jp 荷兰语(荷兰) nl-nl荷兰语(比利时) nl-be 葡萄牙语(葡萄牙) pt-pt葡萄牙语(巴西) pt-br 法语(法国) fr-fr法语(卢森堡) fr-lu 法语(瑞士) fr-ch法语(比利时) fr-be 法语(加拿大) fr-ca西班牙语(拉丁美洲) es-la 西班牙语(西班牙) es-es西班牙语(阿根廷) es-ar 西班牙语(美国) es-us西班牙语(墨西哥) es-mx 西班牙语(哥伦比亚) es-co西班牙语(波多黎各) es-pr 德语(德国) de-de德语(奥地利) de-at 德语(瑞士) de-ch俄语(俄罗斯) ru-ru 意大利语(意大利) it-it希腊语(希腊) el-gr 挪威语(挪威) no-no匈牙利语(匈牙利) hu-hu 土耳其语(土耳其) tr-tr捷克语(捷克共和国) cs-cz 斯洛文尼亚语sl-sl波兰语(波兰) pl-pl 瑞典语(瑞典) sv-se西班牙语(智利) es-cl

2、其他属性待续


更多相关文章

  1. Android 开发中常用英语词句
  2. [Android]美国VOA英语学习软件,无广告
  3. Android英语单词记忆程序源码
  4. android英语字典(内含源码哦)
  5. Python英语 - Issue16
  6. 预测优秀数据科学家的五个面试问题 | Python英语-Issue15
  7. Python英语 - Issue14
  8. Python英语 - Issue13
  9. Python英语-Issue03

随机推荐

  1. Android之SharedPreferences两个工具类
  2. Android(安卓)studio的布局总结
  3. android边缓存边播放mp4
  4. Android中的Menu(菜单)的三种类型菜单的
  5. 个人开发总结分享:Android学习及如何利用a
  6. 另一种绕过 Android P以上非公开API限制
  7. Android Training - 使用碎片创建一个动
  8. Android蓝牙通讯模块源码(Android蓝牙开发
  9. [Android Studio 权威教程]Android Studio
  10. 关于Android中GestureOverlayView多笔画