CN109992293A - Android系统组件版本信息的组装方法及装置 - Google Patents
Android系统组件版本信息的组装方法及装置 Download PDFInfo
- Publication number
- CN109992293A CN109992293A CN201810002195.1A CN201810002195A CN109992293A CN 109992293 A CN109992293 A CN 109992293A CN 201810002195 A CN201810002195 A CN 201810002195A CN 109992293 A CN109992293 A CN 109992293A
- Authority
- CN
- China
- Prior art keywords
- version information
- string
- key
- character string
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供Android系统组件版本信息的组装方法及装置,所述方法包括:将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入BuildConfig.java文件中;通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。本发明实现了组件版本信息的自动封装并转存至java文件中,最终能够自动解析所有的组件版本信息,提高开发工作效率的同时降低了人为引入修改错误的概率。
Description
技术领域
本发明涉及互联网开发技术领域,更具体地,涉及Android系统组件版本信息的组装方法及装置。
背景技术
在直播平台Android客户端组件化开发的过程中,为了方便对版本信息进行管理,针对每一个组件都定义了一个版本号,后续需要将所有组件的版本信息读取出来,并全部传输到android页面中进行显示。
当需要对组件的版本信息进行变更(即动态增加或减少)时,以增加版本信息为例,传统的方案中每添加一个组件的版本信息时,需要开发人员手动将该版本信息添加到版本库中,并需要将版本信息写入到BuildConfig.java文件中,然后在显示的地方也需要修改对应的读取业务代码,才能够完成相应的流程。
通过上述描述可以获知传统的方案实现组件版本信息的变更时,需要直接或间接的修改多处与版本信息相关的业务逻辑代码,非常繁琐的同时造成开发效率低下,并且这种修改也较容易引入人为错误。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的Android系统组件版本信息的组装方法及装置。
根据本发明的一个方面,提供Android系统组件版本信息的组装方法,包括:
S1,将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
S2,使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
S3,在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
其中,所述步骤S2中使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串的步骤进一步包括:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
其中,所述步骤S3进一步包括:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
其中,所述通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值的步骤进一步包括:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
根据本发明的另一个方面,提供Android系统组件版本信息的组装装置,包括:
版本信息存储模块,用于将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
存储格式转换模块,用于使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
版本信息解析模块,用于在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
其中,所述存储格式转换模块具体用于:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
其中,所述版本信息解析模块具体用于:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
其中,所述存储格式转换模块具体用于:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
根据本发明的另一个方面,提供Android系统组件版本信息的组装设备,包括存储器、处理器、以及总线,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述存储器中的程序指令,以执行如前所述的方法。
根据本发明的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前所述的方法。
本发明提出的Android系统组件版本信息的组装方法及装置,实现了组件版本信息的自动封装并转存至java文件中,最终能够自动解析所有的组件版本信息,并自动在页面上进行展示。不需要需要直接修改与版本信息相关的业务逻辑代码,提高开发工作效率的同时降低了人为引入修改错误的概率。
附图说明
图1为根据本发明一实施例提供的Android系统组件版本信息的组装方法的流程示意图;
图2为根据本发明另一实施例提供的Android系统组件版本信息的组装装置的结构示意图;
图3为根据本发明另一实施例提供的Android系统组件版本信息的组装设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
如图1所示,为本发明一实施例提供的Android系统组件版本信息的组装方法的流程示意图,包括:
S1,将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
S2,使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
S3,在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
具体地,S1,为了方便版本信息的管理,将目标Android项目所有组件的版本信息统一存放在一个自定义的键值对集合中的,该键值对集合的实现代码如下所示:
其中,douyuModelVersion为自定义的键值对集合名称,libBaseVersion为组件版本的名称,"0.0.5"为具体的版本号。
为了在项目的编译脚本build.gradle文件中去读取所有的版本信息,传统的方式是每次只能够读取一条版本信息,无法接收到所有的版本信息,而本发明实施例直接将所述自定义键值对集合douyuModelVersion中所有的内容一次性地读取,为了能够对所述自定义键值对集合douyuModelVersion进行一次性读取,本发明实施例使用一个Map集合对象来对douyuModelVersion的内容进行接收。具体的实现代码如下所示:
Map<String,String>mapDebug=rootProject.ext.douyuModelVersion
为了后续的叙述方便,本发明实施例中将所读取到的自定义的键值对集合douyuModelVersion中的内容标记为mapDebug。
通过Map泛型来对所述自定义的键值对集合douyuModelVersion的内容进行接收,也即将所述自定义的键值对集合douyuModelVersion的内容强制转换成一个Map对象,转换后,该Map对象中所存储的键值对信息全部都被强制转换为String(字符串)类型的变量。
通过泛型Map<String,String>数据结构来承载douyuModelVersion中的所有内容信息,实现了一次性读取所有组件的版本信息。
S2,由于build.gradle脚本文件无法将map对象直接写入到BuildConfig.java文件中,因此,需要对所述MAP集合对象进行格式转换。同样地,为了实现对所有组件的版本信息进行统一存储,使用自定义的格式转换规则将所述Map集合对象转换为一个大的String类型的字符串,该String类型的字符串包含了所有组件的版本信息内容,具体的实现方法是通过遍历所述Map集合对象Map<String,String>,依次取出Map对象中键和值信息,并对其键和值进行相应的组合操作。最后,将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中,具体地,通过在gradle.build文件中调用buildConfigField函数来将所述String类型的字符串写入到BuildConfig.java文件中。
S3,通过上述步骤S2的处理后,可以直接在BuildConfig.java文件中获取到所述String类型的字符串的内容信息了,但是所述String类型的字符串是一个包含了所有组件的版本信息的一个大字符串,为了获取到每个组件所对应的版本信息,需要通过该大字符串获取到具体的每个组件所对应的键值对信息,因此,步骤S3实现对所述String类型的字符串的内容进行解析。具体地,在所述BuildConfig.java文件中,调用所述String类型的字符串的split方法进行解析,split方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回,最终获得每个组件的版本信息。
通过上述描述可以获知在需要变更组件版本信息时,只需要将变更后的版本信息按照本发明实施例提供的方法进行封装,就可以方便地实现对版本信息的统一管理,不需要人为去修改所有跟版本有关的业务逻辑。
本发明实施例提出的Android系统组件版本信息的组装方法,实现了组件版本信息的自动封装并转存至java文件中,最终能够自动解析所有的组件版本信息,并自动在页面上进行展示。不需要需要直接修改与版本信息相关的业务逻辑代码,提高开发工作效率的同时降低了人为引入修改错误的概率。
基于上述实施例,所述步骤S2中使用自定义的格式转换将所述Map集合对象转换为String类型的字符串的步骤进一步包括:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
具体地,将Map集合对象转换为String类型的字符串的步骤为:
遍历Map<String,String>对象以依次取出Map对象中键和值信息。一种遍历方式的具体实现代码如下所示(值得说明的是,遍历Map集合对象的实现方法不仅限于如下所示的方法):
其中,使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串。具体地,为了能够存储最终的结果信息,首先定义一个String类型的字符串变量resultDebug,在每次循环时依次以追加的方式将Map集合对象中的内容写入到所述字符串变量resultDebug中,每次写入的内容信息是entry.getKey()+"="+entry.getValue()+",",其中entry.getKey()用于获取键信息,entry.getValue()用于获取值信息,","是分隔符,将所述键和值信息区分开。通过循环的方式遍历完Map集合的所有内容后最终生成的一个String类型的中间字符串resultDebug的内容如下所示:
resultDebug=libBaseVersion=0.0.5,LibImageloaderVersion=0.0.2,LibUtilsVersion=0.0.14,LibUIVersion=0.1.2,LibDB=0.0.4,LibOkhttpUtilsOld=0.0.16,LibDot=0.0.5,
通过观察会发现resultDebug字符串的最末尾多了一个",",这不是我们所需要的,因此,最后通过调用resultDebug中的subSequence(0,resultDebug.length()-1)函数来截取resultDebug字符串位置为0到长度length-1的所有信息内容,也就是去掉了末尾的","了,从而得到了我们最终需要的String类型的字符串。
优选地,所述通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值的步骤进一步包括:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
Map.entrySet的方式是指使用entrySet方法遍历所述Map集合,我们可以得到一个key/value的set集合,entrySet方法尤其适合Map集合的容量较大的情况。
基于上述实施例,所述步骤S3进一步包括:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
具体地,通过步骤S1和S2的处理后可以直接在Java文件中获取到String类型的字符串resultDebug的所有内容信息了,但是resultDebug是一个包含了所有版本内容信息的大字符串,无法直接得到每个组件所对应的版本信息,因此,还需要对resultDebug的内容进行解析。
从步骤S2我们获知每个组件所对应的版本信息存储在resultDebug中的时候都是以“,”来进行分割的,因此,在对resultDebug的内容进行解析时,通过调用所述String类型的字符串resultDebug中的split(“,”)方法,以“,”实现对字符串进行分割,这样被分割后得到的是一个String类型的数组对象,该数组对象中的每一位都是一个键值对,也即对应于一个组件的版本的名称和版本号的信息。
由于步骤S2中键值对是通过key=value的方式来进行存储的,所以可以通过调用split(“=”)方法来对数组对象中的每一个数组元素进行分割处理,这样就会得到另外一个数组,该数组中的第0位是获取的到键信息,第1位获取到的是值信息,这样我们就解析出来了键值对中的键和值的信息。从而最终解析出所有的版本信息来,也就完成了版本的自动解析过程。
如图2所示,为本发明另一实施例提供的Android系统组件版本信息的组装装置的结构示意图,包括:版本信息存储模块21、存储格式转换模块22和版本信息解析模块23,其中,
版本信息存储模块21,用于将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
存储格式转换模块22,用于使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
版本信息解析模块23,用于在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
具体地,为了方便版本信息的管理,版本信息存储模块21将目标Android项目所有组件的版本信息统一存放在一个自定义的键值对集合中的,该键值对集合的实现代码如下所示:
其中,douyuModelVersion为自定义的键值对集合名称,libBaseVersion为组件版本的名称,"0.0.5"为具体的版本号。
为了能够对所述自定义键值对集合douyuModelVersion进行一次性读取,版本信息存储模块21使用一个Map集合对象来对douyuModelVersion的内容进行接收。具体的实现代码如下所示:
Map<String,String>mapDebug=rootProject.ext.douyuModelVersion
为了后续的叙述方便,本发明实施例中将所读取到的自定义的键值对集合douyuModelVersion中的内容标记为mapDebug。
通过Map泛型来对所述自定义的键值对集合douyuModelVersion的内容进行接收,也即将所述自定义的键值对集合douyuModelVersion的内容强制转换成一个Map对象,转换后,该Map对象中所存储的键值对信息全部都被强制转换为String(字符串)类型的变量。
版本信息存储模块21通过泛型Map<String,String>数据结构来承载douyuModelVersion中的所有内容信息,实现了一次性读取所有组件的版本信息。
由于build.gradle脚本文件无法将map对象直接写入到BuildConfig.java文件中,因此,还需要对所述MAP集合对象进行格式转换。同样地,为了实现对所有组件的版本信息进行统一存储,存储格式转换模块22使用自定义的格式转换将所述Map集合对象转换为一个大的String类型的字符串,该String类型的字符串包含了所有组件的版本信息内容,具体的实现方法是通过遍历所述Map集合对象Map<String,String>,依次取出Map对象中键和值信息,并对其键和值进行相应的组合操作。最后,将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中,具体地,通过在gradle.build文件中调用buildConfigField函数来将所述String类型的字符串写入到BuildConfig.java文件中。
在BuildConfig.java文件中可以直接获取到所述String类型的字符串的内容信息了,但是所述String类型的字符串是一个包含了所有组件的版本信息的一个大字符串,为了获取到每个组件所对应的版本信息,需要通过该大字符串获取到具体的每个组件所对应的键值对信息,因此,版本信息解析模块23用于实现对所述String类型的字符串的内容进行解析。具体地,在所述BuildConfig.java文件中,调用所述String类型的字符串的split方法进行解析,split方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回,最终获得每个组件的版本信息。
通过上述描述可以获知在需要变更组件版本信息时,只需要将变更后的版本信息按照本发明实施例提供的方法进行封装,就可以方便地实现对版本信息的统一管理,不需要人为去修改所有跟版本有关的业务逻辑。
本发明实施例提出的Android系统组件版本信息的组装装置,实现了组件版本信息的自动封装并转存至java文件中,最终能够自动解析所有的组件版本信息,并自动在页面上进行展示。不需要需要直接修改与版本信息相关的业务逻辑代码,提高开发工作效率的同时降低了人为引入修改错误的概率。
基于上述实施例,所述存储格式转换模块22具体用于:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
具体地,存储格式转换模块22将Map集合对象转换为String类型的字符串的步骤为:
遍历Map<String,String>对象以依次取出Map对象中键和值信息。一种遍历方式的具体实现代码如下所示(值得说明的是,遍历Map集合对象的实现方法不仅限于如下所示的方法):
其中,使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串。具体地,为了能够存储最终的结果信息,首先定义一个String类型的字符串变量resultDebug,在每次循环时依次以追加的方式将Map集合对象中的内容写入到所述字符串变量resultDebug中,每次写入的内容信息是entry.getKey()+"="+entry.getValue()+",",其中entry.getKey()用于获取键信息,entry.getValue()用于获取值信息,","是分隔符,将所述键和值信息区分开。通过循环的方式遍历完Map集合的所有内容后最终生成的一个String类型的中间字符串resultDebug的内容如下所示:
resultDebug
libBaseVersion=0.0.5,LibImageloaderVersion=0.0.2,LibUtilsVersion=0.0.14,LibUIVersion=0.1.2,LibDB=0.0.4,LibOkhttpUtilsOld=0.0.16,LibDot=0.0.5,
通过观察会发现resultDebug字符串的最末尾多了一个",",这不是我们所需要的,因此,最后通过调用resultDebug中的subSequence(0,resultDebug.length()-1)函数来截取resultDebug字符串位置为0到长度length-1的所有信息内容,也就是去掉了末尾的","了,从而得到了我们最终需要的String类型的字符串。
基于上述实施例,所述版本信息解析模块23具体用于:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
具体地,经过版本信息存储模块21和存储格式转换模块22的处理,版本信息解析模块23可以直接在Java文件中获取到String类型的字符串resultDebug的所有内容信息了,但是resultDebug是一个包含了所有版本内容信息的大字符串,无法直接得到每个组件所对应的版本信息,因此,还需要对resultDebug的内容进行解析。
每个组件所对应的版本信息存储在resultDebug中的时候都是以“,”来进行分割的,因此,版本信息解析模块23在对resultDebug的内容进行解析时,通过调用所述String类型的字符串resultDebug中的split(“,”)方法,以“,”实现对字符串进行分割,这样被分割后得到的是一个String类型的数组对象,该数组对象中的每一位都是一个键值对,也即对于一个版本的名称和版本号的信息。
由于键值对是通过key=value的方式来进行存储的,所以版本信息解析模块23可以通过调用split(“=”)方法来对数组对象中的每一个数组元素进行分割处理,这样就会得到另外一个数组,该数组中的第0位是获取的到键信息,第1位获取到的是值信息,这样我们就解析出来了键值对中的键和值的信息。从而最终解析出所有的版本信息来,也就完成了版本的自动解析过程。
基于上述实施例,所述存储格式转换模块具体用于:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
Map.entrySet的方式是指使用entrySet方法遍历所述Map集合,我们可以得到一个key/value的set集合,entrySet方法尤其适合Map结合的容量较大的情况。
如图3所示,为本发明另一实施例提供的Android系统组件版本信息的组装设备的结构示意图,包括存储器31、处理器32、以及总线33,
所述处理器32和存储器31通过所述总线33完成相互间的通信;
所述存储器31存储有可被所述处理器32执行的程序指令,所述处理器32调用所述存储器31中的程序指令,以执行如上述各实施例所述的方法,例如包括:S1,将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;S2,使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;S3,在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
根据本发明的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上述各实施例所述的方法,例如包括:S1,将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;S2,使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;S3,在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的Android系统组件版本信息的组装设备的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.Android系统组件版本信息的组装方法,其特征在于,包括:
S1,将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
S2,使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
S3,在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2中使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串的步骤进一步包括:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
3.根据权利要求2所述的方法,其特征在于,所述步骤S3进一步包括:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
4.根据权利要求2所述的方法,其特征在于,所述通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值的步骤进一步包括:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
5.Android系统组件版本信息的组装装置,其特征在于,包括:
版本信息存储模块,用于将目标Android项目所有组件的版本信息存至自定义的键值对集合中,并将所述自定义的键值对集合赋值给Map集合对象;
存储格式转换模块,用于使用自定义的格式转换规则将所述Map集合对象转换为String类型的字符串,并将所述String类型的字符串写入所述目标Android项目的BuildConfig.java文件中;
版本信息解析模块,用于在所述BuildConfig.java文件中,通过调用所述String类型的字符串的split方法对所述所有组件的版本信息进行解析,获得每个组件的版本信息。
6.根据权利要求5所述的装置,其特征在于,所述存储格式转换模块具体用于:
通过遍历所述Map集合对象依次获取所述Map集合对象中每个组件的版本信息所对应的键和值;
使用“+”对所有组件的版本信息所对应的键和值进行合并,使用“=”对所述每个组件的版本信息所对应的键和值进行组合,使用“,”分隔不同组件的版本信息所对应的键和值,生成一个String类型的中间字符串;
去掉所述中间字符串的最后一个字符,获得String类型的字符串。
7.根据权利要求6所述的装置,其特征在于,所述版本信息解析模块具体用于:
通过调用所述String类型的字符串的split(“,”)方法分割所述String类型的字符串,生成String类型的数组对象;
调用split(“=”)方法将所述String类型的数组对象的每一个数组元素进行分割,获得每个组件的版本信息所对应的键和值。
8.根据权利要求2所述的装置,其特征在于,所述存储格式转换模块具体用于:
通过Map.entrySet的方式遍历所述Map集合对象中每个组件的版本信息所对应的键和值。
9.Android系统组件版本信息的组装设备,其特征在于,包括存储器、处理器、以及总线,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述存储器中的程序指令,以执行如权利要求1至4任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002195.1A CN109992293B (zh) | 2018-01-02 | 2018-01-02 | Android系统组件版本信息的组装方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002195.1A CN109992293B (zh) | 2018-01-02 | 2018-01-02 | Android系统组件版本信息的组装方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992293A true CN109992293A (zh) | 2019-07-09 |
CN109992293B CN109992293B (zh) | 2023-06-20 |
Family
ID=67128988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002195.1A Active CN109992293B (zh) | 2018-01-02 | 2018-01-02 | Android系统组件版本信息的组装方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992293B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698864A (zh) * | 2021-01-05 | 2021-04-23 | 潍柴动力股份有限公司 | 源文件版本信息处理方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159687A (en) * | 1989-11-14 | 1992-10-27 | Caseworks, Inc. | Method and apparatus for generating program code files |
US20040221275A1 (en) * | 2002-04-17 | 2004-11-04 | Thomas Handal | Apparatus and method for modifying a kernel module to run on multiple kernel versions |
US20100306285A1 (en) * | 2009-05-28 | 2010-12-02 | Arcsight, Inc. | Specifying a Parser Using a Properties File |
WO2011041176A1 (en) * | 2009-09-30 | 2011-04-07 | Zynga Game Network, Inc. | Apparatuses, methods and systems for a social networking application updater |
US20120036239A1 (en) * | 2004-09-10 | 2012-02-09 | Freestyle Technology Pty Ltd | Client processor device for building application files from file fragments for different versions of an application |
CN106776231A (zh) * | 2017-01-09 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 基于Git的Android崩溃日志优化方法及系统 |
CN106933916A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | Json字符串的处理方法及装置 |
US20170277577A1 (en) * | 2016-03-25 | 2017-09-28 | Google Inc. | Navigation Application Programming Interface |
-
2018
- 2018-01-02 CN CN201810002195.1A patent/CN109992293B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159687A (en) * | 1989-11-14 | 1992-10-27 | Caseworks, Inc. | Method and apparatus for generating program code files |
US20040221275A1 (en) * | 2002-04-17 | 2004-11-04 | Thomas Handal | Apparatus and method for modifying a kernel module to run on multiple kernel versions |
US20120036239A1 (en) * | 2004-09-10 | 2012-02-09 | Freestyle Technology Pty Ltd | Client processor device for building application files from file fragments for different versions of an application |
US20100306285A1 (en) * | 2009-05-28 | 2010-12-02 | Arcsight, Inc. | Specifying a Parser Using a Properties File |
WO2011041176A1 (en) * | 2009-09-30 | 2011-04-07 | Zynga Game Network, Inc. | Apparatuses, methods and systems for a social networking application updater |
CN106933916A (zh) * | 2015-12-31 | 2017-07-07 | 北京国双科技有限公司 | Json字符串的处理方法及装置 |
US20170277577A1 (en) * | 2016-03-25 | 2017-09-28 | Google Inc. | Navigation Application Programming Interface |
CN106776231A (zh) * | 2017-01-09 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 基于Git的Android崩溃日志优化方法及系统 |
Non-Patent Citations (4)
Title |
---|
乱码桑: "BuildConfig与build.gradle的关系", 《HTTPS://WWW.JIANSHU.COM/P/3D9B23AFE514》 * |
张元鸣等: "非结构化表格文档数据抽取与组织模型研究", 《浙江工业大学学报》 * |
李香菊: "《软件工程课程设计教程》", 31 January 2016, 北京邮电大学出版社 * |
范惊等: "基于静态分析的高精度程序日志解析技术", 《计算机工程》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698864A (zh) * | 2021-01-05 | 2021-04-23 | 潍柴动力股份有限公司 | 源文件版本信息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109992293B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968325B (zh) | 一种小程序转换方法及装置 | |
US11100420B2 (en) | Input processing for machine learning | |
US10339465B2 (en) | Optimized decision tree based models | |
US10169471B2 (en) | Generating and executing query language statements from natural language | |
US9977770B2 (en) | Conversion of a presentation to Darwin Information Typing Architecture (DITA) | |
CN106557470B (zh) | 数据提取方法和装置 | |
CN110221824B (zh) | 组件的生成方法和装置 | |
CN110851136A (zh) | 数据获取方法、装置、电子设备及存储介质 | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
CN116301813B (zh) | 低代码平台开发方法及系统 | |
CN109669678A (zh) | 模板引擎整合方法、装置、电子设备及存储介质 | |
CN109828759A (zh) | 代码编译方法、装置、计算机装置及存储介质 | |
CN109992293A (zh) | Android系统组件版本信息的组装方法及装置 | |
CN107025233B (zh) | 一种数据特征的处理方法及装置 | |
CN111104122A (zh) | 一种xml业务逻辑映射到java业务逻辑的方法 | |
US20170011016A1 (en) | Automated document generation with xqml | |
US10963490B2 (en) | Text extraction and processing | |
KR20200103133A (ko) | 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치 | |
US8370397B1 (en) | Enhanced data collection techniques | |
CN110750563A (zh) | 多模型数据处理方法、系统、装置、电子设备及存储介质 | |
CN111221846B (zh) | 一种sql语句的自动翻译方法及装置 | |
Badashian et al. | GitHub's big data adaptor: an eclipse plugin | |
Subramanian et al. | MongoDB | |
CN114416102A (zh) | 基于知识图谱脚本的数据处理方法、装置、设备及存储介质 | |
CN117724702A (zh) | 组件配置生成方法、装置、计算设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230523 Address after: 518000 705, building a, Fenghuang Zhigu, No. 50, tiezi Road, Gongle community, Xixiang street, Bao'an District, Shenzhen City, Guangdong Province Applicant after: SHENZHEN YUTONG LIANFA TECHNOLOGY CO.,LTD. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Applicant before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |