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月月考生物试卷
网友关注
- 关于整理人事档案的请示
- 2013年班组长、值班长聘任与解聘的通知
- 3100交接班制度
- 植树节简报
- 2015-质量管理、文件管理SMP培训试题答案
- 班组管理责任承诺书
- 甘肃轨道交通运输技工学校北方校渭南轨道交通运输学校关于进一步明确学校组织机构及职务分工的通知
- (出纳任职担保
- 值日表模板
- 关于开展安全主题劳动竞赛的通知
- 接受教育局年度教育工作考核简讯
- 河南军转干考试公文写作:《公告》与《通告》
- 中国式疾病村
- 武汉东湖新技术开发区创业投资引导基金管理暂行办法(武新管[2012]13号)
- 2015省考申论热点:18个关键词帮你读懂足改方案
- 关于深化现场四个关键工作的通知
- 连退工艺复习题(问答题) (2)
- 员工考勤管理制度 文档
- 建强社区硬软件打造一流示范区
- 河南省教育科学规划课题鉴定结项申请
- 我安全 我健康 我快乐
- 牛羊规模化养殖项目可行性报告
- 六德半寄校电脑管理制度
- 厨房管理制度
- 假期管理制度
- 河南军转干考试公文写作:《通知》
- 乡村医生再注册执业申请审核表
- 全国开展教育信息化工作专项督导检查按照国家教育信息化
- 中华全国总工会关于加强基层工会经费收支管理的通知
- 区县业务单元奖励明细
网友关注视频
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,辽宁省
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
- 3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
- 每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
- 七年级英语下册 上海牛津版 Unit5
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 7
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 冀教版英语三年级下册第二课
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 12
- 8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
- 冀教版英语五年级下册第二课课程解读
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
- 苏科版数学八年级下册9.2《中心对称和中心对称图形》
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
- 北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
- 冀教版小学数学二年级下册1
- 外研版英语七年级下册module1unit3名词性物主代词讲解
- 外研版八年级英语下学期 Module3
- 第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
- 二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
- 沪教版八年级下次数学练习册21.4(2)无理方程P19
- 外研版英语三起5年级下册(14版)Module3 Unit2
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
精品推荐
- 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
- 网吧管理