[发明专利]基于签到法的字符串资源是否同步的检测方法及系统有效
申请号: | 201410098196.2 | 申请日: | 2014-03-17 |
公开(公告)号: | CN103823686B | 公开(公告)日: | 2017-04-19 |
发明(设计)人: | 唐兴龙 | 申请(专利权)人: | 广东欧珀移动通信有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 广州市华学知识产权代理有限公司44245 | 代理人: | 李盛洪 |
地址: | 523860 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 签到 字符串 资源 是否 同步 检测 方法 系统 | ||
技术领域
本发明涉及一种字符资源是否同步的检测方法及系统,尤其是一种基于签到法的字符串资源是否同步的检测方法及系统。属于软件开发技术领域。
背景技术
目前,在软件开发中经常会有多种语言的字符串资源,而且数量都比较多,因此经常出现一种问题就是对应的字符串有中文资源,但没有英文资源,或者是缺少繁体资源等,如果出现这种情况就会使软件显示不正确或者是由于找不到资源ID而出现异常。
中国专利申请号为200910081166.X的发明专利申请公开了一种字符串资源定义与调用的同步方法及装置,该申请用于解决在软件开发环境中,开发人员为维护字符串资源容易造成冗余以及出现定义与调用不同步的技术问题。该申请通过添加扫描检测模块自动程序代码中字符串调用以及在字符串资源文件中的字符串定义进行双向的检测,如果发现存在字符串冗余或未定义的情况则主动提示程序开发人员,从而减轻开发人员的工作负担,但并未出现解决上述技术问题的启示。
发明内容
本发明的目的是为了解决上述现有技术的缺陷,提供一种可以快速地检测出软件中不同语言种类的字符串资源的差异,并防止程序崩溃或显示异常的基于签到法的字符串资源是否同步的检测方法。
本发明的另一目的在于提供一种基于签到法的字符串资源是否同步的检测系统。
本发明的目的可以通过采取如下技术方案达到:
基于签到法的字符串资源是否同步的检测方法,其特征在于所述方法包括:
读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义。
作为一种优选方案,所述签到的方式通过创建ItemSignatureTable对象实现,不同语言中相同含义的字符串资源共用一个ItemSignatureTable对象,该对象包含两个变量,分别为mStringID变量和mSignatureTable变量;
其中,mStringID变量表示字符串资源ID;mSignatureTable变量表示字符串资源的签到表,mSignatureTable变量用二进制中不同的位来标记字符串资源的不同种类语言是否有签到,1表示有签到,0表示未签到。
作为一种优选方案,所述采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义,具体包括:
遍历所有的字符串资源,通过字符串资源ID在哈希表里查找该ID是否已创建了一张签到表;
若查找的字符串资源ID已创建了一张签到表,则获取ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1;
若查找的字符串资源ID还未创建一张签到表,则创建ItemSignatureTable对象,并在mSignatureTable变量中相应语言的位设置为1,然后把ItemSignatureTable对象加入哈希表;
遍历哈希表里的每一项,查看表中所有ItemSignatureTable对象中mSignatureTable变量的语言位是否全部为1,若至少有一个位不为1,则说明相应的字符串资源的某种语言没有来签到;
在相应的字符串资源至少有一种语言没有来签到时,通过位运算判断mSignatureTable变量的语言位哪一位为0,即可知哪种语言没有定义该字符串资源;
将没有在所有语言的资源文件中都有定义的字符串资源输出到报告文件里,并指明该字符串资源在哪种语言里没有定义。
作为一种优选方案,所述把ItemSignatureTable对象加入哈希表后,key值表示字符串资源ID,value值表示ItemSignatureTable对象。
本发明的另一目的可以通过采取如下技术方案达到:
基于签到法的字符串资源是否同步的检测系统,其特征在于所述系统包括:
资源文件读取模块,用于读取不同种类语言的资源文件,把同一类语言所有的字符串资源ID放在同一个数组,并使同一含义的字符串资源用同一个ID;
字符串资源检测模块,用于采用签到的方式来检测出没有在所有语言的资源文件中都有定义的字符串资源,并将该字符串资源输出到报告文件里,指明该字符串资源在哪种语言里没有定义。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东欧珀移动通信有限公司,未经广东欧珀移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410098196.2/2.html,转载请声明来源钻瓜专利网。