CN105740027A - 应用程序更新方法和装置 - Google Patents

应用程序更新方法和装置 Download PDF

Info

Publication number
CN105740027A
CN105740027A CN201610115046.7A CN201610115046A CN105740027A CN 105740027 A CN105740027 A CN 105740027A CN 201610115046 A CN201610115046 A CN 201610115046A CN 105740027 A CN105740027 A CN 105740027A
Authority
CN
China
Prior art keywords
data file
version
new version
shell
application program
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.)
Granted
Application number
CN201610115046.7A
Other languages
English (en)
Other versions
CN105740027B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610115046.7A priority Critical patent/CN105740027B/zh
Priority claimed from CN201210521181.3A external-priority patent/CN102945182B/zh
Publication of CN105740027A publication Critical patent/CN105740027A/zh
Application granted granted Critical
Publication of CN105740027B publication Critical patent/CN105740027B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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

本发明涉及网络数据通信领域,其公开了一种应用程序更新方法和装置。该装置包括:应用外壳单元和存储单元;其中,所述应用外壳单元进一步包括:第一外壳子单元和第二外壳子单元;第一外壳子单元适于在所述存储单元中的数据文件为可执行文件时,通过启动该数据文件并给予该数据文件执行权来实现应用程序的功能;第二外壳子单元适于在存储单元中的数据文件为不可执行文件时,根据封装在该数据文件中的用户界面信息和业务逻辑信息实现应用程序的功能。本发明的技术方案使得应用程序的更细不需要用户参与,即用户不需要像现有技术那样进行卸载旧版本的应用程序和安装新版本应用程序的操作,由此解决了应用程序更新的过程中用户操作繁琐的问题。

Description

