一种SDK接入方法及系统与流程

文档序号:12664731阅读:323来源:国知局
一种SDK接入方法及系统与流程

本发明涉及网络通信技术领域,具体而言,涉及一种SDK接入方法及系统。



背景技术:

SDK(Software Development Kit,软件开发工具包)是开发工具的集合。技术人员在开发应用程序时,可以将SDK接入应用程序中,直接使用SDK提供的功能。

SDK包括代码文件、配置文件和资源文件。相关技术中,在将SDK接入应用程序时,技术人员拷贝SDK包括的代码文件、配置文件和资源文件,然后分别将拷贝的代码文件、配置文件和资源文件放置在应用程序的相应文件目录下。

上述相关技术中由技术人员手动将SDK包括的文件拷贝至应用程序的相应目录下,SDK接入依赖人工操作,接入效率很低,且很容易出错。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种SDK接入方法及系统,将SDK拆分为SDK加载器和SDK插件,通过SDK加载器自动将SDK插件加载到应用程序中,避免了接入过程中的人工操作,提高了SDK接入效率,减少了接入过程的出错率。

第一方面,本发明实施例提供了一种SDK接入方法,所述方法包括:

从SDK服务器获取软件开发工具包SDK数据,所述SDK数据包括SDK插件和SDK加载器;

通过所述SDK加载器获取应用程序的私有目录;

通过所述SDK加载器将所述SDK插件配置在所述应用程序的私有目录下。

结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述通过所述SDK加载器将所述SDK插件配置在所述应用程序的私有目录下,包括:

通过所述SDK加载器获取所述SDK插件中包括的资源文件、配置文件和代码文件;

通过所述SDK加载器将所述资源文件、所述配置文件和所述代码文件加载到所述应用程序的私有目录下。

结合第一方面,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述通过所述SDK加载器获取应用程序的私有目录之前,还包括:

当所述SDK数据为密文数据时,按照预设规则对所述SDK数据进行解密,得到所述SDK数据包括的SDK插件和SDK加载器。

结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述通过所述SDK加载器获取应用程序的私有目录之前,还包括:

根据所述SDK插件和所述SDK加载器,获取所述SDK数据对应的完整性校验码;

根据所述完整性校验码,确定所述SDK数据是否完整;

当确定所述SDK数据完整时,执行所述通过所述SDK加载器获取应用程序的私有目录;

当确定所述SDK数据不完整时,重新从SDK服务器获取SDK数据。

结合第一方面,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述通过所述SDK加载器将所述SDK插件配置在所述应用程序的私有目录下之后,还包括:

当所述应用程序调用所述SDK插件时,通过文件读写方式获取并展示图片信息。

结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述通过所述SDK加载器将所述SDK插件配置在所述应用程序的私有目录下之后,还包括:

每当所述应用程序启动时,通过所述SDK加载器获取所述SDK插件的版本信息,发送所述版本信息给所述SDK服务器,以使所述SDK服务器根据所述版本信息确定所述SDK插件的版本是否为最新版本。

结合第一方面的第五种可能的实现方式,本发明实施例提供了上述第一方面的第六种可能的实现方式,其中,所述方法还包括:

接收所述SDK服务器在确定所述SDK插件的版本不是最新版本时下发的最新版本的SDK插件;

通过所述SDK加载器将所述私有目录下的不是最新版本的SDK插件删除;

通过所述SDK加载器将所述最新版本的SDK插件加载至所述私有目录下。

第二方面,本发明实施例提供了一种SDK接入系统,所述系统包括终端和SDK服务器;

所述终端,用于从所述SDK服务器获取SDK数据,所述SDK数据包括SDK插件和SDK加载器;通过所述SDK加载器获取应用程序的私有目录;通过所述SDK加载器将所述SDK插件配置在所述应用程序的私有目录下。

结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,

所述终端,用于通过所述SDK加载器获取所述SDK插件中包括的资源文件、配置文件和代码文件;通过所述SDK加载器将所述资源文件、所述配置文件和所述代码文件加载到所述应用程序的私有目录下。

结合第二方面,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,

所述终端,还用于每当所述应用程序启动时,通过所述SDK加载器获取所述SDK插件的版本信息,发送所述版本信息给所述SDK服务器;

所述SDK服务器,用于根据所述版本信息确定所述SDK插件的版本是否为最新版本,当确定所述SDK插件的版本不是最新版本时下发最新版本的SDK插件给所述终端;

所述终端,还用于接收所述SDK服务器下发的最新版本的SDK插件;通过所述SDK加载器将所述私有目录下的不是最新版本的SDK插件删除;通过所述SDK加载器将所述最新版本的SDK插件加载至所述私有目录下。

在本发明实施例提供的方法及系统中,从SDK服务器获取软件开发工具包SDK数据,SDK数据包括SDK插件和SDK加载器;通过SDK加载器获取应用程序的私有目录;通过SDK加载器将SDK插件配置在应用程序的私有目录下。本发明将SDK拆分为SDK加载器和SDK插件,通过SDK加载器自动将SDK插件加载到应用程序中,避免了接入过程中的人工操作,提高了SDK接入效率,减少了接入过程的出错率。且SDK插件可以进行加密存储及传输,提高了SDK核心业务的安全性。另外,SDK插件不使用XML文件访问方式进行资源利用和界面编写,大大降低了SDK接入时的繁杂程度。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例1所提供的一种SDK接入方法的流程图;

图2示出了本发明实施例1所提供的一种SDK客户端的示意图;

图3示出了本发明实施例2所提供的一种SDK接入系统的结构示意图;

图4示出了本发明实施例2所提供的一种SDK服务器的功能示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到相关技术中由技术人员手动将SDK包括的文件拷贝至应用程序的相应目录下,SDK接入依赖人工操作,接入效率很低,且很容易出错。基于此,本发明实施例提供了一种SDK接入方法及系统,下面通过实施例进行描述。

实施例1

本发明实施例提供了一种SDK接入方法。该方法所基于的网络架构包括终端和SDK服务器。当需要通过终端将SDK接入某个应用程序时,终端通过本发明实施例提供的方法,从SDK服务器获取SDK并接入该应用程序,避免SDK接入过程中的人工操作,提高SDK接入效率,及降低接入过程的出错率。参见图1,该方法具体包括以下步骤:

步骤101:从SDK服务器获取SDK数据,该SDK数据包括SDK插件和SDK加载器。

当需要在一个应用程序中使用SDK时,通过终端登录SDK服务器,显示SDK下载页面给用户。当用户点击需使用的SDK对应的下载地址时,发送该SDK对应的下载请求给SDK服务器。SDK服务器接收该下载请求,返回SDK数据给终端。

如图2所示,上述SDK数据为SDK客户端的数据,包括SDK插件和SDK加载器。其中,SDK插件中包括资源文件、配置文件和代码文件,涵盖了该SDK业务所需的所有文件。SDK加载器作为SDK插件的载体,主要负责SDK插件的插件更新、插件解密和插件加载。本发明实施例正是通过SDK加载器自动将SDK插件接入应用程序中,避免了SDK接入过程中的人工操作,提高了接入效率。

步骤102:通过SDK加载器获取应用程序的私有目录。

在本发明实施例中,为了提高SDK数据在传输过程中的安全性,SDK服务器下发的SDK数据为事先按照预设规则进行了加密的密文数据,所以终端在获取到SDK数据,并确定获取的SDK数据为密文数据时,按照预设规则对SDK数据进行解密,得到SDK数据包括的SDK插件和SDK加载器。

上述预设规则为SDK服务器设定的加密规则及解密规则。例如,SDK服务器使用预设密钥对SDK数据进行DES(Data Encryption Standard,数据加密标准)加密得到密文数据,则终端必须使用该预设密钥对密文数据进行DES解密得到SDK数据中包括的SDK插件和SDK加载器。

在本发明实施例中,若获取到的SDK数据为密文数据,则通过上述方式进行解密,得到解密后的SDK数据,然后进行后续操作。若获取到的SDK数据不是密文数据,则直接进行后续操作。

为了保证接入SDK后应用程序能够成功调用SDK,还需要通过如下方式来验证获取的SDK数据的完整性,以确保最终接入应用程序的SDK是从SDK服务器获取的完整数据。数据完整性验证的具体操作包括:

根据SDK插件和SDK加载器,获取SDK数据对应的完整性校验码;根据完整性校验码,确定SDK数据是否完整;当确定SDK数据完整时,执行通过SDK加载器获取应用程序的私有目录;当确定SDK数据不完整时,重新从SDK服务器获取SDK数据。

