一种核对apk内多国语言的方法及其系统的制作方法

文档序号:8445434阅读:593来源:国知局
一种核对apk内多国语言的方法及其系统的制作方法
【技术领域】
[0001 ] 本发明涉及语言间的对比方法,具体涉及一种核对APK内多国语言的方法及其系统。
【背景技术】
[0002]现有技术中对比android上不同应用在多国语言下的文字,通常采用手工对比法。方法大致为手持两台不同语言的机器,对比相同页面下是否存在相同的字符串,并手动记入相同的内容。
[0003]手工方法测试一个手机模块需要耗费2-3小时,且一些隐藏的比较深的模块和需要特殊条件(如低电量,低内存等)才能触发的提示很难发现。如果还需要结合字典查找,则花费时间更久。最后,提交的错误记录是根据界面截图而来,开发人员还需要时间定位这些字符串。

【发明内容】

[0004]本发明的目的在于提供一种核对APK内多国语言的方法及其系统,能够实现不同Values文件中string, xml文件之间的对比,并且能够与字典文件进行对比,指出字典文件的缺陷,测试效率高,准确率高。
[0005]为了达到上述目的,本发明通过以下技术方案实现:一种核对APK内多国语言的方法,其特点是,包含以下步骤:
51、抓取待测试的APK文件,并对待测试的APK文件进行反编译以获得对比文件及源文件;
52、解析对比文件,获取对比文件中所有节点的属性名和内容字符串,新建一个MapFile字段构成的List,并将节点的属性名和内容字符串分别存入MapFile字段的label和 contrastText ;
53、解析源文件,获取源文件中所有节点的属性名和内容字符串,新建一个MapFi I e字段构成的LiSt,并将节点的属性名和内容字符串分别存入MapFiIe字段的IabeI和srcText ;
54、1、获取源文件List中的一个元素,将该元素中的label和srcText字段与对比文件中一个元素的label和contrastText字段进行对比;
55、判断字段是否相同;
55.1、若是,则输出字段相符的对比结果,从源文件中选取下一个元素再执行步骤S4.1 ;
若否,则执行步骤S6;
56、判断对比文件中是否包含其他元素;
若是,则从对比文件中选取下一个元素再执行步骤S4.1 ;
若否,则执行步骤S7; S7、判断源文件中是否包含其他元素;
若是,则从源文件中选取下一个元素再执行步骤S4.1 ;
57.1、若否,则输出字段不相符的对比结果。
[0006]所述的步骤SI中还包含一步骤S1.1:
S1.1、判断源文件是否为xml格式;
若是,则执行步骤S2 ;
S1.1.1、若否,则输出源文件为无效文件的结果。
[0007]所述的步骤SI还包含与一步骤S1.2:
S1.2、判断对比文件是否为xml格式;
若是,则执行步骤S2 ;
S1.2.1、若否,则输出对比文件为无效文件的结果。
[0008]核对APK内多国语言的方法进一步包含一与所述步骤S4.1并列的步骤S4.2:
S4.2.1、解析字典文件,获取字典内容,新建一个ExlContent字符串构成的List,并将字典内容的第一列及第二列分别存入ExlContent字符串中的Rowl和Row2 ;
S4.2.2、获取源文件中的一个元素对应的srcText字段;
S4.2.3、获对比文件中的一个节点对应的contrastText字段;
S4.2.4、将 srcText 字段与 contrastText 字段分别与 RowK Row2 对比;
S4.2.5、判断是否有相符的字符串;
若否,则输出字典对比结果;
若是,则返回步骤S4.2.4。
[0009]所述的S4.2.1之前还包含步骤S4.2.0:
54.2.0、判断字典文件是否为xls格式;
若是,则执行步骤S4.2.1 ;
若否,则输出字典文件为无效文件的结果。
[0010]核对APK内多国语言的方法进一步包含一与所述步骤S5.1并列的步骤S5.2:
55.2.1、将源文件List中该元素的label和srcText字段分别与字典文件中的Rowl、Row2对比;
S5.2.2、判断字段是否相符;
若否,则输出字段不相符的结果,再从源文件中获取下一个元素后执行步骤S5.2.1 ; 若是,则执行步骤S5.2.3 ;
S5.2.3、判断源文件中是否包含其他元素;
若是,则从源文件中选取下一个元素再执行步骤S5.2.1 ;
若否,则输出字段相符的结果。
[0011]所述的步骤S7.2之后还包含步骤S8.1:
58.1.1、将源文件List中该元素的label字段与对比文件中元素的label字段进行对比;
S8.1.2、判断字段是否相同;
若是,则执行步骤S8.1.1 ;
若否,则输出对比结果后上报至BUG库。
[0012]所述的步骤S7.2之后还包含步骤S8.2:
S8.2.1、将对比文件List中该元素的label字段与源文件中元素的label字段进行对比;
S8.2.2、判断字段是否相同;
若是,则执行步骤S8.1.1 ;
若否,则输出对比结果后上报至BUG库。
[0013]一种核对APK内多国语言的系统,其特点是,包含:
抓取模块,用于抓取待测试的APK文件;
反编译模块,与所述抓取模块连接,用于反编译待测试的APK文件,以获取对比文件及源文件;
格式校验模块,与所述反编译模块连接,用于校验对比文件及源文件的格式;
字段比对模块,与所述格式校验模块连接,用于对比源文件与对比文件中的字段是否相同;
结果输出模块,与所述字段比对模块连接,用于输出字段比对模块的结果;
存储模块,与所述结果输出模块连接,用于存储对比结果。
[0014]核对APK内多国语言的系统进一步包含一显示模块,与所述存储模块连接,用于显示对比结果。
[0015]本发明一种核对APK内多国语言的方法及其系统与现有技术相比具有以下优点:实现Values文件中string, xml文件之间的对比,测试效率高,准确性高;通过与字典文件对比,可以找出字典文件的缺失,可以协助完善字典文件。
【附图说明】
[0016]图1为本发明一种核对APK内多国语言的系统结构框图;
图2为本发明一种核对APK内多国语言的方法的流程图;
图3为步骤S4.2的流程图;
图4为步骤S5.2的流程图。
【具体实施方式】
[0017]以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0018]如图1 一种核对APK内多国语言的系统,包含:抓取模块1,用于抓取待测试的APK文件;反编译模块2,与所述抓取模块I连接,用于反编译待测试的APK文件,以获取对比文件及源文件;格式校验模块3,与所述反编译模块2连接,用于校验对比文件及源文件的格式;字段比对模块4,与所述格式校验模块3连接,用于对比源文件与对比文件中的字段是否相同;结果输出模块5,与所述字段比对模块4连接,用于输出字段比对模块4的结果;存储模块6,与所述结果输出模块5连接,用于存储对比结果;显示模块7,与所述存储模块6连接,用于显示对比结果。
[0019]如图2所示,一种核对APK内多国语言的方法,包含以下步骤:
S1、抓取待测试的APK文件,并对待测试的APK文件进行反编译以获得对比文件及源文件。
[0020]利用adb 命令,在 CMD 命令行中输入 adb pull /system/app/〈file.apk><dir> (〈file.apk>代表了要反测试的APK文件,最好写绝对路径,比如C:\MusicPlayer.apk〈dir>代表了复制后文件的存储位置,比如C:\MusicPlayer)命令,将要测试的APK从手机复制到PC端。
[0021]利用谷歌官方解包工具APKTooI,在CMD命令行中输入apktool d -f〈file.apkXdir〉(〈file.apk>代表了要反测试的APK文件,最好写绝对路径,比如C: \MusicPlayer.apk<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer)得到反编译后的APK文件文件内容。
[0022]S1.1、判断源文件是否为xml格式;
若是,则执行步骤S2 ;
S1.1.1、若否,则输出源文件为无效文件的结果。
[0023]S1.2、判断对比文件是否为xml格式;
若是,则执行步骤S2 ;
S1.2.1、若否,则输出对比文件为无效文件的结果。
[0024]这里步骤S1.1与步骤S1.2没有先后顺序。
[0025]S2、解析对比文件,获取对比文件中所有节点的属性名和内容字符串,新建一个MapFile字段构成的List,并将节点的属性名和内容字符串分别存入MapFile字段的label和 contrastText。
[0026]选择上步解包后的文件夹中res文件夹,选择里面Values文件夹,选择里面string, xml文件,成功后程序界面会显示选择的对比文件地址(对比文件一般选择Values或是Values-GB,应为android默认语言为英文。选择Values可以得到对比默认状态中没有翻译的节点,选择Values-GB则是为了和英文对比)。xml内容解析,取得节点的属性名和内容字符串,新建立个MapFile字段构成的List,将属性名和内容字符串依次放入MapFile字段的 Iebel 和 contrastText。
[0027]S3、解析源文件,获取源文件中所有节点的属性名和内容字符串,新建一个MapFile字段构成的List,并将节点的属性名和内容字符串分别存入MapFile字段的label和 srcTextο
[0028]选择上步解包后的文件夹中res文件夹,选择里面要测试国家语言的Values文件夹(如法语为Values-fr。德语为Values_de,具体见工具中的语言对应表.xls),选择里面string, xml文件,成功后程序界面会显示选择的源文件地址。工具新建立个MapFile字段构成的List,将属性名和内容字符串依次放入MapFile字段的Iebel和srcText。
[0029]S4.1、获取源文件List中的一个元素,将该元素中的label和srcText字段与对比文件中一个元素的label和contrastText字段进行对比;
如图3所示,步骤S4.2与步骤S4.1并列包含:
S4.2.0、判断字典文件是否为xls格式;
若是,则执行步骤S4.2.1 ;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1