软件开发工具包管理方法及装置与流程

文档序号:12119734阅读:187来源:国知局
软件开发工具包管理方法及装置与流程
本发明涉及智慧家居
技术领域
,尤其涉及一种软件开发工具包管理方法及装置。
背景技术
:随着智能家居技术的不断发展,智能家电的功能也越来越多。通常在智能家电中设置Wi-Fi模块以实现家电与外界网络的连接。其中,Wi-Fi模块中集成有软件开发工具包(SoftwareDevelopmentKit,SDK),用以提供云平台对接、空中下载技术(Over-the-AirTechnology,OTA)升级和近场发现等功能。用户可以对Wi-Fi模块中的SDK进行再开发,以实现对家电快速地网络连接和操作控制。然而,现有的智能家电中,其Wi-Fi模块的SDK对用户是完全公开的,用户可以直接对SDK进行修改、再开发。由此,导致SDK开发者无法对SDK进行统一的管理和控制,SDK版本混杂,同时也增加了SDK开发者的维护难度。技术实现要素:本发明的目的旨在至少在一定程度上解决上述的技术问题之一。为此,本发明的第一个目的在于提出一种软件开发工具包管理方法,该方法通过对SDK设置有效期,实现对SDK的统一管理和控制,降低SDK的维护成本。本发明的第二个目的在于提出一种软件开发工具包管理装置。为了实现上述目的,本发明第一方面实施例提出了一种软件开发工具包管理方法,包括:获取开启软件开发工具包SDK的开启请求,开启请求包括输入的许可证License;获取当前时间;根据当前时间确定License是否失效;如果License失效,则拒绝开启请求。本发明实施例的软件开发工具包管理方法,通过获取开启软件开发工具包的开启请求,并获取当前时间,根据当前时间确定开启请求中的License是否失效,并在License失效时拒绝开启请求,能够为SDK设置具有有效日期的License,从而禁止用户修改SDK,方便开发人员对SDK进行统一管理,进而有效地降低SDK的维护成本。为了实现上述目的,本发明第二方面实施例提出了一种软件开发工具包管理装置,包括:第一获取模块,用于获取开启软件开发工具包SDK的开启请求,开启请求包括输入的许可证License;第二获取模块,用于获取当前时间;确定模块,用于根据当前时间确定License是否失效;禁止模块,用于当License失效时,拒绝开启请求。本发明实施例的软件开发工具包管理装置,通过获取开启软件开发工具包的开启请求,并获取当前时间,根据当前时间确定开启请求中的License是否失效,并在License失效时拒绝开启请求,能够为SDK设置具有有效日期的License,从而禁止用户修改SDK,方便开发人员对SDK进行统一管理,进而有效地降低SDK的维护成本。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是本发明一实施例提出的软件开发工具包管理方法的流程示意图;图2是获取当前时间的流程示意图;图3是根据当前时间确定License是否失效的流程示意图;图4是本发明一实施例提出的软件开发工具包管理装置的结构示意图;图5是本发明另一实施例提出的软件开发工具包管理装置的结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。图1是本发明一实施例提出的软件开发工具包管理方法的流程示意图。如图1所示,本实施例的软件开发工具包管理方法包括:S11:获取开启软件开发工具包SDK的开启请求,开启请求包括输入的许可证License。通常情况下,智能家电的Wi-Fi模块的SDK对用户是完全公开的。用户可以从网络中下载相应的SDK进行修改、再开发等操作,导致SDK的版本混乱,增加了开发人员的管理负担。因此,本实施例中,在SDK中内置一个License验证程序。如果用户想要开启SDK,需要通过输入正确的License才能够进入。具体地,当用户想要正常使用SDK时,需要先向License验证程序发送开启请求,即输入License。其中,license通过预设加密算法加密生成,且具有一定的有效期限。如果License验证程序发现License超出了有效期限,则会禁止开启SDK。其中,预设加密算法包括128位的高级加密标准(AdvancedEncryptionStandard,AES)AES-128对称加密算法、数据加密标准(DataEncryptionStandard,DES)DES对称加密算法、RSA非对称加密算法和国际数据加密算法(InternationalDataEncryptionAlgorithm,IDEA)IDEA加密算法等可靠加密算法。S12:获取当前时间。本实施例中,为了验证License是否超出有效期,需要将有效期同当前时间进行比较,因此,需要获取当前时间。其中,当前时间为输入License所对应的时间。具体地,如图2所示,获取当前时间可以包括以下步骤:S21:执行SDK的库文件中的时间同步代码。本实施例中,在SDK的库文件中,存储有从服务器获取当前时间的时间同步代码。当License验证程序需要获取当前时间时,调用该时间同步代码即可。S22:根据时间同步代码向服务器发送时间同步请求,以使服务器根据时间同步请求返回当前时间。本实施例中,License验证程序调用时间同步代码之后,即可根据该时间同步代码向服务器发送时间同步请求,以使服务器根据时间同步请求返回当前时间。其中,服务器与互联网连通,可即时地获取网络时间,也就是说,服务器返回的当前时间是一个标准的时间,例如北京时间。S23:接收服务器返回的当前时间。本实施例中,在服务器接收到时间同步请求之后,即获取当前时间并发送给License验证程序。License验证程序接收服务器返回的当前时间。S13:根据当前时间确定License是否失效。本实施例中,在获取到当前时间之后,即可根据当前时间确定License是否失效。具体地,如图3所示,根据当前时间确定License是否失效,可以包括以下步骤:S31:确定License的有效日期。上文提到,License具有一定的有效期限,通过解析License可以获取其对应的有效日期。因此,对License进行解密后,可获取一个描述有效日期的字段,字段的数值对应的就是License的有效日期。举例来说,描述License的有效日期的字段可用3个字节长度的16进制数字表示,如表1所示。表1定义License的有效日期的字段表Byte2Byte1Byte0年月日表1中,Byte0用于表示日期信息,取值范围为1~31;Byte1用于表示月份信息,取值范围为1~12;Byte2用于表示年份信息,取值范围为16~99,表示2016~2099年。本实施例中,在SDK验证程序获取到描述License有效日期对应的字段及字段的数值之后,即可根据字段及字段的数值确定License的有效日期。比如,SDK验证程序对License进行解密后获得的字段的数值为0x100C09,其代表含义为License的有效日期为2016年12月9日。需要说明的是,定义License的有效日期的字段不限于表1中所示的3个字节,还可以增加字节单元进行扩展。例如增加一个字节用于定义时区,进而满足不同国家SDK开发者的需求。S32:将有效日期与当前时间进行对比。本实施例中,在获取到当前时间和License的有效日期之后,即可将有效日期和当前时间进行对比,以判断当前时间是否超过License的有效日期。S33:如果当前时间已超过有效日期,则确定License失效。本实施例中,将有效日期和当前时间进行对比,如果当前时间已超过有效日期,则确定License失效。S34:如果当前时间未超过有效日期,则确定License有效。本实施例中,将有效日期和当前时间进行对比,如果当前时间未超过有效日期,则确定License有效,并进一步判断License是否正确。若License正确,则接受开启请求,并开启SDK,然后对SDK进行初始化;否则,拒绝开启请求。S14:如果License失效,则拒绝开启请求。本实施例中,将有效日期和当前时间进行对比,如果当前时间已超过有效日期,则确定License失效,拒绝开启请求。例如:用户输入的License失效,则可禁止开启SDK,从而防止了用户对SDK的随意修改、再开发。本发明实施例的软件开发工具包管理方法,通过获取开启软件开发工具包的开启请求,并获取当前时间,根据当前时间确定开启请求中的License是否失效,并在License失效时拒绝开启请求,能够为SDK设置具有有效日期的License,从而禁止用户修改SDK,方便开发人员对SDK进行统一管理,进而有效地降低SDK的维护成本。为了实现上述实施例,本发明还提出一种软件开发工具包管理装置,图4是本发明一实施例提出的软件开发工具包管理装置的结构示意图。如图4所示,本实施例的软件开发工具包管理装置包括:第一获取模块410、第二获取模块420、确定模块430,以及禁止模块440。其中,第一获取模块410,用于获取开启软件开发工具包SDK的开启请求,开启请求包括输入的许可证License。其中,license通过预设加密算法加密生成。预设加密算法包括AES-128对称加密算法、DES对称加密算法、RSA非对称加密算法和IDEA加密算法等可靠加密算法。第二获取模块420,用于获取当前时间。确定模块430,用于根据当前时间确定License是否失效。禁止模块440,用于当License失效时,拒绝开启请求。可选地,一些实施例中,参见图5,图5是本发明另一实施例提出的软件开发工具包管理装置的结构示意图。如图5所示,本实施例的软件开发工具包管理装置还可以包括:判断模块450,用于当License有效时,则进一步判断License是否正确。开启模块460,用于当License正确时,接受开启请求,并根据开启请求开启SDK。本实施例中,当判断模块450确定License正确时,开启模块460接受开启请求,并根据该开启请求开启SDK;当判断模块450确定License错误时,禁止模块440拒绝开启请求。确定模块430包括:第一确定单元431,用于确定License的有效日期。具体地,第一确定单元431用于:获取描述License有效日期对应的字段及地段的数值,并根据获取的字段及字段的数值确定有效日期。对比单元432,用于将有效日期与当前时间进行对比。第二确定单元433,用于当当前时间已超过有效日期时,确定License失效。第三确定单元434,用于当当前时间未超过有效日期时,确定License有效。第二获取模块420包括:执行单元421,用于执行SDK的库文件中的时间同步代码。发送单元422,用于根据时间同步代码向服务器发送时间同步请求,以使服务器根据时间同步请求返回当前时间。接收单元423,用于接收服务器返回的当前时间。需要说明的是,前述实施例中对软件开发工具包管理方法实施例的解释说明也适用于本实施例的软件开发工具包管理装置,其实现原理类似,此处不再赘述。本发明实施例的软件开发工具包管理装置,通过获取开启软件开发工具包的开启请求,并获取当前时间,根据当前时间确定开启请求中的License是否失效,并在License失效时拒绝开启请求,能够为SDK设置具有有效日期的License,从而禁止用户修改SDK,方便开发人员对SDK进行统一管理,进而有效地降低SDK的维护成本。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1