CN109002320B - 用于软件开发包的更新方法、系统、电子设备及存储介质 - Google Patents

用于软件开发包的更新方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN109002320B
CN109002320B CN201810946705.0A CN201810946705A CN109002320B CN 109002320 B CN109002320 B CN 109002320B CN 201810946705 A CN201810946705 A CN 201810946705A CN 109002320 B CN109002320 B CN 109002320B
Authority
CN
China
Prior art keywords
software development
development kit
update
platform kernel
kernel
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.)
Active
Application number
CN201810946705.0A
Other languages
English (en)
Other versions
CN109002320A (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.)
Sipic Technology Co Ltd
Original Assignee
Sipic 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 Sipic Technology Co Ltd filed Critical Sipic Technology Co Ltd
Priority to CN201810946705.0A priority Critical patent/CN109002320B/zh
Publication of CN109002320A publication Critical patent/CN109002320A/zh
Application granted granted Critical
Publication of CN109002320B publication Critical patent/CN109002320B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential 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的效果。

Description

用于软件开发包的更新方法、系统、电子设备及存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及一种用于软件开发包的更新方法、系统、电子设备及存储介质。
背景技术
在热更新技术领域,都是基于软件开发包(sdk,Software Development Kit)去热更新Android应用,但无法热更新自身的sdk。例如,阿里的hotfix,微信的Tinker。这些技术都能够帮助开发者将修复Bug的补丁,实时发布到APP内,当用户启动APP时,补丁将自动加载安装,用户全程无感知,而Bug已经修复。相比发版到应用市场,等待通过审核,再等到用户下载更新的冗长路径,能够帮助开发者在第一时间,修复多平台的问题。
但是,现有技术中却无法对自身的sdk进行修复:阿里的hotfix和微信的tinker都是以sdk的方式发布,并且只能给宿主应用进行修复,如果阿里的hotfix和微信的tinker自身的sdk有bug,就无法通过热更新去修复自身的sdk。
发明内容
本发明实施例提供一种用于软件开发包的更新方法、系统、电子设备及存储介质,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种用于软件开发包的更新方法,其中,所述软件开发包基于静态编译型语言代码和初始平台内核生成,所述初始平台内核至少包括动态脚本语言代码和资源文件,所述方法包括:
当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
基于所述补丁文件和所述初始平台内核生成新的平台内核;
基于所述静态编译型语言代码加载所述新的平台内核的动态脚本语言代码和资源文件以完成软件开发包的更新。
第二方面,本发明实施例提供一种用于软件开发包的更新系统,其中,所述软件开发包基于静态编译型语言代码和初始平台内核生成,所述初始平台内核至少包括动态脚本语言代码和资源文件,所述系统包括:
文件下载程序模块,用于当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
内核生成程序模块,用于基于所述补丁文件和所述初始平台内核生成新的平台内核;
更新程序模块,用于基于所述静态编译型语言代码加载所述新的平台内核的动态脚本语言代码和资源文件以完成软件开发包的更新。
在一些实施例中,所述资源文件包括声学模型和/或文本转语音模型。
在一些实施例中,在完成对所述软件开发包的更新之后还包括:
建立与服务器端之间的长链接,用于当所述新的平台内核再次发生版本变更后接收服务器端发来的更新消息。
在一些实施例中,建立与服务器端之间的长链接包括:启动一个websocket客户端以保持与服务器端之间的长链接。
在一些实施例中,在完成对所述软件开发包的更新之后还包括:启动所述软件开发包的语音功能。
第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项用于软件开发包的更新方法。
第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项用于软件开发包的更新方法。
本发明实施例中使用动态脚本语言,实现无性能损耗,且不重启就生效更新。因为动态脚本语言可以无需编译,直接由解释器翻译为可以运行的机器语言,可以动态加载,sdk的大部分逻辑可以放在动态脚本语言中,从而实现动态替换脚本,达到热更新sdk的效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为开发者在DUI平台创建一个全链路的产品的界面图;
图2为内核版本选择界面图;
图3为发布所创建的语音产品的界面图;
图4为本发明的用于软件开发包的更新方法的一实施例的流程图;
图5为本发明的用于软件开发包的更新方法的另一实施例的流程图
图6为本发明的用于软件开发包的更新系统的一实施例的原理框图;
图7为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在对本发明的实施例做详细说明之前,首先说明本发明中所涉及的一些相关概念。
如图1所示,为开发者在DUI(Dialogue User Interface,对话用户界面)平台创建一个全链路的产品的界面图。其中,开发者可以选择产品类型、使用场景、运行环境和产品信息等内容来创建自己的语音产品,例如,可以选择“全链路定制”或者“基础技术”作为产品类型,选择自定义使用场景或者内置使用场景(例如,“电视语音助手”),再选择运行环境(例如,Android、iOS或者嵌入式等),最后填写产品信息(例如,产品名称和产品描述等信息)完成一个语音产品的创建。
如图2所示,为内核版本选择界面图,该界面下开发者可以选择用于sdk的内核版本号,例如,v1.0.2.1、v1.0.1.1等。当某一版本号被选中之后,在“更新时间”栏目下显示相应于该某一版本号的更新时间,在“更新内容”栏目下显示所备注的主要更新内容。
如图3所示,为发布所创建的语音产品的界面图,该界面下显示了产品名称,并且提供有供开发者编辑版本名称的栏目,供开发者选择的发布的版本分支(例如,正式版本和测试版本)的栏目,以及供开发者填写的更新说明栏目;所有信息填写完善之后开发者点击发布按钮即可完成所创建的产品的发布,产品发布之后开发者或者用户就可以直接获取集成了sdk的产品进行应用。
为解决现有技术中存储在技术问题,发明人设计了一种用于软件开发包的更新方法,所述软件开发包基于静态编译型语言代码和初始平台内核生成,所述初始平台内核至少包括动态脚本语言代码和资源文件,该方法应用于终端设备。
如图4所示,本发明的用于软件开发包的更新方法的一实施例,包括以下步骤:
S10、当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
S20、基于所述补丁文件和所述初始平台内核生成新的平台内核;
S30、基于所述静态编译型语言代码加载所述新的平台内核的动态脚本语言代码和资源文件以完成软件开发包的更新。
本发明的补丁部分是采用动态脚本语言+资源的方式生成的,动态脚本语言+资源是跨平台的,与平台解耦合的,在不同平台下,只需要一份动态脚本语言+资源,该动态脚本语言+资源是可以运行在不同平台下的,通过保证加载动态脚本语言+资源的静态编译型语言代码适配多个平台,实现了热更新方案是与平台解耦合的。
其次,可以使用动态脚本语言的方案,实现无性能损耗,实现不重启就生效。因为动态脚本语言可以无需编译,直接由解释器翻译为可以运行的机器语言,可以动态加载,sdk的大部分逻辑可以放在动态脚本语言中,从而实现动态替换脚本,达到热更新sdk的效果。
采用本发明的方案使得热更新不再仅仅局限于对应用实现热更新。移动端和嵌入式sdk的技术实现大多都是使用静态编译型语言实现,极少会使用脚本语言实现。本发明并非简单的使用了动态脚本语言,而是依托于服务端和平台(平台内核)的赋能并结合使用脚本语言实现的热更新。
此外,使用静态编译型语言+动态脚本语言来开发sdk,sdk的大部分逻辑放在动态脚本语言中,当有新版本时,在平台上发布新版本,sdk能在应用运行过程中收到推送信息,自动下载脚本和资源,实现动态替换。
如图5所示,为本发明的用于软件开发包的更新方法的另一实施例的流程图,具体包括如下步骤:
S1:首先sdk初始化,sdk由静态编译型语言代码(比如java,c等)+DUI内核组成,DUI内核中包含动态脚本语言代码(比如lua)+资源文件(比如声学模型,TTS资源等)。
S2:由静态编译型语言代码加载DUI内核中的动态脚本语言(lua代码)和资源文件。采用静态编译型语言(java,c)+资源文件组成sdk,只热更新资源文件。选用客户端主流编程语言,移动端开发人员专注于android或ios的编码,开发难度小,招聘开发人员容易,团队新成员容易快速上手工程代码的编写。
S3:在加载完毕后,lua代码去请求服务器,查询该产品id下是否有新的版本存在。
S4:如果有新的版本存在,则把新版本的补丁下载到本地磁盘中。
S5:补丁文件和老版本文件通过算法生成出最新的DUI内核。
S6:解压最新的DUI内核,删除磁盘空间中老版本的DUI内核。
S7:使用静态编译型语言代码加载最新的dui内核中的动态脚本语言(lua代码)和资源文件。
S8:启动sdk中的Wakeup,TTS(Text To Speech从文本到语音),ASR(AutomaticSpeech Recognition语音识别)等常用语音功能,运行软件。同时启动一个websocket客户端,保持与服务端的长链接,用来接收服务器的推送消息。
S9:在未来的某个时候,突然发现该sdk版本有bug,管理员可以把最新的解决了该bug的DUI内核上传到DUI平台,并选择最新的DUI内核,发布版本。
S10:发布版本成功后,客户端会由步骤八中的长链接接收到服务端推送给客户端的消息,告知有新的补丁,sdk就可以重新跳至步骤四,把新的补丁下载下来。
通过本解决方案可以让开发者快速修复消费者手上已经在使用的sdk的bug,并且用户无感知。相比重新发布应用,下载安装应用,甚至是rom,节约了很大的时间成本。
本发明的更新方法相对于现有技术中的方法的优点具体还体现在以下几个方面:
传统技术无法跨平台,例如,阿里hotfix只能用于android和ios平台,微信tinker只能用于android平台。这些技术都只是针对某一个或某两个平台做的热更新技术,与平台耦合性大,并没考虑其他平台,比如windows,linux等。
可靠性和兼容性差:随着android版本的变更,可能导致阿里hotfix和微信tinker的不可用。阿里hotfix是通过在运行时在Native修改Filed指针的方式,实现方法的替换,他是一种native的解决方案,如果android版本更新或者手机厂商修改rom导致系统的native代码有改动,那么阿里hotfix的方案就会失败。微信tinker是通过替换dex的方案来实现热更新,这种方式依赖于android系统的版本,一旦android系统之后的版本在dex方面的处理有修改,就会造成热更新的失败。而本发明加载动态脚本语言的代码是严格遵循,并且本发明的静态编译型语言部分是适配各平台的,严格使用各平台对外开放的api的,厂商的rom的改变不会对厂商自身对外开放的api做改变的,所以本发明的可靠性和兼容性会比较好。
性能损耗:微信tinker替换dex的方案,对于补丁DEX来说,应用启动时虚拟机会进行dexopt操作,将patch.dex文件转换成odex文件,这个过程本身非常耗时,应用启动时间会变长,甚至造成ANR(Application Not Responding应用无法响应)和crash。阿里hotfix因为用了native的hook方式,也会对应用造成性能损耗。而本发明的补丁替换方案不需要hook操作系统的代码,不会对系统底层的运行机制造成影响,仅仅只是应用层面脚本代码和资源的替换,所以不会造成性能损耗。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图6所示,本发明的实施例还提供一种用于软件开发包的更新系统600,其中,所述软件开发包基于静态编译型语言代码和初始平台内核生成,所述初始平台内核至少包括动态脚本语言代码和资源文件,所述系统600包括:
文件下载程序模块610,用于当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
内核生成程序模块620,用于基于所述补丁文件和所述初始平台内核生成新的平台内核;
更新程序模块630,用于基于所述静态编译型语言代码加载所述新的平台内核的动态脚本语言代码和资源文件以完成软件开发包的更新。
本发明实施例中使用动态脚本语言,实现无性能损耗,且不重启就生效更新。因为动态脚本语言可以无需编译,直接由解释器翻译为可以运行的机器语言,可以动态加载,sdk的大部分逻辑可以放在动态脚本语言中,从而实现动态替换脚本,达到热更新sdk的效果。
在一些实施例中,所述资源文件包括声学模型和/或文本转语音模型。
在一些实施例中,在完成对所述软件开发包的更新之后还包括:
建立与服务器端之间的长链接,用于当所述新的平台内核再次发生版本变更后接收服务器端发来的更新消息。
在一些实施例中,建立与服务器端之间的长链接包括:启动一个websocket客户端以保持与服务器端之间的长链接。
在一些实施例中,在完成对所述软件开发包的更新之后还包括:启动所述软件开发包的语音功能。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项用于软件开发包的更新方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项用于软件开发包的更新方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行用于软件开发包的更新方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器处理时执行用于软件开发包的更新方法。
上述本发明实施例的用于软件开发包的更新系统可用于执行本发明实施例的用于软件开发包的更新方法,并相应的达到上述本发明实施例的实现用于软件开发包的更新方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。
图7是本申请另一实施例提供的执行用于软件开发包的更新方法的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器710以及存储器720,图7中以一个处理器710为例。
执行用于软件开发包的更新方法的设备还可以包括:输入装置730和输出装置740。
处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器720作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的用于软件开发包的更新方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例用于软件开发包的更新方法。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于软件开发包的更新装置的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至用于软件开发包的更新装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可接收输入的数字或字符信息,以及产生与用于软件开发包的更新装置的用户设置以及功能控制有关的信号。输出装置740可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的用于软件开发包的更新方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种用于软件开发包的更新方法,其中,所述软件开发包基于静态编译型语言代码和初始DUI平台内核生成,所述初始DUI平台内核包括动态脚本语言代码和资源文件,所述方法包括:
当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
基于所述补丁文件和所述初始DUI平台内核生成新的DUI平台内核;
基于所述静态编译型语言代码加载所述新的DUI平台内核的动态脚本语言代码和资源文件以完成软件开发包的更新;
启动软件开发包中的Wakeup,TTS和ASR语音功能,运行软件。
2.根据权利要求1所述的方法,其中,所述资源文件包括声学模型和/或文本转语音模型。
3.根据权利要求1所述的方法,其中,在完成对所述软件开发包的更新之后还包括:
建立与服务器端之间的长链接,用于当所述新的DUI平台内核再次发生版本变更后接收服务器端发来的更新消息。
4.根据权利要求3所述的方法,其中,建立与服务器端之间的长链接包括:启动一个websocket客户端以保持与服务器端之间的长链接。
5.根据权利要求1所述的方法,其中,在完成对所述软件开发包的更新之后还包括:启动所述软件开发包的语音功能。
6.一种用于软件开发包的更新系统,其中,所述软件开发包基于静态编译型语言代码和初始DUI平台内核生成,所述初始DUI平台内核至少包括动态脚本语言代码和资源文件,所述系统包括:
文件下载程序模块,用于当检测到需要进行软件开发包更新时,自服务器端下载所述软件开发包的补丁文件;
内核生成程序模块,用于基于所述补丁文件和所述初始DUI平台内核生成新的DUI平台内核;
更新程序模块,用于基于所述静态编译型语言代码加载所述新的DUI平台内核的动态脚本语言代码和资源文件;启动软件开发包中的Wakeup,TTS和ASR语音功能,运行软件。
7.根据权利要求6所述的系统,其中,所述资源文件包括声学模型和/或文本转语音模型。
8.根据权利要求6所述的系统,其中,在完成对所述软件开发包的更新之后还包括:
建立与服务器端之间的长链接,用于当所述新的DUI平台内核再次发生版本变更后接收服务器端发来的更新消息。
9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任意一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任意一项所述方法的步骤。
CN201810946705.0A 2018-08-20 2018-08-20 用于软件开发包的更新方法、系统、电子设备及存储介质 Active CN109002320B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810946705.0A CN109002320B (zh) 2018-08-20 2018-08-20 用于软件开发包的更新方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810946705.0A CN109002320B (zh) 2018-08-20 2018-08-20 用于软件开发包的更新方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN109002320A CN109002320A (zh) 2018-12-14
CN109002320B true CN109002320B (zh) 2021-07-06

