CN109032660A - 一种VersionCode的生成方法、装置、电子设备及存储介质 - Google Patents
一种VersionCode的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109032660A CN109032660A CN201810857946.8A CN201810857946A CN109032660A CN 109032660 A CN109032660 A CN 109032660A CN 201810857946 A CN201810857946 A CN 201810857946A CN 109032660 A CN109032660 A CN 109032660A
- Authority
- CN
- China
- Prior art keywords
- versioncode
- baseyear
- application program
- current
- current time
- 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.)
- Pending
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
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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种VersionCode的生成方法、装置、电子设备及存储介质,该方法包括:设定基准年baseYear;基于baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,当前时间包括:当前版本的应用程序的编译时间;本发明的方法、装置、电子设备及存储介质,通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种VersionCode的生成方法、装置、电子设备及存储介质。
背景技术
VersionCode,是应用程序的内部版本号,代表着应用程序代码的相对版本,也就是版本更新过多少次。此外,该VersionCode可以设置为任何整数,不过,需要保证该应用程序的每个后续版本都使用一个较大的值,以使得后续版本的VersionCode大于前一版本的VersionCode。通常,在发布应用程序的第一个版本时,需要将VersionCode设为1,之后为每个发布版本单调增大该VersionCode,无论发布的是主版本还是次版本,这表示VersionCode不一定与用户可见的应用发布版本非常相似。而且,应用和发布服务不应向用户显示此VersionCode。
但是,在现有技术中,若对应用程序进行更新,则需要必须手动指定特定数字作为应用程序的VersionCode,而这就会导致更新操作的工作量繁杂。
发明内容
本发明的主要目的在于提出一一种VersionCode的生成方法、装置、电子设备及存储介质,其克服了现有技术中需手动指定VersionCode以及因此造成的更新操作繁杂问题。
根据本发明的第一个方面,提供了一种VersionCode的生成方法,所述方法包括:设定基准年baseYear;基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
可选的,在生成所述VersionCode之后,所述方法还包括:判断生成的所述VersionCode是否小于等于预设阈值;若是,则判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode。
可选的,所述方法还包括:在已知所述VersionCode的情况下,基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间。
可选的,所述基于baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,包括:对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
其中,第一预设算法包括:VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute;
所述第二算法包括:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
根据本发明的第二个方面,提供了一种VersionCode的生成装置,所述装置包括:设定模块,用于设定基准年baseYear;生成模块,用于基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
可选的,所述装置还包括:判断模块,用于在生成所述VersionCode之后,判断生成的所述VersionCode是否小于等于预设阈值;判定模块,用于在生成的所述VersionCode小于等于预设阈值的情况下,判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode;
可选的,所述装置还包括:当前时间确定模块,用于在已知所述VersionCode的情况下,基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间。
可选的,所述生成模块具体用于:对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
其中,第一预设算法包括:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute;
所述第二算法包括:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
根据本发明的第三个方面,提供了一种计算机设备,包括处理器和存储器;
所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的一种VersionCode的生成方法。
根据本发明的第四个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的一种VersionCode的生成方法。
本发明有益效果如下:通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。
附图说明
图1为本发明第一实施例一种VersionCode的生成方法的流程框图;
图2为本发明第二实施例一种VersionCode的生成方法的流程框图;
图3为本发明第三实施例一种VersionCode的生成方法的流程框图;
图4为本发明第四实施例一种VersionCode的生成方法的流程框图;
图5为本发明第五实施例中VersionCode的格式示意图;
图6为本发明第五实施例中VersionCode的结构示意图;
图7为本发明第六实施例中一种VersionCode的生成装置的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
值得注意的是,VersionCode仅用于确定同一个应用程序的一个版本是否比另一个版本更新,数字越大表示版本越新。而且,该VersionCode不是显示给用户的版本号;而且,其他应用可以通过编程方式对VersionCode进行评估,例如:检查升级或降级关系。而且,该VersionCode可以设置为任何整数,不过,需要保证该应用程序的每个后续版本都使用一个较大的值,以使得后续版本的VersionCode大于前一版本的VersionCode,但是,通常会针对后续版本增大该VersionCode。应用程序和发布服务不应向用户显示此版本值。
为了便于理解本发明实施例,下面通过几个具体实施例对本发明的实施过程进行详细的阐述。
本发明第一实施例提供了一种VersionCode的生成方法,所述方法包括:设定基准年baseYear;基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。
具体的,图1为本发明第一实施例一种VersionCode的生成方法的流程框图。根据图1所示,本发明第一实施例提供了一种VersionCode的生成方法,所述方法包括:
S11:设定基准年baseYear;
应用程序的开发系统设置baseYear,如以1970年作为baseYear,则baseYear=1970。
S12:基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
其中,当前时间包括:当前版本的应用程序的编译时间。所以,在本另一实施例中,是在该应用程序被成功开发出第一个版本时或该应用程序被成功开发出新版本时,设定baseYear,而且,确定该应用程序被成功开发出第一个版本时的时间或该应用程序被成功开发出新版本时的时间。
在本实施例中,并不对该当前时间的具体格式进行限定,只需其满足本发明的要求即可,如:该当前时间为北京时间2018-6-11 14:51:29。
在确定baseYear及当前时间后,基于该baseYear及当前时间,应用程序的开发系统通过第一预设算法生成当前版本的应用程序的VersionCode。
在本实施例中,并不对该第一预设算法进行限定,只需其满足本实施例的要求即可。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。
图2为本发明第二实施例一种VersionCode的生成方法的流程框图。根据图2所示,本发明第二实施例提供了一种VersionCode的生成方法,所述方法包括:
S21:设定基准年baseYear;
应用程序的开发系统设置baseYear,如以1970年作为baseYear,则baseYear=1970。
S22:基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间;
其中,当前时间包括:当前版本的应用程序的编译时间。所以,在另一实施例中,是在该应用程序被成功开发出第一个版本时或该应用程序被成功开发出新版本时,设定baseYear,而且,确定该应用程序被成功开发出第一个版本时的时间或该应用程序被成功开发出新版本时的时间。
在本实施例中,并不对该当前时间的具体格式进行限定,只需其满足本发明的要求即可,如:该当前时间为北京时间2018-6-11 14:51:29。
在确定baseYear及当前时间后,基于该baseYear及当前时间,应用程序的开发系统通过第一预设算法生成当前版本的应用程序的VersionCode。
在本实施例中,并不对该第一预设算法进行限定,只需其满足本实施例的要求即可。
S23:判断生成的所述VersionCode是否小于等于预设阈值;若是,则步骤S24,否则,执行步骤S25;
S24:判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode;
由于每个应用程序均要求其VersionCode最大不能超过对应的预设阈值。故在本实施例中,还需通过对应的预设阈值对生成的VersionCode进行校验,若校验通过,则确定该根据当前时间生成的VersionCode为所需的VersionCode,否则,随着当前时间的流逝,则需要根据新的当前时间生成VersionCode。
以谷歌在线应用程序商店Google Play为例,Google Play要求其VersionCode最大不能超过2100000000,即:该预设阈值为2100000000。若该生成的VersionCode小于等于2100000000,则确定该生成的VersionCode为Google Play所需的VersionCode。
S25:报错。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。
图3为本发明第三实施例一种VersionCode的生成方法的流程框图。根据图3所示,本发明第三实施例提供了一种VersionCode的生成方法,所述方法包括:
S31:设定基准年baseYear;
应用程序的开发系统设置baseYear,如以1970年作为baseYear,则baseYear=1970。
S32:基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间;
其中,当前时间包括:当前版本的应用程序的编译时间。所以,在另一实施例中,是在该应用程序被成功开发出第一个版本时或该应用程序被成功开发出新版本时,设定baseYear,而且,确定该应用程序被成功开发出第一个版本时的时间或该应用程序被成功开发出新版本时的时间。
在本实施例中,并不对该当前时间的具体格式进行限定,只需其满足本发明的要求即可,如:该当前时间为北京时间2018-6-1114:51:29。
在确定baseYear及当前时间后,基于该baseYear及当前时间,应用程序的开发系统通过第一预设算法生成当前版本的应用程序的VersionCode。
在本实施例中,并不对该第一预设算法进行限定,只需其满足本实施例的要求即可。
S33:判断生成的所述VersionCode是否小于等于预设阈值;若是,则执行步骤S34;否则,执行步骤S36;
S34:判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode;
由于每个应用程序均要求其VersionCode最大不能超过对应的预设阈值。故在本实施例中,还需通过对应的预设阈值对生成的VersionCode进行校验,若校验通过,则确定该根据当前时间生成的VersionCode为所需的VersionCode,否则,随着当前时间的流逝,则需要根据新的当前时间生成VersionCode。
以谷歌在线应用程序商店Google Play为例,Google Play要求其VersionCode最大不能超过2100000000,即:该预设阈值为2100000000。若该生成的VersionCode小于等于2100000000,则确定该生成的VersionCode为Google Play所需的VersionCode。
在已知应用程序所需的上述VersionCode之后,还可通过以下步骤S35获知上述的当前时间:
S35:基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间;
基于该VersionCode及baseYear,检测系统通过第二预设算法确定所述当前时间。
其中,该当前时间包括:当前版本的应用程序的编译时间。即:基于该VersionCode,可以获知该当前版本的应用程序的编译时间。所以,在本另一实施例中,通过该VersionCode,可以获知该当前版本的应用程序被成功开发出时的时间,
S36:报错。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。而且,基于该VersionCode,还可获知该当前版本的应用程序的编译时间。
图4为本发明第四实施例一种VersionCode的生成方法的流程框图。根据图4所示,本发明第四实施例提供了一种VersionCode的生成方法,所述方法包括:
S41:设定基准年baseYear;
应用程序的开发系统设置baseYear,如以1970年作为baseYear,则baseYear=1970。
S42:对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;
具体的,若当前时间为北京时间2018-6-1114:51:29,则year=2018,hourOfDay=14,minute=51;针对该dayOfYear,应用程序的开发系统可以通过javaApi的calendar.get(Calendar.DAY_OF_YEAR)进行获取,得到dayOfYear=162。
其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
而且,当前时间包括:当前版本的应用程序的编译时间。所以,在另一实施例中,是在该应用程序被成功开发出第一个版本时或该应用程序被成功开发出新版本时,设定baseYear,而且,确定该应用程序被成功开发出第一个版本时的时间或该应用程序被成功开发出新版本时的时间。
S43:基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
在确定baseYear及预设数据后,基于该baseYear及预设数据,应用程序的开发系统通过第一预设算法生成当前版本的应用程序的VersionCode。
可选的,基于以下公式生成VersionCode:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute。
S44:判断生成的所述VersionCode是否小于等于预设阈值;若是,则执行步骤S45,否则,执行步骤S48;
S45:判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode;
由于每个应用程序均要求其VersionCode最大不能超过对应的预设阈值。故在本实施例中,还需通过对应的预设阈值对生成的VersionCode进行校验,若校验通过,则确定该根据当前时间生成的VersionCode为所需的VersionCode,否则,随着当前时间的流逝,则需要根据新的当前时间生成VersionCode。
以谷歌在线应用程序商店GooglePlay为例,GooglePlay要求其VersionCode最大不能超过2100000000,即:该预设阈值为2100000000。若该生成的VersionCode小于等于2100000000,则确定该生成的VersionCode为Google Play所需的VersionCode。
在已知应用程序所需的上述VersionCode之后,还可通过以下步骤S46-47获知上述的当前时间:
S46:基于所述VersionCode及baseYear,通过第二预设算法确定所述预设数据;
基于该VersionCode及baseYear,检测系统通过第二预设算法确定预设数据。可选的,在已知应用程序所需的上述VersionCode之后,基于以下公式生成获知上述的预设数据:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
S47:基于该预设数据,确定当前时间;
在本实施例中,并不对该基于该预设数据以确定当前时间的算法或方式进行限定,只需其满足本实施例的要求即可。
其中,该当前时间包括:当前版本的应用程序的编译时间。即:基于该VersionCode,可以获知该当前版本的应用程序的编译时间。所以,在本另一实施例中,通过该VersionCode,可以获知该当前版本的应用程序被成功开发出时的时间,
S48:报错。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。基于该VersionCode,还可获知该当前版本的应用程序的编译时间。
为了更好说明本实施例所述方法的实施过程,下面结合GooglePlay作为一个具体应用示例,对本实施例所述方法进行说明。
本发明第五实施例提供了一种VersionCode的生成方法,该方法包括:
步骤一:设置基准年baseYear为1970;
步骤二:获取当前时间为北京时间2018-6-1114:51:29。其中,该北京时间为GooglePlay被成功开发出新版本时的时间。
步骤三:对北京时间2018-6-1114:51:29进行预处理,得到预设数据,该预设数据包括:该当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;
具体的,year=2018,hourOfDay=14,minute=51;针对该dayOfYear,应用程序的开发系统可以通过javaApi的calendar.get(Calendar.DAY_OF_YEAR)进行获取,得到dayOfYear=162。
步骤四:依据以下公式生成该VersionCode:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute=(2018-1970)*10000000+162*10000+14*100+51=VersionCode=481621451。
图5为本发明第五实施例中VersionCode的格式示意图。根据图5所示,从低位开始,其1-2位对应于表示当前时间的分钟数minute;3-4位对应于当前时间的小时数hourOfDay(24小时制);5-7位对应于当前时间在当年中的第几天(在当前年份中所处的天数dayOfYear);8-10位表示当前时间所处的年份year与baseYear的差值。
而且,图6为本发明第五实施例中VersionCode的结构示意图。其中,该VersionCode=481621451如图6所示。
步骤五:判断该VersionCode是否小于等于2100000000,若是,则确定该生成的VersionCode为所需的VersionCode;否则,执行步骤六。
步骤六:报错。
此外,在已知上述VersionCode之后,还可通过以下步骤七至八获取上述的当前时间。
具体的,步骤七:在确定VersionCode=481621451的情况下,执行以下公式即可获知预设数据:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
步骤八:在得到minute、hourOfDay、dayOfYear、及year后,结合baseYear,即可获知上述的当前时间。
就此,应用程序的开发系统通过baseYear以及当前时间,即可自动生成当前版本的应用程序的VersionCode,从而避免了在开发及更新应用程序时手动指定VersionCode,简化了应用程序开发工作及更新工作的工作量。基于该VersionCode,还可获知该当前版本的应用程序的编译时间。
图7为本发明第六实施例一种VersionCode的生成装置方法的结构示意图。根据图7所示,根据本发明的第六个方面,提供了一种VersionCode的生成装置,所述装置包括:设定模块110,用于设定基准年baseYear;生成模块120,用于基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
可选的,所述装置还包括:判断模块130,用于在生成所述VersionCode之后,判断生成的所述VersionCode是否小于等于预设阈值;判定模块140,用于在生成的所述VersionCode小于等于预设阈值的情况下,判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode;
可选的,所述装置还包括:当前时间确定模块150,用于在已知所述VersionCode的情况下,基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间。
可选的,所述生成模块120具体用于:对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
其中,第一预设算法包括:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute;
所述第二算法包括:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000;
而且,baseYear表征为所述baseYear。
本发明第七实施例提供了一种电子设备,包括处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的一种VersionCode的生成装置方法。
本发明第七实施例中的一种电子设备所涉及的名词及实现原理具体可以参照本发明实施例中的第一至五实施例的一种VersionCode的生成装置方法,在此不再赘述。
本发明第八实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个模块,所述一个或者多个模块可被一个或者多个处理器执行,以实现上述的一种VersionCode的生成装置方法。
本发明第八实施例中的一种计算机可读存储介质所涉及的名词及实现原理具体可以参照本发明实施例中的第一至五实施例的一种VersionCode的生成装置方法,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种VersionCode的生成方法,其特征在于,所述方法包括:
设定基准年baseYear;
基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
2.根据权利要求1所述的方法,其特征在于,在生成所述VersionCode之后,所述方法还包括:
判断生成的所述VersionCode是否小于等于预设阈值;
若是,则判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在已知所述VersionCode的情况下,基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间。
4.根据权利要求3所述的方法,其特征在于,所述基于baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,包括:
对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;
基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
其中,第一预设算法包括:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute;
所述第二算法包括:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
5.一种VersionCode的生成装置,其特征在于,所述装置包括:
设定模块,用于设定基准年baseYear;
生成模块,用于基于所述baseYear及当前时间,通过第一预设算法生成当前版本的应用程序的VersionCode,其中,所述当前时间包括:所述当前版本的应用程序的编译时间。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
判断模块,用于在生成所述VersionCode之后,判断生成的所述VersionCode是否小于等于预设阈值;
判定模块,用于在生成的所述VersionCode小于等于预设阈值的情况下,判定生成的所述VersionCode为所述当前版本的应用程序所需的VersionCode。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
当前时间确定模块,用于在已知所述VersionCode的情况下,基于所述VersionCode及所述baseYear,通过第二预设算法确定所述当前时间。
8.根据权利要求7所述的装置,其特征在于,所述生成模块具体用于:
对所述当前时间进行预处理,得到预设数据,所述预设数据包括:所述当前时间所处的年份year、在当前年份中所处的天数dayOfYear、在当天中的小时数hourOfDay、在当前小时中所处的分钟数minute;
基于所述baseYear及所述预设数据,通过第一预设算法生成当前版本的应用程序的VersionCode;
其中,第一预设算法包括:
VersionCode=(year-baseYear)*10000000+dayOfYear*10000+hourOfDay*100+minute;
所述第二算法包括:
minute=VersionCode%100;
hourOfDay=(VersionCode-minute)%10000/100;
dayOfYear=(VersionCode-minute-hourOfDay*100)%10000000/10000;
year=baseYear+(VersionCode-minute-hourOfDay*100-dayOfYear*10000)/10000000。
9.一种计算机设备,其特征在于,包括处理器和存储器;
所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现权利要求1至4中任一项所述的一种VersionCode的生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至4中任一项所述的一种VersionCode的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857946.8A CN109032660A (zh) | 2018-07-31 | 2018-07-31 | 一种VersionCode的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857946.8A CN109032660A (zh) | 2018-07-31 | 2018-07-31 | 一种VersionCode的生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109032660A true CN109032660A (zh) | 2018-12-18 |
Family
ID=64646930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857946.8A Pending CN109032660A (zh) | 2018-07-31 | 2018-07-31 | 一种VersionCode的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032660A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427211A (zh) * | 2019-06-28 | 2019-11-08 | 苏州浪潮智能科技有限公司 | 一种演示数据调用方法与装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752930A (zh) * | 2004-09-23 | 2006-03-29 | 华为技术有限公司 | 芯片程序加载方法 |
-
2018
- 2018-07-31 CN CN201810857946.8A patent/CN109032660A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752930A (zh) * | 2004-09-23 | 2006-03-29 | 华为技术有限公司 | 芯片程序加载方法 |
Non-Patent Citations (2)
Title |
---|
IJK666: "Android之版本-自动添加编译时间-自动修改版本号", 《HTTPS://BLOG.CSDN.NET/LQHED/ARTICLE/DETAILS/53504014》 * |
梦想拒绝零风险: "两种方法实现VersionCode和VersionName自增", 《HTTPS://BLOG.CSDN.NET/KEVINSCSDN/ARTICLE/DETAILS/53582096》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427211A (zh) * | 2019-06-28 | 2019-11-08 | 苏州浪潮智能科技有限公司 | 一种演示数据调用方法与装置 |
CN110427211B (zh) * | 2019-06-28 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种演示数据调用方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744680B (zh) | 一种业务流程处理方法及装置 | |
CN110096263A (zh) | Web前端代码自动生成方法及装置 | |
CN110245145A (zh) | 关系型数据库到Hadoop数据库的结构同步方法和装置 | |
CN110471694A (zh) | 注释信息处理方法、装置、计算机设备及存储介质 | |
CN109375943A (zh) | 一种程序文件生成方法及装置 | |
CN102760096A (zh) | 测试用数据的生成方法、单元测试方法以及单元测试系统 | |
CN106648664A (zh) | 自助终端业务流程的更新方法及装置 | |
WO2006007588A2 (en) | Method and system for test case generation | |
CN105608382A (zh) | 软件维护方法与软件问题判定方法以及其相应的装置 | |
CN109908585A (zh) | 一种文件处理方法及系统、计算设备及存储介质 | |
CN110069279A (zh) | 一种直流控制保护程序的校验方法、装置及存储介质 | |
CN104573127B (zh) | 评估数据差异性的方法和系统 | |
CN109240916A (zh) | 信息输出控制方法、装置及计算机可读存储介质 | |
CN110046086A (zh) | 用于测试的期望数据生成方法及装置和电子设备 | |
CN109032660A (zh) | 一种VersionCode的生成方法、装置、电子设备及存储介质 | |
CN109408092A (zh) | 前端版本发布的方法及装置、存储介质及电子设备 | |
CN103685259B (zh) | 账户登录的方法及其装置 | |
CN110941422B (zh) | 代码自动生成方法、代码生成器及可读存储介质 | |
CN110347657A (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN112256978B (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
CN104199689A (zh) | 综合前端系统的安装方法及装置 | |
CN105302425B (zh) | 一种应用对象的处理方法及电子设备 | |
JP5668492B2 (ja) | データ処理装置、コンピュータプログラム及びデータ処理方法 | |
CN104166571B (zh) | 一种软件的安装控制方法及装置 | |
CN113986747A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181218 |