CN112882732A - 一种软件开发工具包sdk中功能代码的更新方法和装置 - Google Patents
一种软件开发工具包sdk中功能代码的更新方法和装置 Download PDFInfo
- Publication number
- CN112882732A CN112882732A CN202110090820.4A CN202110090820A CN112882732A CN 112882732 A CN112882732 A CN 112882732A CN 202110090820 A CN202110090820 A CN 202110090820A CN 112882732 A CN112882732 A CN 112882732A
- Authority
- CN
- China
- Prior art keywords
- sdk
- function code
- version
- version information
- code
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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
说明书披露一种软件开发工具包SDK中功能代码的更新方法和装置。一种软件开发工具包SDK中功能代码的更新方法,所述SDK内置有触发引擎,包括:接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;接收所述SDK服务端发送的所述版本信息;基于所述版本信息判断是否执行功能代码的更新操作;若是,则基于所述版本信息对所述功能代码执行更新操作。
Description
技术领域
本说明书涉及通信技术领域,特别涉及一种软件开发工具包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进行更新,提升用户使用体验。
附图说明
图1是本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码的更新的方法的流程示意图;
图2为本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码更新方法的多方交互示意图;
图3是本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码的更新装置的一硬件结构图;
图4是本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码的更新装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
SDK(软件开发工具包)是开发工具的集合。技术人员在开发应用程序时,可以将SDK内置到应用程序中,以直接使用SDK提供的功能。例如,某应用程序想要提供刷脸支付的功能,但该应用程序自身未开发这一功能相关的代码。那么该应用程序中可以集成其他技术人员开发的刷脸支付SDK,当用户发起刷脸支付请求时,该应用程序可以调用该SDK,该SDK可以调用摄像头获取用户的人脸图像、将该人脸图像与标准人脸头像库进行比对、或者基于人脸识别模型进行匹配,确定用户的实名身份信息,然后为该用户执行支付操作。
相关技术中,技术人员可能会对SDK进行修复、更改,得到新版本的SDK,并利用新版本的SDK更新应用程序中内置的旧版本的SDK。
一种常用的更新方法是,应用程序中内置的SDK可以调用***API向服务端请求获取更新信息进行更新。然而,由于安卓***、IOS***等操作***的升级,出于安全性的考虑,升级后上述***API会被禁用,即不再允许SDK调用***API,那么SDK也就无法按照上述方法进行升级。在这种情况下,如果想要对应用程序中内置的SDK进行更新,只能让用户手动下载并安装新版本的SDK,这会导致SDK的更新过于被动,若SDK不及时更新可能会给用户带来损失,影响使用体验。
基于此,本说明书提供了一种软件开发工具包SDK中功能代码的更新方法和装置,可以在SDK中内置触发引擎,通过触发引擎加载SDK中的代码,从而使得SDK可以向服务端请求更新信息进行更新。其中,触发引擎的种类可以与SDK中代码的编程语言有关。例如,当SDK中的代码为java语言编写时,那么可以使用JavaScript引擎。本实施例对SDK中代码的编程语言类型、引擎的种类不作特殊限制。
首先对本说明书中的SDK进行说明,本说明书中,SDK可以包含两种代码,分别为功能代码和更新代码,功能代码即可以实现SDK提供的功能的代码,如前述例子提到的刷脸支付功能。更新代码与功能代码不同,更新代码为实现SDK更新相关过程的代码,例如可以实现向SDK服务端请求获取更新信息、下载并安装最新版本的SDK的功能代码。更新代码和功能代码都可以基于SDK内置的触发引擎来加载。
下面对本说明书提供的一种SDK中功能代码的更新方法进行说明。
请参见图1,图1为本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码的更新方法的流程示意图,包括以下步骤:
步骤102,接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求。
步骤104,接收所述SDK服务端发送的所述版本信息。
本实施例中,当应用软件需要调用SDK时,可以向SDK发送调用指令。比如可以通过java语言的调用方式调用SDK,包括基于对象名的调用、基于关键字的调用等等,具体可参照相关技术,本说明书在此不一一说明。
SDK被调用后,可以基于内置的触发引擎加载代码。本实施例中步骤102-步骤108均为触发引擎加载更新代码来执行的。
首先,可以基于触发引擎向SDK服务端发送版本信息获取请求。
在一个例子中,可以在每次被调用后都向服务端发送版本信息获取请求。
在另一个例子中,也可以在每次被调用后,基于预设的规则判断是否要向服务端发送版本信息获取请求。
比如,可以对接收到调用指令的次数进行计数,在接收到调用指令后,判断当前的计数值是否达到次数阈值,若未达到,则可以在本次调用中直接基于触发引擎加载功能代码以实现该SDK自身的功能;若达到,则可以在本次调用中向服务端发送版本信息获取请求、下载并安装更新后的功能代码,然后再基于触发引擎加载更新后的功能代码,并将计数值清零,以进行下一个计数周期。
再比如,也可以设置时间周期,如3天。可以在第一次接收到调用指令时记录当前时刻并开始计时,当计时时长未达到3天时,若这段时间内接收到调用指令,则加载功能代码以实现该SDK自身的功能;当计时时长达到3天时,若接收到调用指令,则向服务端发送版本信息获取请求,下载并安装更新后的功能代码,然后再基于触发引擎加载更新后的功能代码,并将计时时长清零,以进入下一个计时周期。当然,SDK也可以在达到计时时长后就自动向服务端请求获取版本信息以进行更新,而不需要接收到应用软件发送的调用指令再去判断是否达到计时时长,本实施例对此不作特殊限制。
本例中,SDK服务端的地址可以是一开始配置好的,可以基于该地址将版本信息获取请求发送给对应的SDK服务端。
SDK服务端接收到该请求后,可以将版本信息发送给SDK,版本信息可以是SDK的最新版本号、最新版本名称、最新版本的发布时间等等,本实施例对此不作特殊限制。
其中,最新版本的SDK可以是技术人员对旧版本SDK中的功能代码进行修改得到的,最新版本的SDK中可以仅包含功能代码,也可以包含功能代码以及更新代码,而更新代码可以与旧版本SDK中的更新代码相同。
步骤106,基于所述版本信息判断是否执行功能代码的更新操作。
本实施例中,当版本信息为SDK的最新版本号时,可以比较当前版本与最新版本号是否一致,若一致,说明不需要进行更新;若不一致,说明需要进行更新。
当然,当版本信息为最新版本名称、最新版本的发布时间等时,同样可以比较接收到的版本信息是否与当前版本信息一致,从而判断是否需要进行更新,本说明书在此不一一举例。
值得说明的是,在其他例子中,也可以由SDK服务端判断是否需要进行更新。比如,在步骤102中向SDK服务端发送获取版本信息时,也可以在该请求中添加SDK当前的版本信息,SDK服务端可以比较所述当前的版本信息与最新的版本信息是否一致,若一致,则SDK服务端可以直接向SDK返回不需要更新的消息;若不一致,则SDK服务端可以直接向SDK返回需要更新的消息,并且还可以在该消息中添加最新版本SDK的下载地址。本说明书对此不作特殊限制。
步骤108,若是,则基于所述版本信息对所述功能代码执行更新操作。
本实施例中,若需要更新,可以基于最新版本SDK对应的下载地址,下载并安装最新版本的SDK,以实现更新。下面以最新版本SDK中仅包含最新版本的功能代码为例进行说明。
在一个例子中,在确定需要更新后,可以向SDK服务端请求获取下载地址,SDK服务端接收到该请求后可以发送下载地址,可以基于该下载地址下载得到最新版本的SDK,然后利用该最新版本SDK中的功能代码替换现有版本SDK中的功能代码。
在另一个例子中,在步骤102中向SDK服务端发送版本信息获取请求后,SDK服务端可以发送最新版本号以及对应的下载地址,那么在比较最新版本号与当前版本号不一致后,可直接基于该下载地址下载并安装最新版本的SDK中的功能代码。
本实施例中,安装最新版本SDK中的功能代码后,还可以基于该SDK内置的触发引擎加载更新后的功能代码,以实现该SDK的功能。
由以上描述可以看出,在本说明书的一个实施例中,可以在SDK中内置触发引擎,当接收到应用程序发送的调用指令后,可以基于所述触发引擎向SDK服务端发送版本信息获取请求,基于SDK服务端发送的版本信息判断是否执行更新操作,在需要更新的情况下基于版本信息对现有的功能代码进行更新。
采用上述方法,一方面,由于SDK中内置有触发引擎,可以基于触发引擎加载更新代码以与SDK服务端进行交互,并获取服务端提供更新后的功能码以进行更新,这个过程中并不需要调用***API,解决了相关技术中因无法调用***API导致无法更新SDK的问题,可以适用于安卓***、IOS***等多种操作***。另一方面,新版本的SDK包中可以仅包含功能代码,那么下载得到新版本的SDK包后可以仅对现有版本的SDK中的功能代码进行更新,而不需要更新整个SDK包,对已有版本的SDK影响更小。
并且,采用上述方法,可以在应用***调用SDK时,SDK自动地进行更新,并不需要用户主动发起更新,对用户而言使用体验更好,也不会影响SDK正常功能的使用。
下面对本说明书提供的另一种软件开发工具包SDK中功能代码的更新方法进行说明。
本实施例中,SDK中的功能代码为WebAssembly(简称WASM,万维网汇编语言)格式编译的,SDK中内置的触发引擎为WAMR(WebAssembly Micro Runtime,万维网汇编语言微型运行时)引擎。下面先对WASM、WAMR进行简单介绍。
WASM是由W3C社区组织推出的一种为栈式虚拟机设计的二进制指令格式,是一种新的平台无关的中间字节码格式。它是浏览器所能执行的一种新类型的代码,目标是为了在网络上获得更好的性能,具有体积小、加载快、速度快的特点,可以满足诸如游戏、视频编辑、3D渲染或者音乐制作等应用软件的高性能需求。并且,技术人员不需要直接编写WASM代码,而是可以从其他高级语言编译而来。WAMR是一种执行WASM字节码的引擎,可以基于该引擎加载WASM字节码包。
在本实施例中,技术人员可以使用c++等高级语言编写SDK的代码(功能代码和更新代码)后,将该代码编译成WASM格式,并且在SDK中内置WAMR引擎。一方面,可以基于SDK内置WAMR引擎加载更新代码,以向服务端请求获取更新信息进行更新,而不再需要使用***API请求获取更新信息,可以避免由于***API被禁用导致的无法更新的问题;另一方面,由于功能代码也是WAMR格式的,采用这种格式编写得到的代码中的字节数更少、加载更快,可以提供更好的性能,并且也可以基于WAMR引擎对功能代码进行动态加载,也不必再调用***API作代码动态加载。上述方法可以在不影响用户使用体验的情况下自动地进行SDK更新,避免给用户带来损失。
在实施例下面的描述中,若无特殊说明,下面所描述的SDK均是指基于WASM格式编写的SDK,引擎均是指WAMR引擎。
请参见图2,图2为本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码更新方法的多方交互示意图。所述方法可以包括以下步骤
步骤202,应用软件向SDK发送调用指令。
步骤204,SDK判断接收到调用指令的次数是否达到次数阈值。
步骤206,若是,SDK基于引擎向SDK服务端发送最新版本号获取请求。
本实施例中,SDK可以对接收到的调用指令的次数进行计数,假设当前的计数值为n,当SDK接收到应用软件发送的调用指令后,可以将计数值+1,得到计数值为n+1,然后SDK可以判断n+1是否等于预设的次数阈值k,若等于,则向SDK服务端发送最新版本号获取请求,并将计数值记为0;若(n+1)<k,则SDK可以在本次调用中基于内置的WAMR引擎加载功能代码,以实现SDK提供的功能。
步骤208,SDK服务端向SDK发送最新版本号和下载地址。
步骤210,SDK判断最新版本号是否与当前版本号一致。
步骤212,若一致,SDK下载最新版本的SDK。
本实施例中,若最新版本号与当前版本号不一致,SDK可以基于下载地址下载最新版本的SDK。若最新版本号与当前版本号一致,说明SDK不需要进行更新,可基于内置的WAMR引擎加载功能代码以实现SDK提供的功能。
步骤214,SDK对下载得到的最新版本的SDK进行安全性校验。
本实施例中,SDK可以对下载得到的数据进行安全性校验,比如可以采用MD5校验的方法进行校验,具体可参照相关技术,本说明书在此不一一说明。若安全性校验通过,SDK可执行步骤218;若安全性校验不通过,则SDK可以基于所述下载地址重新下载最新版本的SDK,或者也可以向SDK服务端重新请求获取最新版本SDK的下载地址。
步骤216,安装最新版本的SDK。
本步骤中,可以利用最新版本的SDK的功能代码替换现有版本SDK的功能代码,以实现更新。
步骤218,SDK基于引擎加载最新版本的SDK的功能代码。
步骤220,SDK向应用软件发送SDK调用结果相关数据。
本实施例中,安装最新版本的SDK后,可以基于内置的引擎调用该SDK的功能代码,以实现该SDK原本的功能,并且还可以将SDK调用结果相关数据发送给应用软件。仍以上述刷脸支付SDK为例,刷脸支付SDK可以加载功能字节码,获取到人脸数据并进行实名验证、执行支付操作等,然后向应用软件返回支付结果。
由以上描述可以看出,在本说明书的一个实施例中,应用软件可以向SDK发送调用指令,SDK接收到该调用指令后,可以判断接收到调用指令的次数是否达到次数阈值,若达到,则基于引擎向SDK服务端请求获取最新版本号及对应的下载地址,若最新版本号与当前版本号不一致,则SDK可以基于所述下载地址下载并安装最新版本的SDK,然后基于最新版本的SDK内置的引擎加载所述最新版本SDK的功能代码以实现相应的功能。
采用上述方法,还可以通过判断调用次数是否达到次数阈值,来确定是否需要执行更新相关步骤,使得更新过程更加可控,并且可以还可以调整次数阈值以适应实际需求,相比于每次调用都执行更新相关步骤来说,可以大大减轻对设备性能的影响,避免资源浪费。
与前述软件开发工具包SDK中功能代码的更新方法的实施例相对应,本说明书还提供了软件开发工具包SDK中功能代码的更新装置的实施例。
本说明书软件开发工具包SDK中功能代码的更新装置的实施例可以应用在设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书软件开发工具包SDK中功能代码的更新装置的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一示例性实施例示出的一种软件开发工具包SDK中功能代码的更新装置的框图。
请参考图4,所述软件开发工具包SDK中功能代码的更新装置可以应用在前述图3所示的设备中,包括有:请求单元410、接收单元420、判断单元430、获取单元440、更新单元450、第一执行单元460、第二执行单元470。
其中,请求单元410,接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收单元420,接收所述SDK服务端发送的所述版本信息;
判断单元430,基于所述版本信息判断是否执行功能代码的更新操作;
更新单元450,若是,则基于所述版本信息对所述功能代码执行更新操作。
可选的,还包括:
第一执行单元460,在所述功能代码更新完毕之后,基于所述触发引擎加载更新后的功能代码。
可选的,所述请求单元410:
接收到应用软件发送的调用指令后,判断接收到调用指令的次数是否达到次数阈值;
若达到次数阈值,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
可选的,所述请求单元410:
接收到应用软件发送的调用指令后,判断距离上一次向SDK服务端发送版本信息获取请求的时长是否达到预设的时长;
若达到预设的时长,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
可选的,所述版本信息包括最新版本号,所述判断单元430:
判断所述最新版本号是否与当前版本号一致;
若不一致,则确定执行更新操作。
可选的,还包括:
获取单元440,获取最新版本SDK的功能代码的下载地址;
所述更新单元450在基于所述版本信息对所述功能代码执行更新操作时:
基于所述下载地址下载最新版本SDK的功能代码,并利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,所述更新单元450在利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码之前,还:
对下载得到的最新版本的SDK的功能代码进行安全性校验;
在安全性校验通过的情况下,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,还包括:
第二执行单元470,若基于所述版本信息确定不执行功能代码的更新操作,则基于所述触发引擎加载所述功能代码以实现所述SDK的功能。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述软件开发工具包SDK中功能代码的更新方法的实施例相对应,本说明书还提供一种软件开发工具包SDK中功能代码的更新装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与软件开发工具包SDK中功能代码的更新逻辑对应的机器可执行指令,所述处理器被促使:
接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收所述SDK服务端发送的所述版本信息;
基于所述版本信息判断是否执行功能代码的更新操作;
若是,则基于所述版本信息对所述功能代码执行更新操作。
可选的,速搜处理器还被促使:
在所述功能代码更新完毕之后,基于所述触发引擎加载更新后的功能代码。
可选的,在接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求时,所述处理器被促使:
接收到应用软件发送的调用指令后,判断接收到调用指令的次数是否达到次数阈值;
若达到次数阈值,则基于内置的WAMR引擎向SDK服务端发送版本信息获取请求。
可选的,所述接收到应用软件发送的调用指令后,基于内置的引擎向SDK服务端发送版本信息获取请求,包括:
接收到应用软件发送的调用指令后,判断距离上一次向SDK服务端发送版本信息获取请求的时长是否达到预设的时长;
若达到预设的时长,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
可选的,所述版本信息包括最新版本号,在基于所述版本信息判断是否执行更新操作时,所述处理器被促使:
判断所述最新版本号是否与当前版本号一致;
若不一致,则确定执行更新操作。
可选的,所述处理器还被促使:
获取最新版本SDK的功能代码的下载地址;
所述基于所述版本信息对所述功能代码执行更新操作,包括:
基于所述下载地址下载最新版本SDK的功能代码,并利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,在利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码之前,所述处理器还被促使:
对下载得到的最新版本的SDK的功能代码进行安全性校验;
在安全性校验通过的情况下,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,所述处理器还被促使:
若基于所述版本信息确定不执行功能代码的更新操作,则基于所述触发引擎加载所述功能代码以实现所述SDK的功能。
可选的,所述功能代码基于万维网汇编语言WebAssembly格式编译,所述触发引擎为用于加载所述WebAssembly格式编译的代码的万维网汇编语言微型运行时WAMR引擎。
与前述软件开发工具包SDK中功能代码的更新方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收所述SDK服务端发送的所述版本信息;
基于所述版本信息判断是否执行功能代码的更新操作;
若是,则基于所述版本信息对所述功能代码执行更新操作。
可选的,还包括:
在所述功能代码更新完毕之后,基于所述触发引擎加载更新后的功能代码。
可选的,所述接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求,包括:
接收到应用软件发送的调用指令后,判断接收到调用指令的次数是否达到次数阈值;
若达到次数阈值,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
可选的,所述接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求,包括:
接收到应用软件发送的调用指令后,判断距离上一次向SDK服务端发送版本信息获取请求的时长是否达到预设的时长;
若达到预设的时长,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
可选的,所述版本信息包括最新版本号,所述基于所述版本信息判断是否执行更新操作,包括:
判断所述最新版本号是否与当前版本号一致;
若不一致,则确定执行更新操作。
可选的,还包括:
获取最新版本SDK的功能代码的下载地址;
所述基于所述版本信息对所述功能代码执行更新操作,包括:
基于所述下载地址下载最新版本SDK的功能代码,并利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,所述利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码之前,还包括:
对下载得到的最新版本的SDK的功能代码进行安全性校验;
在安全性校验通过的情况下,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
可选的,还包括:
若基于所述版本信息确定不执行功能代码的更新操作,则基于所述触发引擎加载所述功能代码。
可选的,所述功能代码基于万维网汇编语言WebAssembly格式编译,所述触发引擎为用于加载所述WebAssembly格式编译的代码的万维网汇编语言微型运行时WAMR引擎。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (19)
1.一种软件开发工具包SDK中功能代码的更新方法,所述SDK内置有触发引擎,包括:
接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收所述SDK服务端发送的所述版本信息;
基于所述版本信息判断是否执行功能代码的更新操作;
若是,则基于所述版本信息对所述功能代码执行更新操作。
2.根据权利要求1所述方法,还包括:
在所述功能代码更新完毕后,基于所述触发引擎加载更新后的功能代码。
3.根据权利要求1所述方法,所述接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求,包括:
接收到应用软件发送的调用指令后,判断接收到调用指令的次数是否达到次数阈值;
若达到次数阈值,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
4.根据权利要求1所述方法,所述接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求,包括:
接收到应用软件发送的调用指令后,判断距离上一次向SDK服务端发送版本信息获取请求的时长是否达到预设的时长;
若达到预设的时长,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
5.根据权利要求1所述方法,所述版本信息包括最新版本号,所述基于所述版本信息判断是否执行更新操作,包括:
判断所述最新版本号是否与当前版本号一致;
若不一致,则确定执行更新操作。
6.根据权利要求5所述方法,还包括:
获取最新版本SDK的功能代码的下载地址;
所述基于所述版本信息对所述功能代码执行更新操作,包括:
基于所述下载地址下载最新版本SDK的功能代码,并利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
7.根据权利要求6所述方法,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码之前,还包括:
对下载得到的最新版本的SDK的功能代码进行安全性校验;
在安全性校验通过的情况下,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
8.根据权利要求1所述方法,还包括:
若基于所述版本信息确定不执行功能代码的更新操作,则基于所述触发引擎加载所述功能代码。
9.根据权利要求1-8任一项所述方法,所述功能代码基于万维网汇编语言WebAssembly格式编译,所述触发引擎为用于加载所述WebAssembly格式编译的代码的万维网汇编语言微型运行时WAMR引擎。
10.一种软件开发工具包SDK中功能代码的更新装置,所述SDK内置有触发引擎,所述装置包括:
请求单元,接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收单元,接收所述SDK服务端发送的所述版本信息;
判断单元,基于所述版本信息判断是否执行功能代码的更新操作;
更新单元,若是,则基于所述版本信息对所述功能代码执行更新操作。
11.根据权利要求10所述装置,还包括:
第一执行单元,在所述功能代码更新完毕之后,基于所述触发引擎加载更新后的功能代码。
12.根据权利要求10所述装置,所述请求单元:
接收到应用软件发送的调用指令后,判断接收到调用指令的次数是否达到次数阈值;
若达到次数阈值,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
13.根据权利要求10所述装置,所述请求单元:
接收到应用软件发送的调用指令后,判断距离上一次向SDK服务端发送版本信息获取请求的时长是否达到预设的时长;
若达到预设的时长,则基于内置的触发引擎向SDK服务端发送版本信息获取请求。
14.根据权利要求10所述装置,所述版本信息包括最新版本号,所述判断单元:
判断所述最新版本号是否与当前版本号一致;
若不一致,则确定执行更新操作。
15.根据权利要求14所述装置,还包括:
获取单元,获取最新版本SDK的功能代码的下载地址;
所述更新单元在基于所述版本信息对所述功能代码执行更新操作时:
基于所述下载地址下载最新版本SDK的功能代码,并利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
16.根据权利要求15所述装置,所述更新单元在利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码之前,还:
对下载得到的最新版本的SDK的功能代码进行安全性校验;
在安全性校验通过的情况下,利用所述最新版本SDK的功能代码替换当前版本SDK的功能代码。
17.根据权利要求10所述装置,还包括:
第二执行单元,若基于所述版本信息确定不执行功能代码的更新操作,则基于所述触发引擎加载所述功能代码。
18.根据权利要求10-17任一项所述装置,所述功能代码基于万维网汇编语言WebAssembly格式编译,所述触发引擎为用于加载所述WebAssembly格式编译的代码的万维网汇编语言微型运行时WAMR引擎。
19.一种软件开发工具包SDK中功能代码的更新装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与软件开发工具包SDK中功能代码的更新逻辑对应的机器可执行指令,所述处理器被促使:
接收到应用软件发送的调用指令后,基于内置的触发引擎向SDK服务端发送版本信息获取请求;
接收所述SDK服务端发送的所述版本信息;
基于所述版本信息判断是否执行功能代码的更新操作;
若是,则基于所述版本信息对所述功能代码执行更新操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110090820.4A CN112882732A (zh) | 2021-01-22 | 2021-01-22 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110090820.4A CN112882732A (zh) | 2021-01-22 | 2021-01-22 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112882732A true CN112882732A (zh) | 2021-06-01 |
Family
ID=76050533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110090820.4A Pending CN112882732A (zh) | 2021-01-22 | 2021-01-22 | 一种软件开发工具包sdk中功能代码的更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882732A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363990A (zh) * | 2021-12-28 | 2022-04-15 | 上海黑眸智能科技有限责任公司 | 可兼容多个app的设备端配网方法、***、设备端及app端 |
CN114942774A (zh) * | 2022-07-26 | 2022-08-26 | 中恒信息科技(广州)有限公司 | 一种基于bim建模软件的插件功能的热更新方法 |
CN116700841A (zh) * | 2023-08-03 | 2023-09-05 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353844A (zh) * | 2013-06-25 | 2013-10-16 | 亿赞普(北京)科技有限公司 | 一种软件开发工具包升级方法和*** |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、***及客户端 |
CN108366127A (zh) * | 2018-03-07 | 2018-08-03 | 北京奇艺世纪科技有限公司 | 一种软件包的获取方法及装置 |
US20180365004A1 (en) * | 2017-06-14 | 2018-12-20 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for calling software development kit |
CN109062590A (zh) * | 2018-06-29 | 2018-12-21 | 武汉掌游科技有限公司 | 一种游戏sdk在线更新的方法及*** |
CN109240733A (zh) * | 2017-07-03 | 2019-01-18 | Tcl集团股份有限公司 | 一种基于安卓***更新广告sdk的方法及终端 |
CN110837378A (zh) * | 2018-08-16 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 软件开发工具包sdk功能的调用方法及装置 |
CN111722857A (zh) * | 2019-03-20 | 2020-09-29 | 北京柏林互动科技有限公司 | 软件开发工具包的更新方法、装置、电子设备及存储介质 |
-
2021
- 2021-01-22 CN CN202110090820.4A patent/CN112882732A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353844A (zh) * | 2013-06-25 | 2013-10-16 | 亿赞普(北京)科技有限公司 | 一种软件开发工具包升级方法和*** |
CN107122200A (zh) * | 2016-02-25 | 2017-09-01 | 博雅网络游戏开发(深圳)有限公司 | 加载插件sdk的方法、***及客户端 |
US20180365004A1 (en) * | 2017-06-14 | 2018-12-20 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for calling software development kit |
CN109240733A (zh) * | 2017-07-03 | 2019-01-18 | Tcl集团股份有限公司 | 一种基于安卓***更新广告sdk的方法及终端 |
CN108366127A (zh) * | 2018-03-07 | 2018-08-03 | 北京奇艺世纪科技有限公司 | 一种软件包的获取方法及装置 |
CN109062590A (zh) * | 2018-06-29 | 2018-12-21 | 武汉掌游科技有限公司 | 一种游戏sdk在线更新的方法及*** |
CN110837378A (zh) * | 2018-08-16 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 软件开发工具包sdk功能的调用方法及装置 |
CN111722857A (zh) * | 2019-03-20 | 2020-09-29 | 北京柏林互动科技有限公司 | 软件开发工具包的更新方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
DETECTIVEHLH: "WebAssembly完全入门——了解wasm的前世今身", 《HTTPS://WWW.CNBLOGS.COM/DETECTIVEHLH/P/9928915.HTML》 * |
單鵬飛: "WASM学习", 《HTTPS://BLOG.CSDN.NET/PNFY__SHAN/ARTICLE/DETAILS/98494865》 * |
微小的鱼: "Wasm的简介", 《HTTPS://BLOG.CSDN.NET/CHENWEIYU11962/ARTICLE/DETAILS/86730031》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363990A (zh) * | 2021-12-28 | 2022-04-15 | 上海黑眸智能科技有限责任公司 | 可兼容多个app的设备端配网方法、***、设备端及app端 |
CN114363990B (zh) * | 2021-12-28 | 2024-01-12 | 上海黑眸智能科技有限责任公司 | 可兼容多个app的设备端配网方法、***、设备端及app端 |
CN114942774A (zh) * | 2022-07-26 | 2022-08-26 | 中恒信息科技(广州)有限公司 | 一种基于bim建模软件的插件功能的热更新方法 |
CN114942774B (zh) * | 2022-07-26 | 2022-11-08 | 中恒信息科技(广州)有限公司 | 一种基于bim建模软件的插件功能的热更新方法 |
CN116700841A (zh) * | 2023-08-03 | 2023-09-05 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
CN116700841B (zh) * | 2023-08-03 | 2023-09-26 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112882732A (zh) | 一种软件开发工具包sdk中功能代码的更新方法和装置 | |
US20190324772A1 (en) | Method and device for processing smart contracts | |
CN107506221B (zh) | 应用程序升级方法、装置及设备 | |
CN107967139B (zh) | 游戏的热更新方法及装置 | |
CN108121594B (zh) | 一种进程管理方法及装置 | |
CN104834541B (zh) | 功能模块挂载方法、挂载***及更新挂载***的方法 | |
CN109933350B (zh) | 在应用中嵌入代码的方法、装置及电子设备 | |
CN106681749B (zh) | 基于安卓平台的局部代码补丁更新方法及装置 | |
CN115378735B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
CN111782519A (zh) | 测试方法、装置和电子设备 | |
CN107797818A (zh) | 应用程序升级方法及装置 | |
CN107220074A (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110716786B (zh) | 一种页面展示方法、***及存储介质 | |
CN106598662B (zh) | 基于android的应用加载方法及装置 | |
CN114895935A (zh) | 刷写车辆ecu的方法、装置、电子设备及存储介质 | |
CN111158987A (zh) | 微服务架构的健康检查方法及装置 | |
CN110045998A (zh) | 加载动态库的方法及装置 | |
CN109933355B (zh) | 应用程序升级方法及装置 | |
CN112256295A (zh) | 应用程序的更新方法、装置、设备和存储介质 | |
CN116775087A (zh) | 一种热修复方法、装置、电子设备及存储介质 | |
CN116679971A (zh) | 一种热修复方法、装置、电子设备及存储介质 | |
CN109426546B (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
CN111625225A (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: 20210601 |