Family

ID=64592587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810946705.0A Active CN109002320B (zh) 2018-08-20 2018-08-20 用于软件开发包的更新方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN109002320B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828772B (zh) 2019-02-19 2022-03-11 百度在线网络技术(北京)有限公司 热更新方法、操作系统、终端设备和存储介质
CN109976787B (zh) * 2019-03-12 2022-04-19 平安普惠企业管理有限公司 应用程序升级方法、装置、终端及计算机可读存储介质
CN109960522B (zh) * 2019-03-29 2022-07-22 珠海豹好玩科技有限公司 一种软件升级方法及装置
CN111752575B (zh) * 2020-05-11 2023-09-19 宁波吉利汽车研究开发有限公司 一种车载应用更新方法、装置、设备及存储介质
CN113110864B (zh) * 2021-03-19 2023-01-20 深圳市腾讯网络信息技术有限公司 应用程序更新方法、装置及存储介质
CN113779939B (zh) * 2021-09-14 2024-02-27 成都海光核电技术服务有限公司 一种文档热补丁的生成方法、使用方法及文档热补丁装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103353844A (zh) * 2013-06-25 2013-10-16 亿赞普(北京)科技有限公司 一种软件开发工具包升级方法和系统
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN104484201A (zh) * 2014-12-11 2015-04-01 北京国双科技有限公司 用于ios设备的软件工具开发包更新方法和装置
CN105893070A (zh) * 2015-11-25 2016-08-24 乐视云计算有限公司 应用的sdk的升级方法及系统
CN107678789A (zh) * 2016-07-27 2018-02-09 平安科技(深圳)有限公司 Ui界面的更新方法及装置
CN108196853A (zh) * 2018-01-09 2018-06-22 武汉斗鱼网络科技有限公司 用于部署安卓系统sdk的方法、存储介质、设备及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN103353844A (zh) * 2013-06-25 2013-10-16 亿赞普(北京)科技有限公司 一种软件开发工具包升级方法和系统
CN104484201A (zh) * 2014-12-11 2015-04-01 北京国双科技有限公司 用于ios设备的软件工具开发包更新方法和装置
CN105893070A (zh) * 2015-11-25 2016-08-24 乐视云计算有限公司 应用的sdk的升级方法及系统
CN107678789A (zh) * 2016-07-27 2018-02-09 平安科技(深圳)有限公司 Ui界面的更新方法及装置
CN108196853A (zh) * 2018-01-09 2018-06-22 武汉斗鱼网络科技有限公司 用于部署安卓系统sdk的方法、存储介质、设备及系统

