字符串数据收集方法、装置、电子设备和计算机可读介质与流程

文档序号:37355471发布日期:2024-03-18 18:40阅读:16来源:国知局
字符串数据收集方法、装置、电子设备和计算机可读介质与流程

本公开的实施例涉及系统优化,具体涉及字符串数据收集方法、装置、电子设备和计算机可读介质。


背景技术:

1、目前,ios(一种终端操作系统)为实现应用(app)支持字符串的多语言国际化,第一步往往是需要收集app内置所有展示的字符串。相关技术大多数是通过检索app源码,然后手动收集,之后通过写入到语言包(统一文件或以模块文件)进行管理展示。

2、然而,发明人发现,这种方法存在一个重要的技术问题,即需要获取app的全部源码权限。然而在一些场景中,可能无法拿到应用的所有源码。如某些大公司的大型应用,可能不会提供完整的应用源码。这样会影响多种语言字符串的收集,导致国际化覆盖率不完整。

3、该背景技术部分中所公开的以上信息仅用于增强对本发明构思的背景的理解,并因此,其可包含并不形成本国的本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。

2、本公开的一些实施例提出了字符串数据收集方法、字符串数据收集装置、电子设备、计算机可读介质和计算机程序产品,来解决以上背景技术部分提到的技术问题中的一项或多项。

3、第一方面,本公开的一些实施例提供了一种字符串数据收集方法,包括:根据预设应用的安装包,获取到预设应用的二进制文件;对二进制文件中的目标字符串进行筛选,其中,目标字符串为表征预设语言的字符串;根据目标字符串的类型,对目标字符串进行编解码处理,收集得到预设语言的字符串数据。

4、在一些实施例中,对二进制文件中的目标字符串进行筛选,包括:分析确定二进制文件中用于存放字符串常量的节,其中,节包括第一节和第二节,分别存放不同类型的字符串;确定第一节中所存放的字符串常量中的目标字符串,以作为第一目标字符串;确定第二节中所存放的字符串常量中的目标字符串,以作为第二目标字符串。

5、在一些实施例中,根据目标字符串的类型,对目标字符串进行编解码处理,包括:响应于确定第一目标字符串为以空字符结尾的字符串,根据预设分隔符,获取第一目标字符串中的至少一段八进制数据;对于至少一段八进制数据中的每段八进制数据,将该段八进制数据转换成十六进制数据,以及取该十六进制数据的指定位数据,得到至少一组数据;利用预设编码方式对至少一组数据解码处理,以得到预设语言的字符串数据。

6、在一些实施例中,根据目标字符串的类型,对目标字符串进行编解码处理,还包括:响应于确定第二目标字符串为统一码字符串,选取第二目标字符串中指示内容数据的十六进制数据;将十六进制数据转换成字符串,得到内容字符串;利用预设编码方法对内容字符串进行解码处理,以得到预设语言的字符串数据。

7、在一些实施例中,将十六进制数据转换成字符串,得到内容字符串,包括:利用正则表达式匹配十六进制数据中的非空字符,以及按照数据顺序将各非空字符进行拼接,得到至少一个内容字符串,其中,空字符作为各内容字符串之间的分隔符。

8、在一些实施例中,根据预设应用的安装包,获取到预设应用的二进制文件,包括:将预设应用的安装包的后缀名修改为压缩文件格式,对修改后的安装包进行解压缩,获取得到预设应用的二进制文件。

9、在一些实施例中,该方法还包括:将收集得到的预设语言的字符串数据,按照预设格式存储在对应预设语言的语言包文件中,以得到与目标字符串的映射关系;以及根据应用所在终端的语言环境设置,从多种语言包文件中选取与语言环境设置相匹配的目标语言包文件;基于目标语言包文件和映射关系,将应用中的相关数据按照目标语言在终端上显示。

10、第二方面,本公开的一些实施例提供了一种字符串数据收集装置,包括:文件获取单元,被配置成根据预设应用的安装包,获取到预设应用的二进制文件;字符串筛选单元,被配置成对二进制文件中的目标字符串进行筛选和收集,其中,目标字符串为表征预设语言的字符串;数据收集单元,被配置成根据目标字符串的类型,对目标字符串进行编解码处理,收集得到预设语言的字符串数据。

11、在一些实施例中,字符串筛选单元进一步被配置成分析确定二进制文件中用于存放字符串常量的节,其中,节包括第一节和第二节,分别存放不同类型的字符串;确定第一节中所存放的字符串常量中的目标字符串,以作为第一目标字符串;确定第二节中所存放的字符串常量中的目标字符串,以作为第二目标字符串。

12、在一些实施例中,数据收集单元进一步被配置成响应于确定第一目标字符串为以空字符结尾的字符串,根据预设分隔符,获取第一目标字符串中的至少一段八进制数据;对于至少一段八进制数据中的每段八进制数据,将该段八进制数据转换成十六进制数据,以及取该十六进制数据的指定位数据,得到至少一组数据;利用预设编码方式对至少一组数据解码处理,以得到预设语言的字符串数据。

13、在一些实施例中,数据收集单元还进一步被配置成响应于确定第二目标字符串为统一码字符串,选取第二目标字符串中指示内容数据的十六进制数据;将十六进制数据转换成字符串,得到内容字符串;利用预设编码方法对内容字符串进行解码处理,以得到预设语言的字符串数据。

14、在一些实施例中,数据收集单元进一步被配置成利用正则表达式匹配十六进制数据中的非空字符,以及按照数据顺序将各非空字符进行拼接,得到至少一个内容字符串,其中,空字符作为各内容字符串之间的分隔符。

15、在一些实施例中,文件获取单元进一步被配置成将预设应用的安装包的后缀名修改为压缩文件格式,对修改后的安装包进行解压缩,获取得到预设应用的二进制文件。

16、在一些实施例中,该装置还包括:语言包存储单元,被配置成将收集得到的预设语言的字符串数据,按照预设格式存储在对应预设语言的语言包文件中,以得到与目标字符串的映射关系;以及语言匹配单元,被配置成根据应用所在终端的语言环境设置,从多种语言包文件中选取与语言环境设置相匹配的目标语言包文件;基于目标语言包文件和映射关系,将应用中的相关数据按照目标语言在终端上显示。

17、第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面中任一实现方式所描述的字符串数据收集方法。

18、第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现上述第一方面中任一实现方式所描述的字符串数据收集方法。

19、第五方面,本公开的一些实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述第一方面中任一实现方式所描述的字符串数据收集方法。

20、本公开的上述各个实施例具有如下有益效果:本公开的一些实施例的字符串数据收集方法,可以通过分析应用的二进制文件,来获取多种语言的字符串,从而解决相关技术中因拿不到源码部分,而无法支持国际化的问题。

21、具体地,本公开的一些实施例的字符串数据收集方法,使用逆向思维的方式,不通过源码来收集国际化的字符串,而是通过分析相应应用包中的二进制文件,来自动化收集所需语言的字符串。这样不仅解决了因拿不到源码部分,而无法支持国际化的问题,同时通过自动化可以无遗漏全量收集字符串,并且自动将其写入对应的语言包中。这样可以大大提高系统的多语言覆盖率,丰富应用内容可显示的语言。既可以降低开发工作量,又有助于提升系统的使用人群范围和数量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1