在获取SDK数据对应的完整性校验码时,终端可以对获取SDK插件和SDK加载器进行哈希运算,获得SDK数据对应的的MD5(Message DigestAlgorithm5,消息摘要算法第五版)编码,将该MD5编码作为SDK数据对应的完整性校验码。然后将该完整性校验码发送给SDK服务器。SDK服务器接收到终端发送的完整性校验码后,对SDK服务器本地存储的SDK数据进行哈希运算得到一个MD5编码,比较运算得到的MD5编码与终端上传的完整性校验码是否相同,若两者相同,则发送完整指示信息给终端。若两者不相同,则发送不完整指示信息给终端。

当终端接收到SDK服务器发送的不完整指示信息时,确定获取的SDK数据不完整,则删除已获取的SDK数据,重新从SDK服务器获取SDK数据。本发明实施例中,当SDK服务器比较出运算的MD5编码与终端上传的完整性校验码不相同时,也可以直接重新下发SDK数据,终端接收到SDK下发的SDK数据时,确定之前获取的SDK数据不完整,则删除之前获取的SDK数据。在本发明实施例中,当确定SDK数据不完整且重新获取到SDK数据时,还通过上述方式再次确定重新获取的SDK数据是否完整,直到确保获取到完整的SDK数据。

当通过上述方式确定最终获取的SDK数据完整时,通过SDK加载器获取应用程序的私有目录。

步骤103:通过SDK加载器将SDK插件配置在应用程序的私有目录下。

通过SDK加载器获取SDK插件中包括的资源文件、配置文件和代码文件;通过SDK加载器将资源文件、配置文件和代码文件加载到应用程序的私有目录下。

SDK加载器将SDK插件中包括的资源文件、配置文件和代码文件加载到应用程序的私有目录下,就实现了在该应用程序中接入SDK插件,之后SDK插件根据应用程序所调用的接口行使SDK相应的功能。在涉及UI(UserInterface,用户界面)显示的时候,为避免产生额外的SDK对接流程,本发明实施例不使用安卓开发传统的XML(Extensible Markup Language,可扩展标记语言)文件进行布局,而是使用代码编写布局的方式进行UI显示。即SDK插件包括的代码文件中包括技术人员编写好的UI显示的代码,当应用程序通过接口调用SDK插件进行UI显示时,直接运行代码文件中关于UI显示的代码进行UI显示。

而且为了减少接入SDK时所需的资源文件,对于图片信息等资源本发明实施例也不使用Resource(资源)文件访问的方式进行获取及展示,而是当应用程序调用SDK插件时,通过文件读写方式获取并展示图片信息。如此可以脱离常规开发中对传统资源文件的需求,减少接入时的资源文件,缩短接入SDK所需的时间,提高接入效率。

在本发明实施例中,通过上述方式在应用程序中接入SDK,并发布应用程序后,每当应用程序启动时,通过SDK加载器获取SDK插件的版本信息,发送版本信息给SDK服务器,以使SDK服务器根据版本信息确定SDK插件的版本是否为最新版本。

上述版本信息包括SDK插件的版本号及文件哈希值,该文件哈希值可以为对SDK插件包括的资源文件、配置文件和代码文件进行哈希运算得到的哈希值。上述版本信息还可以包括推广渠道的渠道标识及邀请码等信息。本发明实施例并不限定版本信息仅包括上述版本号、文件哈希值、渠道标识及邀请码,在实际应用中可以根据具体需求扩展版本信息包括的具体内容。

SDK服务器接收到终端发送的版本信息后,获取SDK插件对应的最新版本号,比较该最新版本号与版本信息包括的版本号,若两者不一致,则表明终端上该应用程序接入的SDK插件的版本不是最新版本,此时SDK服务器下发最新版本的SDK插件给终端。终端接收SDK服务器在确定SDK插件的版本不是最新版本时下发的最新版本的SDK插件;通过SDK加载器将私有目录下的不是最新版本的SDK插件删除;通过SDK加载器将最新版本的SDK插件加载至私有目录下。