Also Published As

Publication number Publication date
CN109002320A (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN109002320B (zh) 用于软件开发包的更新方法、系统、电子设备及存储介质
US8612947B2 (en) System and method for remotely compiling multi-platform native applications for mobile devices
Griffith Mobile App Development with Ionic, Revised Edition: Cross-Platform Apps with Ionic, Angular, and Cordova
CN106445583B (zh) 一种页面显示方法、设备及系统
CN110531962B (zh) 小程序的开发处理方法、设备及计算机可读存储介质
US10860303B2 (en) Selective operating system patching/updating
US9158521B2 (en) Automatic provisioning of a software platform to a device ecosystem
CN103530156A (zh) 动态加载和调用程序的方法及装置
EP3803579A1 (en) Extensibility of unified platform
CN107844306A (zh) 应用程序的修复方法、装置、存储介质及终端
CN108132832B (zh) 应用程序启动方法和装置
US10789751B2 (en) Method and apparatus for implementing animation in client application and animation script framework
CN111338666A (zh) 一种实现应用程序升级的方法、装置、介质和电子设备
US11625234B2 (en) Videogame patch data compilation system
US11385923B2 (en) Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
WO2016191177A1 (en) Application download emulation
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
CN112346763A (zh) 更新应用apk的方法及装置
EP3848800B1 (en) Method and apparatus for displaying message box, terminal and storage medium
CN108920172B (zh) 用于语音对话平台的程序发布和调用方法及系统
CN111161032A (zh) 产品生成方法和装置
CN109614564B (zh) 提升WebView与H5交互实时性的方法及装置
CN117555645B (zh) 基于多端应用平台的数据处理方法、装置、设备及介质
Charan et al. Customizing AOSP for different embedded devices
CN109428936A (zh) App的升级方法、装置、系统、电子设备及存储介质

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant after: Sipic Technology Co.,Ltd.

Address before: 215123 14 Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou, Jiangsu.

Applicant before: AI SPEECH Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Update methods, systems, electronic devices, and storage media for software development packages

Effective date of registration: 20230726

Granted publication date: 20210706

Pledgee: CITIC Bank Limited by Share Ltd. Suzhou branch

Pledgor: Sipic Technology Co.,Ltd.

Registration number: Y2023980049433