CN108170465A - 一种版本信息管理方法、电子设备及可读存储介质 - Google Patents

一种版本信息管理方法、电子设备及可读存储介质 Download PDF

Info

Publication number
CN108170465A
CN108170465A CN201810008834.5A CN201810008834A CN108170465A CN 108170465 A CN108170465 A CN 108170465A CN 201810008834 A CN201810008834 A CN 201810008834A CN 108170465 A CN108170465 A CN 108170465A
Authority
CN
China
Prior art keywords
version
version information
component
default memory
file
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
Application number
CN201810008834.5A
Other languages
English (en)
Other versions
CN108170465B (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810008834.5A priority Critical patent/CN108170465B/zh
Priority to PCT/CN2018/082169 priority patent/WO2019134287A1/zh
Publication of CN108170465A publication Critical patent/CN108170465A/zh
Application granted granted Critical
Publication of CN108170465B publication Critical patent/CN108170465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种版本信息管理方法、电子设备及可读存储介质,用于快速的将参与编译的组件的版本信息进行统一记录,便于相关人员快速且直接查看到参与编译的各组件的版本信息,能够极大的提高问题定位的效率。该版本信息管理方法包括:申请预设内存空间;确定参加脚本编译的一个或多个组件;在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。

Description

一种版本信息管理方法、电子设备及可读存储介质
技术领域
本发明涉及电子技术领域,尤其涉及一种版本信息管理方法、电子设备及可读存储介质。
背景技术
在安卓平台的应用程序开发过程中,会使用组件化相关的技术来对应用程序进行改造。在组件化过程中,需要对应用程序的各个组件进行编译调试,在编译时可能会出现问题导致编译不通过,此时,需要定位出现问题的组件,进而需要获知组件的版本信息。在现有技术中,仅能获知整个应用程序的版本信息,进而通过多级的查询定位到参与当前编译的组件的版本号信息,这种方式定位组件版本信息的方式非常繁琐,当参与编译的组件数量较大时,无法直接快速获取到大量组件的版本信息,而是需要通过整个应用程序的版本信息来进行人工映射关系的查找才能最终定位得到出现问题的组件的版本信息。
发明内容
本发明实施例提供了一种版本信息管理方法、电子设备及可读存储介质,用于快速的将参与编译的组件的版本信息进行统一记录,便于相关人员快速且直接查看到参与编译的各组件的版本信息,能够极大的提高问题定位的效率。
第一方面,本发明提供了一种版本信息管理方法,包括:
申请预设内存空间;
确定参加脚本编译的一个或多个组件;
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
可选的,所述在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,包括:
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
可选的,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型,所述将所述预设内存空间中的版本信息转换为预设类型的版本文件,包括:
在编译脚本中调用配置信息函数向安卓系统的配置文件中写入所述预设内存空间中所有的版本信息,其中,以变量形式写入所述预设内存空间中每个版本信息时,将与该版本信息对应的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与所述变量的值。
可选的,在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,所述方法还包括:
将所述预设类型的版本文件存储至预设存储空间;
在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
可选的,在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,所述方法还包括:
如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
第二方面,本发明实施例提供一种电子设备,所述电子设备包括:
申请单元,用于申请预设内存空间;
确定单元,用于确定参加脚本编译的一个或多个组件;
写入单元,用于在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
转换单元,用于将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
可选的,所述写入单元用于:
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
可选的,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型,所述转换单元用于:
在编译脚本中调用配置信息函数向安卓系统的配置文件中写入所述预设内存空间中所有的版本信息,其中,以变量形式写入所述预设内存空间中每个版本信息时,将与该版本信息对应的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与所述变量的值。
可选的,所述电子设备还包括:
第一展示单元,用于在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,将所述预设类型的版本文件存储至预设存储空间;在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
可选的,所述电子设备还包括:
第一展示单元,用于在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前述第一方面实施例中所述的版本信息管理方法的步骤。
第四方面,本发明实施例提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面实施例中所述的版本信息管理方法的步骤。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,在进行编译之前,预先申请预设内存空间,然后确定参加脚本编译的一个或多个组件;在对一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入预设内存空间,直至所有组件的版本信息均写入预设内存空间,最后,将预设内存空间中的版本信息转换为电子设备的操作系统可读类型的版本文件。这样,由于每次进行编译时,都需要申请个内存空间存储参加编译的各组件的版本信息,并且将内存空间中的版本信息转化为操作系统可读类型的版本文件,当编译出现问题时,用户可通过查看该版本文件就可以快速定位到出现问题的组件,极大的提高问题定位的效率和方便用户和开发者之间进行有效的信息沟通。
附图说明
图1为本发明第一实施例中的一种版本信息管理方法的流程图;
图2为本发明第二实施例中的电子设备的示意图;
图3为本发明第三实施例中电子设备的示意图。
具体实施方式
本发明实施例提供了一种版本信息管理方法、电子设备及可读存储介质,用于快速的将参与编译的组件的版本信息进行统一记录,便于相关人员快速且直接查看到参与编译的各组件的版本信息,能够极大的提高问题定位的效率。该版本信息管理方法包括:申请预设内存空间;确定参加脚本编译的一个或多个组件;在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
请参考图1,本发明第一实施例提供一种版本信息管理方法,该版本信息管理方法包括如下步骤:
S101:申请预设内存空间;
S102:确定参加脚本编译的一个或多个组件;
S103:在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
S104:将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
其中,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型。
具体的,在本实施例中,电子设备安装了安卓操作系统,该操作系统为基于JAVA的操作系统,安卓操作系统的应用程序的编译脚本是基于gradle来进行编写的,gradle是一种编译语言。在进行应用程序设计时,采用组件化技术,每个应用程序包括多个组件,每个组件中都含有一个编译的脚本文件build.gradle,在脚本文件build.gradle中有一个指示该组件的版本信息的变量信息。
在现有技术中,在开发应用程序时,与该应用程序对应的组件包括多个,每个组件又包括多个版本,通过文件解析的方式来解析各个组件编译脚本中定义的版本信息,然后将解析好的版本信息进行相应的存储,这种方式需要存储应用程序对应的所有组件的版本信息,由于应用程序会面临升级以及相关调试,参与编译的组件可按需要进行增加或删除以及变更,在参与编译的组件有变化时,无法动态地调整记录的组件的版本信息。即:现有技术中存储的是整个应用程序的各组件的版本信息。在出现编译错误时,通过人工定位出现问题的组件对应的版本信息。由于应用程序对应的组件可多达上百个,导致定位出问题组件的人工成本较高。
在本实施例中,主要描述基于gradle来动态记录参与当前编译的各个组件的版本号信息。由于每一个组件中都含有一个编译的脚本文件build.gradle,在编译脚本文件build.gradle中有指示该组件的版本信息的变量信息。在本实施例中,通过步骤S101,在进行编译之前,预先申请一个预设内存空间allVersion,该内存空间是一个独立的内存空间,为一个全局变量,用于存储参与编译的所有组件的版本信息。
在通过步骤S101申请好内存空间以后,执行步骤S102与S103。由于各个组件的脚本文件是知道自己的版本信息的,所以,在应用程序编译脚本开始执行之前首先获取到全局变量allVersion,在对参与编译的组件进行编译时,调用该全局变量中的添加方法将当前编译的组件的版本信息写入申请好的预设内存空间allVersion中,在所有参加编译的组件均编译完成时,所有参加编译的组件中每个组件的版本信息均写入至预设内存空间allVersion。
进一步,在将参与编译的各个组件对应的版本信息写入预设内存空间时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
具体的,以MAP键值对的数据格式申请预设内存空间,比如:参与编译的组件A的名称为A,该组件的版本号为A1,在编译该组件的脚本文件时,调用全局变量allVersion中的添加方法add将该组件的版本信息以键值对的方式写入该预设内存空间allVersion。键值名为A,该键值名对应的值为A1。通过这样的方式可将参与编译的各组件的版本信息以键值对的方式写入预设内存空间。
这种反向的设计思路使得不用像现有技术再去遍历文件来获取版本信息,直接在组件编译时将自己对应的版本信息复制到申请到的预设内存空间即可。可动态地记录参与编译的组件的版本信息,进而在编译出现错误时能够通过读取该预设内存空间的版本信息,即可快速定位到出问题的组件。
进一步,由于将参与编译的所有组件的版本信息写入预设内存空间后,由于写入版本信息的方式是基于gradle编写,电子设备安装的安卓操作系统无法解析出对应的版本信息,所以需要将预设内存空间中的版本信息转换为安卓操作系统可读的JAVA类型的文件。
接下来步骤S104主要描述如何将基于gradle编写的预设内存空间中的参与编译的所有组件的版本信息转存到对应的Java文件中。由于gradle没有提供gradle和JAVA直接进行交互的业务功能,仅仅提供了一个配置信息函数,现有技术中无法直接让gradle脚本和JAVA代码进行交互,本实施例中的方法主要利用gadle中的配置信息函数来实现该功能。
具体的,通过在gradle脚本中调用配置信息函数buildConfigField来向安卓的配置文件BuildConfig.java文件中写入预设内存空间中存储的版本信息。由于预设存储空间存储的参与编译的各组件的版本信息以键值对的方式写入,进而,在调用配置信息函数buildConfigField来向安卓的配置文件BuildConfig.java文件中写入版本信息时,以变量形式写入,每个版本信息的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与变量的值。通过这样的操作,编译完成后会在生成的配置BuildConfig.java文件中写入所有参与编译的各组件的版本信息,这样就完成了将参与编译的所有组件的基于gradle版本信息转换为JAVA文件。
进一步,在将参与编译的所有组件的基于gradle版本信息转换为JAVA文件之后,提供但不限于下述两种展示该JAVA文件的方式。
第一种:将所述预设类型的版本文件存储至预设存储空间;
在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
具体的,在本实施例中,继续沿用上述示例,通过上述方式已经将参与编译的所有组件的基于gradle版本信息转换为JAVA文件BuildConfig.java中。然后,将该JAVA文件存储至预设存储空间,该预设存储空间可以是一个隐藏入口很深的位置,对应还设置有一个彩蛋功能。比如:在我的页面-关于软件-查看版本信息,对版本信息长按的时候会弹出一个页面,该页面上将展示参与编译的所有组件的版本信息。在具体实施过程中,预设存储空间以及预设操作可根据实际需要进行设定,在此,本申请不做限制。
通过这种增加彩蛋功能的方式,用户能够快速方便获取到当前所有组件的版本信息,一旦应用程序出现异常的时候,需要获取应用程序当前组件的信息时,可以通过直接唤出彩蛋页面的方式来查看当前软件的各个组件的版本信息。
第二种:如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
具体的,在本实施例中,继续沿用上述示例,通过上述方式已经将参与编译的所有组件的基于gradle版本信息转换为JAVA文件BuildConfig.java中。然后,将该JAVA文件存储至预设存储空间。如果在对应用程序进行编译期间出现错误,编译不通过,或者在应用程序运行错误时,自动展示该预设类型的版本文件,以便于用户能够快速方便获取到当前所有组件的版本信息。
在本发明实施例的技术方案中,在进行编译之前,预先申请预设内存空间,然后确定参加脚本编译的一个或多个组件;在对一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入预设内存空间,直至所有组件的版本信息均写入预设内存空间,最后,将预设内存空间中的版本信息转换为电子设备的操作系统可读类型的版本文件。这样,由于每次进行编译时,都需要申请个内存空间存储参加编译的各组件的版本信息,并且将内存空间中的版本信息转化为操作系统可读类型的版本文件,当编译出现问题时,用户可通过查看该版本文件就可以快速定位到出现问题的组件,极大的提高问题定位的效率和方便用户和开发者之间进行有效的信息沟通。
请参见图2,本发明的第二实施例提供了一种电子设备,所述电子设备包括:
申请单元201,用于申请预设内存空间;
确定单元202,用于确定参加脚本编译的一个或多个组件;
写入单元203,用于在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
转换单元204,用于将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
其中,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型。
具体的,在本实施例中,电子设备安装了安卓操作系统,该操作系统为基于JAVA的操作系统,安卓操作系统的应用程序的编译脚本是基于gradle来进行编写的,gradle是一种编译语言。在进行应用程序设计时,采用组件化技术,每个应用程序包括多个组件,每个组件中都含有一个编译的脚本文件build.gradle,在脚本文件build.gradle中有一个指示该组件的版本信息的变量信息。
在现有技术中,在开发应用程序时,与该应用程序对应的组件包括多个,每个组件又包括多个版本,通过文件解析的方式来解析各个组件编译脚本中定义的版本信息,然后将解析好的版本信息进行相应的存储,这种方式需要存储应用程序对应的所有组件的版本信息,由于应用程序会面临升级以及相关调试,参与编译的组件可按需要进行增加或删除以及变更,在参与编译的组件有变化时,无法动态地调整记录的组件的版本信息。即:现有技术中存储的是整个应用程序的各组件的版本信息。在出现编译错误时,通过人工定位出现问题的组件对应的版本信息。由于应用程序对应的组件可多达上百个,导致定位出问题组件的人工成本较高。
在本实施例中,主要描述基于gradle来动态记录参与当前编译的各个组件的版本号信息。由于每一个组件中都含有一个编译的脚本文件build.gradle,在编译脚本文件build.gradle中有指示该组件的版本信息的变量信息。在本实施例中,通过申请单元201,在进行编译之前,预先申请一个预设内存空间allVersion,该内存空间是一个独立的内存空间,为一个全局变量,用于存储参与编译的所有组件的版本信息。
在通过申请单元201申请好内存空间以后,确定单元202确定参与编译的一个或多个组件。由于各个组件的脚本文件是知道自己的版本信息的,所以,写入单元203在应用程序编译脚本开始执行之前首先获取到全局变量allVersion,在对参与编译的组件进行编译时,调用该全局变量中的添加方法将当前编译的组件的版本信息写入申请好的预设内存空间allVersion中,在所有参加编译的组件均编译完成时,所有参加编译的组件中每个组件的版本信息均写入至预设内存空间allVersion。
进一步,写入单元203在将参与编译的各个组件对应的版本信息写入预设内存空间时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
具体的,以MAP键值对的数据格式申请预设内存空间,比如:参与编译的组件A的名称为A,该组件的版本号为A1,在编译该组件的脚本文件时,调用全局变量allVersion中的添加方法add将该组件的版本信息以键值对的方式写入该预设内存空间allVersion。键值名为A,该键值名对应的值为A1。通过这样的方式可将参与编译的各组件的版本信息以键值对的方式写入预设内存空间。
这种反向的设计思路使得不用像现有技术再去遍历文件来获取版本信息,直接在组件编译时将自己对应的版本信息复制到申请到的预设内存空间即可。可动态地记录参与编译的组件的版本信息,进而在编译出现错误时能够通过读取该预设内存空间的版本信息,即可快速定位到出问题的组件。
进一步,由于将参与编译的所有组件的版本信息写入预设内存空间后,由于写入版本信息的方式是基于gradle编写,电子设备安装的安卓操作系统无法解析出对应的版本信息,所以需要将预设内存空间中的版本信息转换为安卓操作系统可读的JAVA类型的文件。
接下来主要描述如何将基于gradle编写的预设内存空间中的参与编译的所有组件的版本信息转存到对应的Java文件中。由于gradle没有提供gradle和JAVA直接进行交互的业务功能,仅仅提供了一个配置信息函数,现有技术中无法直接让gradle脚本和JAVA代码进行交互,本实施例中电子设备方法主要利用gadle中的配置信息函数来实现该功能。
具体的,转换单元204通过在gradle脚本中调用配置信息函数buildConfigField来向安卓的配置文件BuildConfig.java文件中写入预设内存空间中存储的版本信息。由于预设存储空间存储的参与编译的各组件的版本信息以键值对的方式写入,进而,转换单元204在调用配置信息函数buildConfigField来向安卓的配置文件BuildConfig.java文件中写入版本信息时,以变量形式写入,每个版本信息的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与变量的值。通过这样的操作,编译完成后会在生成的配置BuildConfig.java文件中写入所有参与编译的各组件的版本信息,这样就完成了将参与编译的所有组件的基于gradle版本信息转换为JAVA文件。
进一步,在将参与编译的所有组件的基于gradle版本信息转换为JAVA文件之后,提供但不限于下述两种展示该JAVA文件的方式。
第一种:第一展示单元将所述预设类型的版本文件存储至预设存储空间;在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
具体的,在本实施例中,继续沿用上述示例,通过上述方式已经将参与编译的所有组件的基于gradle版本信息转换为JAVA文件BuildConfig.java中。然后,第一展示单元将该JAVA文件存储至预设存储空间,该预设存储空间可以是一个隐藏入口很深的位置,对应还设置有一个彩蛋功能。比如:在我的页面-关于软件-查看版本信息,对版本信息长按的时候会弹出一个页面,该页面上将展示参与编译的所有组件的版本信息。在具体实施过程中,预设存储空间以及预设操作可根据实际需要进行设定,在此,本申请不做限制。
通过这种增加彩蛋功能的方式,用户能够快速方便获取到当前所有组件的版本信息,一旦应用程序出现异常的时候,需要获取应用程序当前组件的信息时,可以通过直接唤出彩蛋页面的方式来查看当前软件的各个组件的版本信息。
第二种:第二展示单元用于如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
具体的,在本实施例中,继续沿用上述示例,通过上述方式已经将参与编译的所有组件的基于gradle版本信息转换为JAVA文件BuildConfig.java中。然后,第一展示单元将该JAVA文件存储至预设存储空间。如果在对应用程序进行编译期间出现错误,编译不通过,或者在应用程序运行错误时,自动展示该预设类型的版本文件,以便于用户能够快速方便获取到当前所有组件的版本信息。
请参见图3,本发明的第三实施例提供了一种电子设备,该实施例的电子设备包括:处理器301、存储器302以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如第一实施例中版本信息管理方法对应的程序。所述处理器执行所述计算机程序时实现上述第一实施例中各路径检测中的步骤。或者,所述处理器执行所述计算机程序时实现上述第二实施例的电子设备中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置中的执行过程。例如,所述计算机程序可以被分割成申请单元、确定单元、写入单元和转换单元的功能,各单元具体功能如下:
申请单元,用于申请预设内存空间;
确定单元,用于确定参加脚本编译的一个或多个组件;
写入单元,用于在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
转换单元,用于将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
所述电子设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图3仅仅是计算机装置的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器302可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
进一步,该电子设备所包括的处理器301还具有以下功能:
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
进一步,该电子设备所包括的处理器301还具有以下功能:
在所述通过所述路径检测函数调用所述预设实例化对象对应的检测方法函数对路径进行检测之后,如果路径检测成功,则编译预设编译脚本;如果路径检测失败,则返回编译失败结果。
进一步,该电子设备所包括的处理器301还具有以下功能:
所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型,所述转换单元用于:
在编译脚本中调用配置信息函数向安卓系统的配置文件中写入所述预设内存空间中所有的版本信息,其中,以变量形式写入所述预设内存空间中每个版本信息时,将与该版本信息对应的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与所述变量的值。
进一步,该电子设备所包括的处理器301还具有以下功能:
在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,将所述预设类型的版本文件存储至预设存储空间;在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
进一步,该电子设备所包括的处理器301还具有以下功能:
在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
本发明第四实施例提供了一种计算机可读存储介质,其上存储有计算机程序,本发明第二实施例中的所述电子设备集成的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例的版本信息管理方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明实施例的技术方案中,电子设备的接口库中预先创建有多个接口,每个接口中定义有检测方法函数,每个检测方法函数对应一个预设规则,进而,在编译期间检测ARouter的路径是否满足一个或多个预设规则时,在检测管理器中仅需要实例化该规则对应的接口对象,然后创建路径检测函数,通过该路径检测函数调用实例化对象中的检测方法函数即可对路径的合法性进行检测。提供一种ARouter中路径合法性的自动检测方法,减少了软件到运行期间因ARouter中路径不规范导致通信失败,进而花费大量的时间排查问题,极大的提高了开发效率,降低了人工成本。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种版本信息管理方法,其特征在于,包括:
申请预设内存空间;
确定参加脚本编译的一个或多个组件;
在对确定参加脚本编译的所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
2.如权利要求1所述的方法,其特征在于,所述在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,包括:
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
3.如权利要求2所述的方法,其特征在于,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型,所述将所述预设内存空间中的版本信息转换为预设类型的版本文件,包括:
在编译脚本中调用配置信息函数向安卓系统的配置文件中写入所述预设内存空间中所有的版本信息,其中,以变量形式写入所述预设内存空间中每个版本信息时,将与该版本信息对应的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与所述变量的值。
4.如权利要求1~3中任一权利要求所述的方法,其特征在于,在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,所述方法还包括:
将所述预设类型的版本文件存储至预设存储空间;
在用户进行用于查看所述预设类型的版本文件的预设操作情况下,展示所述预设类型的版本文件。
5.如权利要求1~3中任一权利要求所述的方法,其特征在于,在所述将所述预设内存空间中的版本信息转换为预设类型的版本文件之后,所述方法还包括:
如果对所述一个或多个组件中每个组件的脚本文件进行编译时出现编译错误情况下,展示所述预设类型的版本文件。
6.一种电子设备,其特征在于,包括:
申请单元,用于申请预设内存空间;
确定单元,用于确定参加脚本编译的一个或多个组件;
写入单元,用于在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息写入所述预设内存空间,直至所有组件的版本信息均写入所述预设内存空间;
转换单元,用于将所述预设内存空间中的版本信息转换为预设类型的版本文件,所述预设类型为电子设备的操作系统可读的类型。
7.如权利要求6所述的电子设备,其特征在于,所述写入单元用于:
在对所述一个或多个组件中每个组件的脚本文件进行编译时,将该组件的版本信息以键值对的形式写入所述预设内存空间,其中,所述键值对中的键名为该组件的标识,所述键值对中的键值为该组件的版本号。
8.如权利要求7所述的电子设备,其特征在于,所述一个或多个组件对应的脚本文件基于gradle编写,所述电子设备的操作系统为安卓系统,所述预设类型为JAVA类型,所述转换单元用于:
在编译脚本中调用配置信息函数向安卓系统的配置文件中写入所述预设内存空间中所有的版本信息,其中,以变量形式写入所述预设内存空间中每个版本信息时,将与该版本信息对应的键值对中的键名转化为变量的变量名称,该键值对中的键值转化为与所述变量的值。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5中任一项所述的版本信息管理方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的版本信息管理方法的步骤。
CN201810008834.5A 2018-01-04 2018-01-04 一种版本信息管理方法、电子设备及可读存储介质 Active CN108170465B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810008834.5A CN108170465B (zh) 2018-01-04 2018-01-04 一种版本信息管理方法、电子设备及可读存储介质
PCT/CN2018/082169 WO2019134287A1 (zh) 2018-01-04 2018-04-08 一种版本信息管理方法、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810008834.5A CN108170465B (zh) 2018-01-04 2018-01-04 一种版本信息管理方法、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN108170465A true CN108170465A (zh) 2018-06-15
CN108170465B CN108170465B (zh) 2021-01-01

Family

ID=62517247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810008834.5A Active CN108170465B (zh) 2018-01-04 2018-01-04 一种版本信息管理方法、电子设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN108170465B (zh)
WO (1) WO2019134287A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389781A (zh) * 2019-05-31 2019-10-29 平安国际智慧城市科技股份有限公司 基于版本控制的Localstorage缓存实现方法、装置及存储介质
CN110858147A (zh) * 2018-08-24 2020-03-03 深圳市优必选科技有限公司 Mcu信息获取方法及终端设备
CN111078225A (zh) * 2019-11-21 2020-04-28 贝壳技术有限公司 一种热重载方法、装置、电子设备和存储介质
CN113342344A (zh) * 2021-04-26 2021-09-03 北京房江湖科技有限公司 Flutter编译流程介入方法及装置
CN113590213A (zh) * 2021-06-24 2021-11-02 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质
CN113821436A (zh) * 2021-09-23 2021-12-21 北京天融信网络安全技术有限公司 一种测试脚本的生成方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294514A (zh) * 2013-06-26 2013-09-11 深圳Tcl新技术有限公司 系统软件版本集成方法、编译服务器及系统
CN103729184A (zh) * 2013-12-29 2014-04-16 国云科技股份有限公司 一种软件组件组合构建方法
CN104142846A (zh) * 2014-08-06 2014-11-12 汉柏科技有限公司 一种程序脚本编译方法和装置
CN104881311A (zh) * 2015-05-28 2015-09-02 南京南瑞继保电气有限公司 一种版本兼容的判断方法及装置
CN106598673A (zh) * 2016-12-16 2017-04-26 武汉斗鱼网络科技有限公司 一种应用程序升级方法及系统
CN106775845A (zh) * 2016-11-30 2017-05-31 用友优普信息技术有限公司 一种软件安装升级的方法
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法
US10282186B2 (en) * 2014-06-13 2019-05-07 Blackberry Limited Managing software suite component versions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929600B (zh) * 2012-06-13 2016-06-29 许继电气股份有限公司 基于elf的监控系统版本识别方法
US9454363B1 (en) * 2013-03-15 2016-09-27 Data Systems International, Inc. Mobile application development system and method
CN104881604B (zh) * 2014-02-27 2019-07-16 中兴通讯股份有限公司 版本文件的运行方法及装置
CN105447040B (zh) * 2014-08-29 2020-02-07 阿里巴巴集团控股有限公司 二进制文件管理、更新方法、装置以及系统
CN106201481A (zh) * 2016-06-30 2016-12-07 传线网络科技(上海)有限公司 应用程序开发系统中的组件管理方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294514A (zh) * 2013-06-26 2013-09-11 深圳Tcl新技术有限公司 系统软件版本集成方法、编译服务器及系统
CN103729184A (zh) * 2013-12-29 2014-04-16 国云科技股份有限公司 一种软件组件组合构建方法
US10282186B2 (en) * 2014-06-13 2019-05-07 Blackberry Limited Managing software suite component versions
CN104142846A (zh) * 2014-08-06 2014-11-12 汉柏科技有限公司 一种程序脚本编译方法和装置
CN104881311A (zh) * 2015-05-28 2015-09-02 南京南瑞继保电气有限公司 一种版本兼容的判断方法及装置
CN106775845A (zh) * 2016-11-30 2017-05-31 用友优普信息技术有限公司 一种软件安装升级的方法
CN106598673A (zh) * 2016-12-16 2017-04-26 武汉斗鱼网络科技有限公司 一种应用程序升级方法及系统
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GAO_CHUN: "《Android studio中统一管理版本号引用配置》", 《CSDN,HTTP://BLOG.CSDN.NET/GAO_CHUN/ARTICLE/DETAILS/58105089》 *
一线文化: "《从零开始 中老年人学电脑 图解速成版》", 30 September 2015 *
李功权,ISBN号 :978-7-5625-3397-9: "《数字油藏理论与实践》", 30 March 2014 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858147A (zh) * 2018-08-24 2020-03-03 深圳市优必选科技有限公司 Mcu信息获取方法及终端设备
CN110858147B (zh) * 2018-08-24 2023-12-29 深圳市优必选科技有限公司 Mcu信息获取方法及终端设备
CN110389781A (zh) * 2019-05-31 2019-10-29 平安国际智慧城市科技股份有限公司 基于版本控制的Localstorage缓存实现方法、装置及存储介质
CN111078225A (zh) * 2019-11-21 2020-04-28 贝壳技术有限公司 一种热重载方法、装置、电子设备和存储介质
CN113342344A (zh) * 2021-04-26 2021-09-03 北京房江湖科技有限公司 Flutter编译流程介入方法及装置
CN113342344B (zh) * 2021-04-26 2024-02-27 贝壳找房(北京)科技有限公司 Flutter编译流程介入方法及装置
CN113590213A (zh) * 2021-06-24 2021-11-02 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质
CN113590213B (zh) * 2021-06-24 2023-04-25 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质
CN113821436A (zh) * 2021-09-23 2021-12-21 北京天融信网络安全技术有限公司 一种测试脚本的生成方法及装置
CN113821436B (zh) * 2021-09-23 2023-08-29 北京天融信网络安全技术有限公司 一种测试脚本的生成方法及装置

Also Published As

Publication number Publication date
CN108170465B (zh) 2021-01-01
WO2019134287A1 (zh) 2019-07-11

Similar Documents

Publication Publication Date Title
CN108170465A (zh) 一种版本信息管理方法、电子设备及可读存储介质
US7509655B2 (en) Integration of workflow and rules
US20080178047A1 (en) Software Test System, Method, And Computer Readable Recording Medium Having Program Stored Thereon For Executing the Method
CN110673576B (zh) 自动测试方法与装置、车辆和存储介质
CN108563575B (zh) 应用程序测试方法、装置、终端及计算机可读存储介质
CN112100072B (zh) 应用程序代码的静态检测方法、装置、设备及介质
US9053099B2 (en) Method for validating equivalent data structures
CN115686631B (zh) 一种基于知识基的随机指令生成方法、装置及存储介质
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN110097331A (zh) 业务表单的校验方法、装置、存储介质和电子设备
CN114116505A (zh) 代码测试方法及装置
US20210026756A1 (en) Deriving software application dependency trees for white-box testing
CN110688320B (zh) 全局变量的检测方法、装置及终端设备
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN112561690A (zh) 信用卡分期业务接口的测试方法、系统、设备及存储介质
CN113867709B (zh) 区块链智能合约读写集构建方法及装置
CN115456628A (zh) 基于区块链的智能合约查看方法、装置、存储介质及设备
CN114896164A (zh) 接口优化方法、装置、电子设备及存储介质
CN114817047A (zh) 编译器测试方法、用例生成方法及装置、指令存储结构
CN115203300A (zh) 一种数据验证方法及装置
CN113392003A (zh) 编程代码的评价方法及装置
CN111694729A (zh) 应用测试方法、装置、电子设备和计算机可读介质
CN112527660B (zh) 代码的静态检测方法和装置
EP1183596B1 (en) Generating optimized computer data field conversion routines
CN113971165A (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
GR01 Patent grant
GR01 Patent grant