若SDK服务器比较出最新版本号与版本信息包括的版本号一致,则表明终端上该应用程序接入的SDK插件的版本是最新版本,此时SDK服务器对本地存储的最新版本的SDK插件进行哈希运算得到一个哈希值,比较该哈希值与终端发送的版本信息中包括的文件哈希值,若两者相同,则表明终端上该应用程序接入的SDK插件文件完整没有损坏,发送用于指示SDK插件是最新版本且未损坏的指示信息给终端。若两者不相同,则表明终端上该应用程序接入的SDK插件的文件有损坏,则SDK服务器下发未损坏的最新版本的SDK插件给终端。终端接收SDK服务器下发的该SDK插件;通过SDK加载器将私有目录下已损坏的SDK插件删除;通过SDK加载器将未损坏的SDK插件加载至私有目录下。

通过上述方式对应用程序中接入的SDK插件进行版本升级,如此在出现新版本的SDK插件时,可以避免重复接入操作,大大提高了SDK接入的智能化程度。本发明实施例将SDK拆分为SDK加载器和SDK插件,使用SDK加载器对SDK插件进行管理,将核心业务放在SDK插件中,使其能够在每次使用前进行校验和更新。SDK插件不使用XML等传统手段进行资源利用和界面编写,大大降低了SDK接入时的繁杂程度。SDK的核心业务使用SDK插件编写,插件本身可以进行加密存储,使用SDK加载器解密,保证了SDK核心业务的安全。

在本发明实施例提供的方法中,从SDK服务器获取软件开发工具包SDK数据,SDK数据包括SDK插件和SDK加载器;通过SDK加载器获取应用程序的私有目录;通过SDK加载器将SDK插件配置在应用程序的私有目录下。本发明将SDK拆分为SDK加载器和SDK插件,通过SDK加载器自动将SDK插件加载到应用程序中,避免了接入过程中的人工操作,提高了SDK接入效率,减少了接入过程的出错率。且SDK插件可以进行加密存储及传输,提高了SDK核心业务的安全性。另外,SDK插件不使用XML文件访问方式进行资源利用和界面编写,大大降低了SDK接入时的繁杂程度。

实施例2

参见图3,本发明实施例提供了一种SDK接入系统,该系统用于执行上述实施例1所提供的SDK接入方法,该系统包括终端201和SDK服务器202;其中,如图4所述SDK服务器202主要负责插件版本控制、插件加密和插件下发。

终端201,用于从SDK服务器202获取SDK数据,SDK数据包括SDK插件和SDK加载器;通过SDK加载器获取应用程序的私有目录;通过SDK加载器将SDK插件配置在应用程序的私有目录下。

终端201,用于通过SDK加载器获取SDK插件中包括的资源文件、配置文件和代码文件;通过SDK加载器将资源文件、配置文件和代码文件加载到应用程序的私有目录下。

终端201,还用于每当应用程序启动时,通过SDK加载器获取SDK插件的版本信息,发送版本信息给SDK服务器202;

SDK服务器202,用于根据版本信息确定SDK插件的版本是否为最新版本,当确定SDK插件的版本不是最新版本时下发最新版本的SDK插件给终端201;

终端201,还用于接收SDK服务器202下发的最新版本的SDK插件;通过SDK加载器将私有目录下的不是最新版本的SDK插件删除;通过SDK加载器将最新版本的SDK插件加载至私有目录下。

终端201,还用于当SDK数据为密文数据时,按照预设规则对SDK数据进行解密,得到SDK数据包括的SDK插件和SDK加载器。

终端201,还用于根据SDK插件和SDK加载器,获取SDK数据对应的完整性校验码;根据完整性校验码,确定SDK数据是否完整;当确定SDK数据完整时,执行通过SDK加载器获取应用程序的私有目录;当确定SDK数据不完整时,重新从SDK服务器202获取SDK数据;当应用程序调用SDK插件时,通过文件读写方式获取并展示图片信息。

在本发明实施例提供的系统中,从SDK服务器获取软件开发工具包SDK数据,SDK数据包括SDK插件和SDK加载器;通过SDK加载器获取应用程序的私有目录;通过SDK加载器将SDK插件配置在应用程序的私有目录下。本发明将SDK拆分为SDK加载器和SDK插件,通过SDK加载器自动将SDK插件加载到应用程序中,避免了接入过程中的人工操作,提高了SDK接入效率,减少了接入过程的出错率。且SDK插件可以进行加密存储及传输,提高了SDK核心业务的安全性。另外,SDK插件不使用XML文件访问方式进行资源利用和界面编写,大大降低了SDK接入时的繁杂程度。

本发明实施例所提供的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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