应用程序更新方法和装置
技术领域
本发明涉及网络数据通信技术领域,具体涉及一种应用程序更新方法和装置。
背景技术
应用程序是指终端设备上的基于操作系统的用户程序。所述终端设备包括个人电脑、手持设备、手机、平板电脑等,但不限于这些类别。
应用程序的更新是指用新版本的应用程序替换旧版本的应用程序的过程,一般步骤是:1.卸载旧版本的应用程序;2.安装新版本的应用程序。
应用程序更新(或者也可以称为升级)的主要原因是:增加新功能,修复漏洞,改善产品性能等。
现有技术中的应用程序更新过程包括提示用户有新的版本需要更新,用户下载新版本应用程序包,卸载旧版本,然后再安装新版本。这种更新操作较繁琐,每次更新用户都需要执行卸载和安装的动作,如果频繁更新则更增加操作的繁琐程度。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序更新方法和相应的一种应用程序更新装置。
依据本发明的一个方面,提供了一种应用程序更新方法,该方法包括:
所述应用程序由外壳程序和数据文件组成;其中,所述数据文件中封装有所述应用程序的用户界面和业务逻辑;
所述外壳程序通过所述数据文件实现所述应用程序的功能;
当所述应用程序需要更新时,所述外壳程序获取新版本的数据文件,之后通过所述新版本的数据文件实现所述应用程序的功能;
其中,所述数据文件为可执行文件或不可执行文件;
所述数据文件为可执行文件时,所述外壳程序通过启动所述数据文件并给予所述数据文件执行权来实现所述应用程序的功能;所述数据文件为不可执行文件时,所述外壳程序根据封装在所述数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
可选地,所述数据文件为动态链接库形式的可执行文件;或者,所述数据文件为文本或图片形式的不可执行文件。
可选地,所述数据文件为可执行文件时,所述数据文件中定义有用于启动本数据文件的启动接口和用于关闭本数据文件的关闭接口。
可选地,所述数据文件为可执行文件时,所述数据文件中还定义有版本获取接口;
所述外壳程序获取新版本的数据文件,并通过所述新版本的数据文件实现所述应用程序的功能包括:
所述外壳程序通过原数据文件中的版本获取接口获取原数据文件的版本信息,将该版本信息携带在版本查询请求消息中发送给服务器;
所述外壳程序接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本数据文件;
所述外壳程序通过原数据文件中的关闭接口关闭原数据文件,通过新版本数据文件的启动接口启动新版本数据文件并给予新版本数据文件执行权。
可选地,数据文件为不可执行文件,且数据文件中还包含版本信息;
所述外壳程序获取新版本的数据文件,并通过所述新版本的数据文件实现所述应用程序的功能包括:
所述外壳程序从原数据文件中获取版本信息;
所述外壳程序将该版本信息携带在版本查询请求消息中发送给服务器;
所述外壳程序接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本数据文件;
所述外壳程序根据封装在新版本数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
可选地,在根据该新版本信息下载新版本数据文件之前,该方法进一步包括:
所述外壳程序提示用户是否更新,并在接收到用户的确认更新指令时执行所述根据该新版本信息下载新版本数据文件的步骤。
依据本发明的另一个方面,提供了一种应用程序更新装置,该装置包括:应用外壳单元和存储单元;
所述存储单元,适于保存封装有所述应用程序的用户界面和业务逻辑的数据文件;
所述应用外壳单元,适于通过所述存储单元中的数据文件实现所述应用程序的功能;以及在所述应用程序需要更新时,适于获取新版本的数据文件保存到所述存储单元中,之后通过所述存储单元中的所述新版本的数据文件实现所述应用程序的功能;
其中,所述应用外壳单元进一步包括:第一外壳子单元和第二外壳子单元;
所述第一外壳子单元,适于在所述存储单元中的数据文件为可执行文件时,通过启动该数据文件并给予该数据文件执行权来实现所述应用程序的功能;
所述第二外壳子单元,适于在所述存储单元中的数据文件为不可执行文件时,根据封装在该数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
可选地,所述存储单元,适于保存动态链接库形式的数据文件,或者适于保存文本或图片形式的数据文件。
可选地,所述存储单元,进一步适于保存其中定义有用于启动本数据文件的启动接口和用于关闭本数据文件的关闭接口的可执行文件形式的数据文件。
可选地,所述存储单元,进一步适于保存其中定义有用于启动本数据文件的启动接口、用于关闭本数据文件的关闭接口以及版本获取接口的可执行文件形式的数据文件;
所述应用外壳单元进一步包括:第一下载更新子单元;
所述第一下载更新子单元,适于通过所述存储单元中的可执行文件形式的数据文件的版本获取接口获取该数据文件的版本信息,将该版本信息携带在版本查询请求消息中发送给服务器,接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本的可执行文件形式的数据文件并保存到存储单元中;
所述第一外壳子单元,进一步适于通过存储单元中的可执行文件形式的原数据文件中的关闭接口关闭该原数据文件,通过存储单元中的可执行文件形式的新版本数据文件的启动接口启动该新版本数据文件并给予该新版本数据文件执行权。
可选地,所述存储单元,进一步适于保存包含版本信息的不可执行文件形式的数据文件;
所述应用外壳单元进一步包括:第二下载更新子单元;
所述第二下载更新子单元,适于从存储单元中的不可执行文件形式的数据文件中获取版本信息,将该版本信息携带在版本查询请求消息中发送给服务器,接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本的不可执行文件形式的数据文件并保存到存储单元中;
所述第二外壳子单元,进一步适于根据存储单元中的不可执行文件形式的新版本数据文件中封装的用户界面信息和业务逻辑信息实现所述应用程序的功能。
可选地,所述应用外壳单元进一步包括:提示子单元;
所述提示子单元,适于在所述第一下载更新子单元或所述第二下载更新子单元根据新版本信息下载新版本数据文件之前,提示用户是否更新,并在接收到用户的确认更新指令时,通知所述第一下载更新子单元或所述第二下载更新子单元根据所述新版本信息下载新版本数据文件。
根据本发明的这种应用程序由外壳程序和数据文件组成,其中数据文件中封装有应用程序的用户界面和业务逻辑,外壳程序通过所述数据文件实现所述应用程序的功能;当所述应用程序需要更新时,所述外壳程序获取新版本的数据文件,之后通过所述新版本的数据文件实现所述应用程序的功能的技术方案中,由于应用程序的用户界面和业务逻辑都封装在数据文件中,因此应用程序更新时只需要更新数据文件即可,外壳程序不需要更新,且更新数据文件的过程由外壳程序来完成,用户不需要参与,即用户不需要像现有技术那样进行卸载旧版本的应用程序和安装新版本应用程序的操作,由此解决了应用程序更新的过程中用户操作繁琐的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种应用程序更新方法的流程图;
图2示出了根据本发明一个实施例的场景一中应用程序更新过程的流程图;
图3示出了根据本发明一个实施例的场景二中应用程序更新过程的流程图;
图4示出了根据本发明一个实施例的场景二中应用程序更新过程的流程图;
图5示出了根据本发明一个实施例的一种应用程序更新装置的结构图;
图6示出了根据本发明又一个实施例的一种应用程序更新装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种应用程序更新方法的流程图。在本实施例中,应用程序由外壳程序和数据文件组成,如图1所示,该应用程序更新方法包括:
S110,外壳程序通过数据文件实现应用程序的功能,其中,该数据文件中封装有该应用程序的用户界面和业务逻辑。
在本发明的实施例中,数据文件可以为可执行文件,或者也可以为不可执行文件。
在本发明的一个实施例中,数据文件可以为DLL(DynamicLinkLibrary,动态链接库)形式的可执行文件。或者,在本发明的另一个实施例中,数据文件也可以为文本或图片形式的不可执行文件。
S120,当该应用程序需要更新时,所述外壳程序获取新版本的数据文件,之后通过该新版本的数据文件实现该应用程序的功能。
在本发明的一个实施例中,当数据文件为可执行文件时,外壳程序通过启动该数据文件并给予该数据文件执行权来实现该应用程序的功能。在本发明的另一个实施例中,当数据文件为不可执行文件时,外壳程序根据封装在该数据文件中的用户界面信息和业务逻辑信息实现该应用程序的功能。
在本发明的实施例中,面对用户的客户端就是外壳程序,具体的界面怎么展现,业务逻辑如何走,都由数据文件来决定,而不是代码。所以当应用程序需要升级时,外壳程序无需更新,只需要下载最新的数据文件即可。由于外壳程序不需要更新,且更新数据文件的过程由外壳程序来完成,因此用户不需要参与,即用户不需要像现有技术那样进行卸载旧版本的应用程序和安装新版本应用程序的操作,由此解决了应用程序更新的过程中用户操作繁琐的问题。
这里以Windows操作系统上的应用程序为例对本发明的方案进行说明:Windows操作系统上的应用程序基于MSI(microsoftinstaller,微软安装包)包,在制作MSI包时只需要留一些启动和更新的接口,实际的用户界面和业务逻辑都封装在数据文件中,数据文件可以是DLL但不限于DLL。所制作的MSI包即为本申请中所述的外壳程序。外壳程序在数据文件中查找到对应的入口然后加载并给予执行权来完成应用程序的启动。当应用程序需要更新时,外壳程序只需要下载最新的数据文件,下载完成后给予新数据文件执行权即可。用户不需要再去卸载应用程序以及安装新的安装包,对用户来说不需要进行更新的操作即可体验应用程序最新版本的功能。
前述已经提到,当应用程序需要更新时,外壳程序需要获取升级后的新数据文件。一般来说升级后的新数据文件从应用程序的服务提供商的服务器进行下载。这里将应用程序的服务提供商的服务器简称为服务器。因此外壳程序需要于服务器进行交互。在本发明的一个实施例中,外壳程序和服务器基于HTTP协议进行通信。
在本发明的一个实施例中,数据文件为可执行文件时,数据文件中定义有用于启动本数据文件的启动接口、用于关闭本数据文件的关闭接口。此外为了更新的方便,数据文件中还定义有版本获取接口。
以下通过进行应用程序更新的三个场景来对本发明的技术方案进行说明。
场景一
图2示出了根据本发明一个实施例的场景一中应用程序更新过程的流程图。如图2所示,包括如下步骤:
步骤S201,外壳程序向服务器发送携带当前数据文件的版本信息的版本查询请求。
当前数据文件中包含版本信息。当前数据文件为可执行文件时,外壳程序通过调用其版本获取接口获取其版本信息。当前数据文件为文本或图片等不可执行文件时,外壳程序直接从当前数据文件获取其版本信息。例如,当前数据文件的版本为1.0。
步骤S202,服务器收到外壳程序的版本查询请求后,通过对比本地的数据文件版本信息发现本地有更新版本的数据文件,向外壳程序返回包含新版本信息的版本查询响应。
例如,本步骤中服务器发现本地的最新本版为1.1,比1.0要新,新版本数据文件的信息携带在版本查询响应消息中返回给外壳程序。这里新版本信息包括:新版本数据文件的版本值以及新版本数据文件的下载地址。在本发明的一个实施例中,如果有新版本的数据文件,则在查询响应消息中设置版本头字段,该字段的值为新版本数据的版本值,如1.1,并在查询响应消息的设置数据文件头字段,该字段的值为新版本数据文件的地址。如果没有新版本的数据文件,则不在查询响应消息中设置版本头字段和数据文件头字段。
步骤S203,外壳程序发现版本查询响应消息中包含新版本信息,提示用户是否更新。
在本发明的一个实施例中,可以使用WINAPIMessageBox,上面有确定和取消按钮供用户选择。
步骤S204,用户确认更新。
例如,用于点击确定按钮以确认进行更新。
步骤S205,在收到用户的确认更新信息后,外壳程序根据版本查询响应中的新版本信息,向服务器请求下载新版本数据文件。
具体地,外壳程序根据版本查询响应中的新版本数据文件的地址,向服务器请求下载新版本数据文件。
步骤S206,服务器予以下载,外壳程序通过下载获得新版本数据文件。
如果数据文件为可执行文件时,外壳程序执行以下步骤S207-S209。如果数据文件为不可执行文件,则外壳程序直接根据封装在新版本数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能,而不再利用当前原数据文件。
步骤S207,外壳程序关闭当前的数据文件。
当前数据文件为可执行数据文件时,外壳程序通过调用当前数据文件的关闭接口关闭当前数据文件。
步骤S208,外壳程序加载新版本数据文件。
步骤S209,外壳程序启动新版本数据文件。
当前数据文件为可执行数据文件时,外壳程序通过调用新版本数据文件的启动接口启动新版本数据文件。
步骤S210,用户看到新的用户界面。
在此过程中,用户只需要根据提示选择确认即可完成更新,不需要用户做其它的额外操作。
场景二
图3示出了根据本发明一个实施例的场景二中应用程序更新过程的流程图。如图3所示,包括如下步骤:
步骤S301,外壳程序向服务器发送携带当前数据文件的版本信息的版本查询请求。
例如,当前数据文件的版本为1.0。
步骤S302,服务器收到外壳程序的版本查询请求后,通过对比本地的数据文件版本信息发现本地没有更新版本的数据文件,向外壳程序返回不包含新版本信息的版本查询响应。
例如,本步骤中服务器发现本地的最新本版也为1.0,则查询响应消息中告知外壳程序当前版本1.0即为最新版本,无需进行更新。由于无需进行更新,因此外壳程序不需要进行更新操作。
场景三
图4示出了根据本发明一个实施例的场景二中应用程序更新过程的流程图。如图4所示,包括如下步骤:
步骤S401,外壳程序向服务器发送携带当前数据文件的版本信息的版本查询请求。
例如,当前数据文件的版本为1.0。
步骤S402,服务器收到外壳程序的版本查询请求后,通过对比本地的数据文件版本信息发现本地有更新版本的数据文件,向外壳程序返回包含新版本信息的版本查询响应。
例如,本步骤中服务器发现本地的最新本版为1.1,比1.0要新,新版本数据文件的信息携带在版本查询响应消息中返回给外壳程序。这里新版本信息包括:新版本数据文件的版本值以及新版本数据文件的下载地址。
步骤S403,外壳程序发现版本查询响应消息中包含新版本信息,提示用户是否更新。
在本发明的一个实施例中,可以使用WINAPIMessageBox,上面有确定和取消按钮供用户选择。
步骤S404,用户拒绝更新。例如,用于点击取消按钮以拒绝更新,此时外壳程序不需要进行更新操作。
例如,以开发一款Windows记事本程序为例,该记事本程序的主界面是一个Windows窗体,上面有一个文本框,这里设计时,需要把窗体和该记事本程序的业务逻辑封装在一个DLL里,并且需要标示版本,即该DLL是该记事本程序的数据文件。则记事本程序的DLL中还需要实现一套定义的接口:
INTWINAPIStart(void*args);//外壳程序通过该接口启动DLL;
INTWINAPIExit(void*args);//外壳程序通过该接口关闭该DLL,更新时需要使用;
VERSIONWINAPIGetVersion();//外壳程序获取该DLL的版本时使用。
该记事本程序的外壳程序在执行时,通过调用INTWINAPIStart来加载并启动该DLL,并给予该DLL执行权,因为有执行权,DLL可以做很多事情,如开线程、开窗口和访问后台数据等。外壳程序通过调用VERSIONWINAPIGetVersion来获取该DLL文件的版本信息,以及外壳程序通过调用INTWINAPIExit来关闭该DLL文件。
通过CreateWindowEx函数创建记事本的窗体,挂载消息泵,窗体的样式、大小,控件的数据量和功能等都卸载DLL中。且并在DLL中标示其版本为1.0.0.0。
假设该版本为1.0.0.0的DLL中存在漏洞,无法支持UNICODE编码的文本。为解决该问题开发了一个新的DLL,该在新DLL中修复了该漏洞,该新DLL中标识其版本为1.0.0.1。将新DLL提交到服务器上。
记事本程序的外壳程序在启动时或通过主动查询发现服务器上的DLL的版本比本地的新,于是外壳程序先将新版本的DLL下载到本地,然后调用原DLL的INTWINAPIExit接口来卸载原DLL,接着调用新DLL的INTWINAPIStart接口来加载并启动新DLL。这样用户看到的版本是已经没有所述漏洞的版本,达到了更新的目的。用户不需要卸载整个程序然后重新安装MSI,用户除了确认是否需要更新外,不需要作其它任何操作。
应用程序的更新除了修复漏洞,还可以其它任何方面的改进,如修改用户界面、增加功能等。
本发明的技术方案省去了用户下载更新、卸载并安装的烦恼,用户可以体验到无缝更新。
图5示出了根据本发明一个实施例的一种应用程序更新装置的结构图。如图5所示,该应用程序更新装置包括:应用外壳单元501和存储单元502。
存储单元502,适于保存封装有应用程序的用户界面和业务逻辑的数据文件。
应用外壳单元501,适于通过存储单元502中的数据文件实现应用程序的功能;以及在该应用程序需要更新时,适于获取新版本的数据文件保存到存储单元502中,之后通过存储单元502中的新版本的数据文件实现该应用程序的功能。
图5所示的装置,省去了用户下载更新、卸载并安装的过程,使得用户可以体验到无缝更新。
图6示出了根据本发明又一个实施例的一种应用程序更新装置的结构图。如图6所示,该应用程序更新装置包括:应用外壳单元601和存储单元602。
存储单元602,适于保存封装有应用程序的用户界面和业务逻辑的数据文件。
应用外壳单元601,适于通过存储单元602中的数据文件实现应用程序的功能;以及在该应用程序需要更新时,适于获取新版本的数据文件保存到存储单元602中,之后通过存储单元602中的新版本的数据文件实现该应用程序的功能。
参见图6,应用外壳单元610包括:第一外壳子单元601、第二外壳子单元602、第一下载更新子单元603、第二下载更新子单元604和提示子单元605。
在本发明的一个实施例中,应用外壳单元610可以包括第一外壳子单元601和第二外壳子单元602,也可以只包括第一外壳子单元601,或者也可以只包括第二外壳子单元602。
第一外壳子单元601,适于在存储单元620中的数据文件为可执行文件时,通过启动该数据文件并给予该数据文件执行权来实现该应用程序的功能。
第二外壳子单元602,适于在存储单元620中的数据文件为不可执行文件时,根据封装在该数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
在本发明的一个实施例中,存储单元620,适于保存动态链接库形式的数据文件,或者适于保存文本或图片形式的数据文件。
在本发明的一个实施例中,存储单元620,适于保存其中定义有用于启动本数据文件的启动接口和用于关闭本数据文件的关闭接口的可执行文件形式的数据文件。
在本发明的一个实施例中,存储单元620,还适于保存其中定义有用于启动本数据文件的启动接口、用于关闭本数据文件的关闭接口以及版本获取接口的可执行文件形式的数据文件。应用外壳单元610至少包括:第一外壳子单元601和第一下载更新子单元603。第一下载更新子单元603,适于通过存储单元620中的可执行文件形式的数据文件的版本获取接口获取该数据文件的版本信息,将该版本信息携带在版本查询请求消息中发送给服务器,接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本的可执行文件形式的数据文件并保存到存储单元620中。第一外壳子单元601,适于通过存储单元620中的可执行文件形式的原数据文件中的关闭接口关闭该原数据文件,通过存储单元620中的可执行文件形式的新版本数据文件的启动接口启动该新版本数据文件并给予该新版本数据文件执行权,实现该应用程序的功能。
在本发明的又一个实施例中,存储单元620,适于保存包含版本信息的不可执行文件形式的数据文件。应用外壳单元610至少包括:第二外壳子单元602和第二下载更新子单元604。第二下载更新子单元604,适于从存储单元620中的不可执行文件形式的数据文件中获取版本信息,将该版本信息携带在版本查询请求消息中发送给服务器,接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本的不可执行文件形式的数据文件并保存到存储单元620中。第二外壳子单元602,适于根据存储单元620中的不可执行文件形式的新版本数据文件中封装的用户界面信息和业务逻辑信息实现该应用程序的功能。
提示子单元605,适于在第一下载更新子单元603或第二下载更新子单元604根据新版本信息下载新版本数据文件之前,提示用户是否更新,并在接收到用户的确认更新指令时,通知第一下载更新子单元603或第二下载更新子单元604根据该新版本信息下载新版本数据文件。
在图6所示的装置中,应用程序的具体的界面怎么展现,业务逻辑如何走,都由存储单元中的数据文件来决定。所以当应用程序需要升级时,由应用外壳单元下载最新的数据文件并保存到存储单元中,之后应用外壳单元根据新的数据文件实现应用程序的功能。因此用户不需要参与,解决了应用程序更新的过程中用户操作繁琐的问题。
综上所述,根据本发明的这种应用程序由外壳程序和数据文件组成,其中数据文件中封装有应用程序的用户界面和业务逻辑,外壳程序通过所述数据文件实现所述应用程序的功能;当所述应用程序需要更新时,所述外壳程序获取新版本的数据文件,之后通过所述新版本的数据文件实现所述应用程序的功能的技术方案中,由于应用程序的用户界面和业务逻辑都封装在数据文件中,因此应用程序更新时只需要更新数据文件即可,外壳程序不需要更新,且更新数据文件的过程由外壳程序来完成,用户不需要参与,即用户不需要像现有技术那样进行卸载旧版本的应用程序和安装新版本应用程序的操作,由此解决了应用程序更新的过程中用户操作繁琐的问题。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种应用程序更新装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种应用程序更新方法,该方法包括:
所述应用程序由外壳程序和数据文件组成;其中,所述数据文件中封装有所述应用程序的用户界面和业务逻辑;
所述外壳程序通过所述数据文件实现所述应用程序的功能;
当所述应用程序需要更新时,所述外壳程序获取新版本的数据文件,之后通过所述新版本的数据文件实现所述应用程序的功能。
2.如权利要求1所述的方法,其中,
所述数据文件为可执行文件或不可执行文件;
所述数据文件为可执行文件时,所述外壳程序通过启动所述数据文件并给予所述数据文件执行权来实现所述应用程序的功能;所述数据文件为不可执行文件时,所述外壳程序根据封装在所述数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能;
所述外壳程序从服务器获取新版本的数据文件,外壳程序和服务器基于HTTP协议进行通信。
3.如权利要求2所述的方法,其中,
所述数据文件为动态链接库形式的可执行文件;
或者,
所述数据文件为文本或图片形式的不可执行文件。
4.如权利要求2所述的方法,其中,所述数据文件为可执行文件时,所述数据文件中定义有用于启动本数据文件的启动接口和用于关闭本数据文件的关闭接口。
5.如权利要求4所述的方法,其中,所述数据文件为可执行文件时,所述数据文件中还定义有版本获取接口;
所述外壳程序获取新版本的数据文件,并通过所述新版本的数据文件实现所述应用程序的功能包括:
所述外壳程序通过原数据文件中的版本获取接口获取原数据文件的版本信息,将该版本信息携带在版本查询请求消息中发送给服务器;
所述外壳程序接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本数据文件;
所述外壳程序通过原数据文件中的关闭接口关闭原数据文件,通过新版本数据文件的启动接口启动新版本数据文件并给予新版本数据文件执行权。
6.如权利要求2所述的方法,其中,数据文件为不可执行文件,且数据文件中还包含版本信息;
所述外壳程序获取新版本的数据文件,并通过所述新版本的数据文件实现所述应用程序的功能包括:
所述外壳程序从原数据文件中获取版本信息;
所述外壳程序将该版本信息携带在版本查询请求消息中发送给服务器;
所述外壳程序接收服务器返回的版本查询响应消息,如果该版本查询响应消息中包含新版本信息,则根据该新版本信息下载新版本数据文件;
所述外壳程序根据封装在新版本数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
7.根据权利要求5或6所述的方法,其中,在根据该新版本信息下载新版本数据文件之前,该方法进一步包括:
所述外壳程序提示用户是否更新,并在接收到用户的确认更新指令时执行所述根据该新版本信息下载新版本数据文件的步骤。
8.一种应用程序更新装置,该装置包括:应用外壳单元和存储单元;
所述存储单元,适于保存封装有所述应用程序的用户界面和业务逻辑的数据文件;
所述应用外壳单元,适于通过所述存储单元中的数据文件实现所述应用程序的功能;以及在所述应用程序需要更新时,适于获取新版本的数据文件保存到所述存储单元中,之后通过所述存储单元中的所述新版本的数据文件实现所述应用程序的功能。
9.如权利要求8所述的装置,其中,
所述应用外壳单元,适于从服务器获取新版本的数据文件;所述应用外壳单元和服务器基于HTTP协议进行通信;
所述应用外壳单元进一步包括:第一外壳子单元和第二外壳子单元;
所述第一外壳子单元,适于在所述存储单元中的数据文件为可执行文件时,通过启动该数据文件并给予该数据文件执行权来实现所述应用程序的功能;
所述第二外壳子单元,适于在所述存储单元中的数据文件为不可执行文件时,根据封装在该数据文件中的用户界面信息和业务逻辑信息实现所述应用程序的功能。
10.如权利要求9所述的装置,其中,
所述存储单元,适于保存动态链接库形式的数据文件,或者适于保存文本或图片形式的数据文件。
CN201610115046.7A 2012-12-06 2012-12-06 应用程序更新方法和装置 Expired - Fee Related CN105740027B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610115046.7A CN105740027B (zh) 2012-12-06 2012-12-06 应用程序更新方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210521181.3A CN102945182B (zh) 2012-12-06 2012-12-06 应用程序更新方法和装置
CN201610115046.7A CN105740027B (zh) 2012-12-06 2012-12-06 应用程序更新方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201210521181.3A Division CN102945182B (zh) 2012-12-06 2012-12-06 应用程序更新方法和装置

