Android MTK开发时区修改
上传者:孙翊|上传时间:2015-04-22|密次下载
Android MTK开发时区修改
[FAQ06455] 【Zone】如何添加一个新的时区
问题描述:有些项目需要出货到海外,比如非洲的一些国家,目前的版本中这些国家没有单独的时区,而是使用的如非洲东部时间,非洲标准时间等,为了提高当地用户体验,需要在setting菜单中增加一个时区,比如为出货到尼日尼亚的手机增加时区 尼日尼亚拉各斯。
解决方案:以加入Nigeria时区为例,应该如下修改:
1.找到该国家在zoneinfo中的时区信息。
时区信息的文件可以从ftp://munnari.oz.au/pub/下载到最新的,解压tzdata201x*.tar.gz后,在每个地区的txt文件中有城市的时区信息,搜索是否有您要添加的城市,则该时区可以添加;如果没有搜索到相关的国家或城市,则需要考虑使用别的城市的时区。
比如在africa.txt中搜索Nigeria,可以找到下面的内容:
# Nigeria
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Lagos 0:13:36 - LMT 1919 Sep
1:00 - WAT
这样可以看到,尼日利亚只有一个城市可以作为时区ID,这个ID就是Africa/Lagos。
2.修改packages/apps/Settings/res/xml-xx-xx/timezones.xml (xx-xx表示不同的语言和区域),添加下面的内容:
<!-- timezones.xml 用于在setting中增加一个时区设置项 -->
<timezone id="Africa/Lagos">Lagos</timezone>
3.修改framework/base/core/res/res/xml/time_zones_by_country.xml,添加下面的内容
<!--time_zones_by_country.xml 这个用于自动匹配时区时使用,通过country code找一个时区 -->
<!-- Nigeria, 1:00 -->
<timezone code="ng">Africa/Lagos</timezone>
<!-- 这里的code="ri"表示国家代码,比如中国对应cn,美国对应us,不清楚可以维基百科查询ISO_3166-1-->
这是添加一个时区的步骤,如果要添加多个时区,请重复或批量执行以上步骤。
[FAQ08718]如何在ICU中自定义某个时区的显示名称
【Description】:
目前对于有些地区,很多国家会使用一个时区,显示的名称也是一样,比如对于欧洲,很多城市使用“欧洲中部时间”“中欧夏令时”,非洲国家也是类似的。对于有些客户,可能有定制显示需求,对于某些时区,不显示“xx中部时间”,而是显示“xx时间”,比如下面会以荷兰阿姆斯特丹为例,目前在手机Setting中选择“Amsterdam,Berlin”后在Date&Time界面会显示“Central European Summer Time”,下面是修改荷兰语下这个显示为自定义名称的过程。
【Solution】:
时区Europe/Amsterdam目前显示出来的时间是“欧洲中部时间”或“欧洲中部时间”,如果要修改荷兰语下显示为“阿姆斯特丹时间”或其他自定义的显示,请follow下面的修改:
1.找到时区ID
时区id并不是城市名称,手机显示到时区列表上的时区名称与时区id有映射关系,可以通过查看Settings中的timezones.xml来确定,package/apps/Settings/res/xml-zh/timezones.xml是中文。这样可以找到Amsterdam,Berlin的时区id是Europe/Amsterdam。
2.修改metaZones.txt文件
1)修改mapTimezones
修改的目的是把时区添加到自己定义的显示规则中,这样通过时区ID Europe/Amsterdam就可以得到该显示规则Europe_Amsterdam。这个步骤分2步: a)定义自己的显示规则名称
比如我定义了新的规则Europe_Amsterdam, 需要在mapTimezones中添加进去,mapTimezones中顺序是按字母排序的,所以Europe_Amsterdam这个规则要添加到Europe_Central的前面,如下:
Europe_Amsterdam{
}
b)将要修改的时区从原规则中删除,添加到自定义的规则中
找到要修改的时区,比如Europe/Amsterdam在Europe_Central中,
剪切NL{“Europe/Amsterdam”},粘贴到自定义的时区显示规则中,如下所示: Europe_Amsterdam{
NL{"Europe/Amsterdam"}
}
2)修改metaZoneinfo
添加meta信息,这样就可以通过显示规则名称Europe_Amsterdam得到meta信息Europe:Amsterdam。
"Europe:Amsterdam"{
{
"Europe_Amsterdam"
}
}
3. 修改zone/nl.txt文件
不同的txt文件代表的是不同语言,语言和区域代码可通过查询ISO-3166-1和ISO-639标准确定。
定义在界面显示的字串,这样根据之前得到的meta信息可以得到要显示的字串。 同样的,名称是按照字母排序的,所以在Europe_Central前面添加,如下: "meta: Europe_Amsterdam"{
ld{"夏令时间显示名称"}
ls{"标准时间显示名称"}
}
4. 编译ICU资源
请参考FAQ04011进行编译和测试
[FAQ04011]如何编译ICU资源
如果只是测试修改后效果,执行步骤A即可;如果需要build后生效,则需要执行全部步骤
A.在临时目录中编译ICU资源
1.在external/icu4c下新建临时目录icubuild,进入icubuild目录 $mkdir external/icu4c/icuBuild
$cd external/icu4c/icuBuild
2.执行icuConfigureRun Linux命令,生成make文件
$.././runConfigureICU Linux
3.执行make -j2命令
$make -j2
4.将生成的external/icu4c/icuBuild/data/out/tmp/icudt48l.dat push到手机测试
$adb remount
$adb push external/icu4c/icuBuild/out/data/tmp/icudt48l.dat system/usr/icu/
$adb reboot (千万记得重启手机才看得到修改后的效果)
注:JB及以上是icudt48l.dat
B.COPY所需文件
将第一步生成的external\icu4c\icubuild\data\out\tmp\icudt48l.dat复制到external\icu4c\stubdata下并改名为icudt48l-all.dat,覆盖原来的同名文件 注:JB及以上是icudt48l.dat和icudt48l-all.dat
C.配置环境变量
重新配置环境变量(如果不配置正确会导致执行脚本出错)。以我的系统为例,配置过程如下:
1. 在终端中进入/work/pro/c70_u10_y320/mt6572_jb3目录即:
$cd /work/pro/c70_u10_y320/mt6572_jb3
2. 然后执行脚本(等价于./ build/envsetup.sh):
$source build/envsetup.sh
3. 配置环境变量(注意“=”前后不要有空格)。
$export ANDROID_BUILD_TOP=/home/ckt/work/pro/c70_u10_y320/mt6572_jb3 执行完没有任何提示说明配置成功。
执行完没有任何提示说明配置成功,有提示说明配置出错。需要重新配置
D. 执行脚本,重新生成.dat文件
执行脚本,如果遇到文档印尼语错误请用附件(或MTK)提供的脚本(icu_dat_generator.rar)替换后再执行,如下所示:
1. 进入/work/pro/c70_u10_y320/mt6572_jb3/external/icu4c/studdata目录
$cd external/icu4c/stubdata
2. 执行脚本
$./icu_dat_generator.py
如果该脚本执行成功,external\icu4c\stubdata\icudt48l-default.dat会更新,如果看到文件的修改时间变成了最新的时间,就说明已经重新生成,真正最后起作用的是icudt48l- default.dat这个文件。
注:JB及以上是icudt48l-default .dat
E. 重新编译工程
修改后重新编译工程来测试效果,使用./mk ckt72_we_jb3 new命令
F. 上传.dat文件到SVN
如果你使用svn或类似软件进代码管理,那么就要将你修改的结果上传到服务器上,使服务器new或build之后可以看到修改效果。需要上传那些文件呢?请将studdata目录下的icudt48l-default.dat文件上传。
说明:实际上脚本的作用就是将icudt48l-all.dat解压后,根据txt文件内容重新生成icudt48l-default.dat文件,在build的时候Android.mk文件会直接将icudt48l- default.dat文件改名后复制到最终out目录中,所以上传到服务器只需要将生成的这些.dat文件传上去,其它在本机修改的都不用(如果传上去可能会build出错)。
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 新疆公务员考试行测题库:行测每日一练判断推理练习题答案07.19
- 2016年新疆自治区公务员面试真题(7月21日下午)
- 新疆公务员考试行测题库:行测每日一练数量关系练习题06.30
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题答案07.03
- 2018新疆公务员考试行测演练厅之生活常识模拟题
- 新疆公务员考试申论每周一练:老年健身场所建设
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题07.10
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题答案07.10
- 新疆公务员行测题库:行测每日一练判断推理练习题07.19
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题答案07.17
- 新疆公务员考试行测题库:行测每日一练常识判断练习题答案07.11
- 公务员考试行测题库:行测每日一练数量关系练习题答案07.21
- 新疆公务员考试行测题库:行测每日一练常识判断练习题07.11
- 新疆公务员考试行测题库:行测每日一练资料分析练习题答案07.27
- 新疆公务员行测题库:行测每日一练常识判断练习题07.18
- 新疆公务员考试行测题库:行测每日一练数量关系练习题答案06.30
- 新疆公务员考试申论每周一练:保健品行业乱象与公民健康素养
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题07.17
- 新疆公务员考试行测题库:行测每日一练常识判断练习题答案07.04
- 2016年新疆自治区公务员面试真题(7月21日上午)
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题答案07.31
- 新疆公务员考试行测题库:行测每日一练资料分析练习题07.06
- 新疆公务员考试行测题库:行测每日一练言语理解与表达练习题07.03
- 新疆公务员考试行测题库:行测每日一练资料分析练习题07.13
- 新疆公务员考试行测题库:行测每日一练判断推理练习题答案07.05
- 新疆公务员考试行测题库:行测每日一练判断推理练习题07.05
- 新疆公务员考试行测题库:行测每日一练常识判断练习题07.04
- 新疆公务员行测题库:行测每日一练数量关系练习题07.07
- 新疆公务员行测题库:行测每日一练常识判断练习题答案07.18
- 新疆公务员考试申论每周一练答案:老年健身场所建设
网友关注视频
- 第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
- 飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
- 河南省名校课堂七年级下册英语第一课(2020年2月10日)
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
- 3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
- 沪教版八年级下册数学练习册21.3(2)分式方程P15
- 北师大版数学四年级下册第三单元第四节街心广场
- 沪教版牛津小学英语(深圳用)五年级下册 Unit 1
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
- 《小学数学二年级下册》第二单元测试题讲解
- 每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
- 第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
- 二年级下册数学第三课 搭一搭⚖⚖
- 冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
- 8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 苏科版数学七年级下册7.2《探索平行线的性质》
- 8.对剪花样_第一课时(二等奖)(冀美版二年级上册)_T515402
- 三年级英语单词记忆下册(沪教版)第一二单元复习
- 小学英语单词
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 2
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
- 冀教版小学数学二年级下册1
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
- 冀教版小学英语四年级下册Lesson2授课视频
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
- 外研版英语七年级下册module3 unit2第一课时
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理