Publications (2)

Publication Number Publication Date
CN105740027A true CN105740027A (zh) 2016-07-06
CN105740027B CN105740027B (zh) 2019-07-19

Family

ID=56249763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610115046.7A Expired - Fee Related CN105740027B (zh) 2012-12-06 2012-12-06 应用程序更新方法和装置

Country Status (1)

Country Link
CN (1) CN105740027B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015818A (zh) * 2017-06-06 2017-08-04 北京洋浦伟业科技发展有限公司 应用的非本体部分更新的外部覆盖更新方法和装置
CN107632840A (zh) * 2017-09-27 2018-01-26 世纪龙信息网络有限责任公司 应用程序的任务执行方法和系统
CN107894895A (zh) * 2017-11-06 2018-04-10 网易(杭州)网络有限公司 代码更新的处理方法、装置、存储介质、处理器及服务器
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN109144544A (zh) * 2018-08-13 2019-01-04 中国建设银行股份有限公司 一种银行所使用的应用程序更新方法、系统及装置
CN109814897A (zh) * 2018-12-18 2019-05-28 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN111198721A (zh) * 2018-10-30 2020-05-26 北京国双科技有限公司 应用程序运行方法和装置
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039196A1 (en) * 2003-08-13 2005-02-17 Sasidharan Prasanth Nalini Method and system for using a library
CN101094229A (zh) * 2007-07-24 2007-12-26 深圳市融合视讯科技有限公司 一种网络应用程序的增量升级系统及升级方法
CN102622241A (zh) * 2011-01-26 2012-08-01 腾讯科技(深圳)有限公司 一种软件升级方法及装置
CN102981880A (zh) * 2012-12-06 2013-03-20 北京奇虎科技有限公司 一种实现应用程序的更新的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039196A1 (en) * 2003-08-13 2005-02-17 Sasidharan Prasanth Nalini Method and system for using a library
CN101094229A (zh) * 2007-07-24 2007-12-26 深圳市融合视讯科技有限公司 一种网络应用程序的增量升级系统及升级方法
CN102622241A (zh) * 2011-01-26 2012-08-01 腾讯科技(深圳)有限公司 一种软件升级方法及装置
CN102981880A (zh) * 2012-12-06 2013-03-20 北京奇虎科技有限公司 一种实现应用程序的更新的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN107015818A (zh) * 2017-06-06 2017-08-04 北京洋浦伟业科技发展有限公司 应用的非本体部分更新的外部覆盖更新方法和装置
CN107632840A (zh) * 2017-09-27 2018-01-26 世纪龙信息网络有限责任公司 应用程序的任务执行方法和系统
CN107894895A (zh) * 2017-11-06 2018-04-10 网易(杭州)网络有限公司 代码更新的处理方法、装置、存储介质、处理器及服务器
CN109144544A (zh) * 2018-08-13 2019-01-04 中国建设银行股份有限公司 一种银行所使用的应用程序更新方法、系统及装置
CN111198721A (zh) * 2018-10-30 2020-05-26 北京国双科技有限公司 应用程序运行方法和装置
CN109814897A (zh) * 2018-12-18 2019-05-28 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN109814897B (zh) * 2018-12-18 2022-04-19 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器

Also Published As

Publication number Publication date
CN105740027B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN102945182A (zh) 应用程序更新方法和装置
CN102981880A (zh) 一种实现应用程序的更新的方法和装置
CN105740027A (zh) 应用程序更新方法和装置
CN109547570B (zh) 服务注册方法、装置、注册中心管理设备及存储介质
US8607224B2 (en) System for packaging native program extensions together with virtual machine applications
CN107992308B (zh) 一种安卓终端应用程序的插件化管理方法
US8555280B2 (en) Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform
CN106325847B (zh) 基于iOS平台获取应用程序功能的方法和装置
CN104750528B (zh) 一种Android程序中的组件管理方法和装置
CN106293696B (zh) 显示应用程序下载安装状态的方法及其对应装置
US10282185B2 (en) Method and apparatus for firmware virtualization
CN107291481B (zh) 一种组件更新方法、装置和系统
CN110945480A (zh) 用于更新和加载应用程序的系统和方法
CN107193609B (zh) 应用中功能模块调用方法及装置、电子设备
CN106469071B (zh) 应用程序主题更换方法及装置
CN103353845A (zh) 脚本加载、推送方法及装置
CN114125028A (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
CN110968331A (zh) 应用程序运行的方法和装置
CN108563472B (zh) 基于多开应用的服务插件加载方法及装置
US20240345829A1 (en) Mobile service upgrade method and apparatus, and terminal
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
WO2016095686A1 (zh) 浏览器与移动终端之间进行通信的方法及浏览器装置
CN105740006A (zh) 基于透明计算的可穿戴智能设备跨平台服务提供方法
CN102902564B (zh) 安装补丁的方法及装置
CN113515299A (zh) 软件开发工具包sdk热升级方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190719

CF01 Termination of patent right due to non-payment of annual fee