CN105607935B - 应用程序更新方法及其终端、服务器 - Google Patents
应用程序更新方法及其终端、服务器 Download PDFInfo
- Publication number
- CN105607935B CN105607935B CN201510992659.4A CN201510992659A CN105607935B CN 105607935 B CN105607935 B CN 105607935B CN 201510992659 A CN201510992659 A CN 201510992659A CN 105607935 B CN105607935 B CN 105607935B
- Authority
- CN
- China
- Prior art keywords
- module
- file
- slave
- file module
- slave file
- 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
Links
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
本发明涉及通信技术领域,涉及一种应用程序更新方法及其终端、服务器。本方法包括:响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级;当需要升级时,通过远程接口发送指向该从文件模块的更新请求;接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块;再次监测到所述主安装文件的启动事件,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。本发明在更新从文件模块时,只需要替换安装包的进程中现有的旧从文件模块,无需卸载整个现有安装包;且整个更新和替换过程由后台服务进程静默执行,无需用户参与,解决了应用程序更新过程中用户操作繁琐的问题,节约***资源。
Description
【技术领域】
本发明涉及通信技术领域,特别涉及一种应用程序更新方法及其终端、服务器。
【背景技术】
随着移动互联网的迅速发展以及移动终端智能化技术的不断提高,海量的应用程序被移动终端下载及安装,极大地丰富了人们的移动生活。
为了满足日益提升的用户需求,或者需要为现有版本的应用程序修复漏洞和改善产品性能等,开发人员对现有应用程序做出改进或者优化之后,会在应用程序中添加相关代码,并编译打包之后生成该应用程序的新版本安装包,其中包含该应用程序的所有逻辑代码,再通过版本更新的方式发布该新的更新包。待用户确认需要更新或修复该应用程序时,需要下载该新版本的整个安装包,卸载旧版本,然后再安装新版本。这种更新方式对用户来说操作繁琐,每次用户都需要执行卸载和安装整个程序包,浪费***资源。
【发明内容】
本发明的目的旨在解决上述至少一个问题,提供了一种应用程序更新方法及其终端、服务器。
为实现该目的,本发明采用如下技术方案:
本发明提供了一种应用程序更新方法,其包括步骤:
响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级;
当需要升级时,通过远程接口发送指向该从文件模块的更新请求;
接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块;
再次监测到所述主安装文件的启动事件,静默加载所述更新包到该应用程序的启动进程中,以完成该应用程序的更新。
具体的,所述响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中从文件模块是否需要升级的步骤中,包括:
响应于监测到应用程序的主安装文件的启动事件,通过远程接口发送指向所述从文件模块的询问请求;
依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级。
具体的,所述依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级的步骤中,包括:
接收返回的与该询问请求对应的从文件模块的新版本号;
判断该新版本号与从文件模块的当前版本号是否一致;
若一致,确定所述从文件模块不需要升级;反之不一致时,确定所述从文件模块需要升级。
进一步的,所述更新请求中包括有所述从文件模块的唯一性的标识信息。
具体的,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤中,包括:
接收返回的与该更新请求对应的更新包,提取该更新包的标识信息;
判断该标识信息与所述从文件模块的标识信息是否相同;
若是,将该更新包替换所述从文件模块。
优选的,所述标识信息为所述从文件模块的文件名或ID号。
具体的,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤中,包括:
接收返回的与所述更新请求对应的更新包,提取所述更新包的版本号;
将该更新包的版本号与所述从文件模块的版本号进行对比;
若对比结果不一致,将该更新包存储在本地;反之,丢弃该更新包。
进一步的,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤之后,还包括:
依据获取的该更新包的版本号,获取对应的安装配置文件;
将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及该功能逻辑代码的入口。
进一步的,所述依据获取的该更新包的版本号,获取对应的安装配置文件的步骤中,包括:
获取该更新包的版本号及本机的国际移动设备身份码IMEI,通过远程接口发送包含该版本号和IMEI的安装配置文件请求;
通过远程接口接收响应于该配置文件请求而返回的安装配置文件。
本发明还提供了一种应用程序更新方法,其包括步骤:
接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于文件模块信息库中,并生成与该从文件模块对应的更新信息;
响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息;
响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
具体的,所述更新信息中包括有所述从文件模块的唯一性的标识信息。
可选的,所述标识信息为所述从文件模块的文件名、和/或ID号、和/或版本号。
进一步的,所述方法还包括步骤:
通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;
依据该版本号和IMEI,编译生成对应的安装配置文件;
响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
具体的,所述安装配置文件中编译有所述从文件模块的功能逻辑代码及该功能逻辑代码的入口。
本发明还提供了一种应用程序更新终端,其包括有:
检测模块,用于响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级;
请求发送模块,用于当需要升级时,通过远程接口发送指向该从文件模块的更新请求;
接收模块,用于接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块;
执行模块,用于再次监测到所述主安装文件的启动事件,静默加载所述更新包到该应用程序的启动进程中,以完成该应用程序的更新。
进一步的,所述检测模块中还包括有询问单元和升级判断单元,
所述询问单元,用于响应于监测到应用程序的主安装文件的启动事件,通过远程接口发送指向所述从文件模块的询问请求;
所述升级判断单元,用于依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级。
进一步的,所述升级判断单元还用于接收返回的与该询问请求对应的从文件模块的新版本号;
判断该新版本号与从文件模块的当前版本号是否一致;
若一致,确定所述从文件模块不需要升级;反之不一致时,确定所述从文件模块需要升级。
具体的,所述更新请求中包括有所述从文件模块的唯一性的标识信息。
进一步的,所述接收模块还用于
接收返回的与该更新请求对应的更新包,提取该更新包的标识信息;
判断该标识信息与所述从文件模块的标识信息是否相同;
若是,将该更新包替换所述从文件模块。
可选的,所述标识信息为所述从文件模块的文件名或ID号。
进一步的,所述接收模块还用于
接收返回的与所述更新请求对应的更新包,提取所述更新包的版本号;
将该更新包的版本号与所述从文件模块的版本号进行对比;
若对比结果不一致,将该更新包存储在本地;反之,丢弃该更新包。
进一步的,终端还包括有配置模块,所述配置模块还包括有配置文件获取单元和第三存储单元,
所述配置文件获取单元,用于所述接收模块接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块之后,依据获取的该更新包的版本号,获取对应的安装配置文件;
所述第三存储单元,用于将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及该功能逻辑代码的入口。
具体的,所述配置文件获取单元,还用于获取该更新包的版本号及本机的国际移动设备身份码IMEI,通过远程接口发送包含该版本号和IMEI的安装配置文件请求;
通过远程接口接收响应于该配置文件请求而返回的安装配置文件。
本发明还提供了一种服务器,其包括有:
更新包接收模块,用于接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于文件模块信息库中,并生成与该从文件模块对应的更新信息;
信息推送模块,用于响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息;
更新包推送模块,用于响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
具体的,所述更新信息中包括有所述从文件模块的唯一性的标识信息。
进一步的,所述标识信息为所述从文件模块的文件名、和/或ID号、和/或版本号。
进一步的,还包括配置文件推送模块,
所述配置文件推送模块,用于通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;
依据该版本号和IMEI,编译生成对应的安装配置文件;
响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
具体的,所述安装配置文件中编译有所述从文件模块的功能逻辑代码及该功能逻辑代码的入口。
与现有技术相比,本发明具备如下优点:
1、本发明中提供的一种应用程序的更新方法,在监测到应用程序的主安装文件的启动事件时,检测该应用程序中对应的从文件模块是否需要升级;当判断得到需要升级时,通过远程接口发送指向该从文件模块的更新请求、并接收服务器返回的更新包;当再次监测到所述主安装文件的启动事件时,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。即只需要更新对应的从文件模块,无需要更新整个安装包;且在更新该从文件模块时,只需要替换安装包的进程中现有的旧从文件模块,无需卸载整个现有安装包;且整个更新和替换过程由后台服务进程静默执行,无需用户参与,不需要像现有技术那样进行卸载旧版本的安装包、再安装新版本应用程序的操作,由此解决了应用程序更新过程中用户操作繁琐的问题,节约***资源。
2、进一步的,本发明中终端在静默执行所述更新包替换现有的从文件模块时,是在后台服务进程监测到该从文件模块所属的应用程序启动的事件时,在应用程序的启动进程中替换该更新包,以完成该应用程序的更新。整个更新过程在后台静默执行,且在应用程序启动时完成,提高了用户的体验度。
3、进一步的,本发明中,在终端接收到服务器所推送的从文件模块的更新包之后,还需要向服务器端发送包含该更新包的版本号及终端IMEI码的安装配置文件请求,以服务器响应于该请求返回对应的安装配置文件,可以针对不同的版本及运行环境提供对应的安装配置文件,使得该从文件模块更新的方式更灵活和更符合当前的终端硬件配置。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明中应用程序更新方法的一个实施例的程序流程图;
图2是本发明中应用程序更新方法的一个实施例的程序流程图;
图3是本发明中应用程序更新方法的一个实施例的程序流程图;
图4是本发明中应用程序更新方法的一个实施例的程序流程图;
图5是本发明中应用程序更新终端的一个实施例的结构框图;
图6是本发明中应用程序更新终端的一个实施例中配置模块的结构框图;
图7是本发明中服务器的一个实施例的结构框图;
图8是本发明中服务器的一个实施例的结构框图。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【具体实施方式】
下面结合附图和示例性实施例对本发明作进一步地描述,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。此外,如果已知技术的详细描述对于示出本发明的特征是不必要的,则将其省略。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信***),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位***)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的服务器、云端、远端网络设备等概念,具有等同效果,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
有必要先对本发明的应用场景及其原理进行如下的先导性说明。
互联网中,一般包括用户端(用户移动终端)、网络和服务器(如网站的Web服务器等)。其中用户端可以是用户的互联网移动终端,如台式机(PC)、膝上型计算机(Laptop),带有网页浏览功能的智能型设备,如个人数字助理(Personal Digital Assisstant,PDA),以及移动互联网设备(Mobile InternetDevice,MID)和智能手机(Phone)等。这些移动终端都可以在互联网环境中,典型的如英特网环境中,请求由另一进程(如服务器提供的进程)提供某项服务。服务器通常是可通过互联网等通信媒介,典型的如英特网访问的远程计算机***。而且,服务器通常可以为来自互联网的多个用户端提供服务。提供服务过程包括接收用户端发来的请求,收集用户端情报和反馈信息等。实质上,服务器充当计算机网络的信息提供者这一角色。服务器通常位于提供服务的一方,或由服务提供方配置以服务内容,这样的服务提供方可以如互联网服务公司的网站等。
例如,在本发明中,服务器的数据库中已预先存储有多个应用程序的安装包,且每个安装包中包括有一个主安装文件和对应的多个从文件模块;当接收到其他服务器发送给该服务器的针对应用程序安装包进行局部更改的从文件模块的更新包,或者该服务器通过搜索引擎自动搜索得到的对应用程序安装包进行局部更改的从文件模块的更新包,会将该更新包关联存储于从文件模块信息库中,并生成对应的更新信息;而用户端通过对比从服务器返回的更新包的版本信息和本地文件模块的当前版本信息,判定得到本地文件模块需要更新时,通过远程接口向服务器发送对应于该更新信息的更新请求,以接收服务器推送给用户端的从文件模块更新包,并在本地主安装文件更新时完成该应用程序的更新。
以下将详细说明为了运用上述的原理实现上述的场景而提出的本发明的若干技术方案的具体实施方式。需要说明的是,本发明提供的一种应用程序更新方法,是先从移动终端的视角来加以描述的,本发明可以通过编程将应用程序更新方法实现为计算机程序在移动终端上实现,其包括但不限于手机、PAD、PC机等移动终端。且为了便于理解本发明的所述方案,本发明以Android移动终端为例来进行示例性的说明。参见附图1,为本发明的一种应用程序更新方法的一个实施例中的程序流程图,其包括步骤:
S11,响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级。
需要说明的是,本发明所述的应用程序安装包与传统的安装包不同,传统的安装包中包括有一个完整的可执行安装文件;而本发明方案中所述的APP安装包中将编译好的class文件拆分打包成至少两个可执行的从文件模块,其中包括一个主安装文件及其他几个独立功能的可执行从文件模块,其中所述主安装文件中包括有所述应用程序启动时就需要使用的类,而在启动时不是必须实时运行的类放入到其他可执行从文件模块中。在运行该应用程序时,移动终端的***只会默认的去加载主安装文件,并不会静默主动去加载从文件模块。但是,如果在从文件模块中创建好一个类加载器,那当需要使用该从文件模块时,就可以在主安装文件中动态加载该从文件模块。例如,可以在Application的onCreate中动态加载其他多个独立功能的可执行从文件模块。因此在更新本机应用程序的安装包时只需要更新对应的从文件模块,而无须整体更新整个安装包。
具体的,在终端的应用程序的主安装文件中注入***,当监测到该应用程序的主安装文件启动后,并开始加载某个从文件模块时,通过远程接口向服务器端发送指向所述从文件模块的询问请求,其中所述询问请求中包括有所述从文件模块的唯一性的标识信息;然后移动终端接收到从服务器端响应于该询问请求而返回的回复信息,该回复信息中包含有服务器端存储的与该从文件模块具有相同的唯一性标识信息的更新包的新版本号;移动终端判断接收的该新版本号与本机的从文件模块的当前版本号是否一致;若一致,确定所述从文件模块不需要更新;反之,当两个版本号不一致时,表征所述更新包为不同的新版本,确定所述从文件模块需要升级。
可选的,所述的唯一性标识信息可以是该从文件模块的文件名或ID。在本发明的一个实施例中,通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。
不难理解,在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了该配置文件中获取的所有信息。因此,在本发明的一个实施例中,可以通过PackageManager对象中的getPackageInfo方法获取PackageInfo对象,然后使用PackageInfo对象的versionName属性获取应用的版本号。进一步的,请参见附图1,在本发明的一个实施例中,所述方法还包括步骤:
S12,当需要升级时,通过远程接口发送指向该从文件模块的更新请求。
具体的,当前述步骤S11中得到某一从文件模块需要升级时,通过对应的远程接口发送指向该从文件模块的更新请求。其中,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。需要说明的是,所述的指向该从文件模块的更新请求是指该请求中包括有从文件模块的唯一性的标识信息,不难理解同一从文件模块的所有新旧版本均采用同一个标识信息,不同的从文件模块其对应的标识信息不同。所述更新请求中可以包括该从文件模块的唯一性标识信息,以便于服务器基于该标识信息获取对应的从文件模块的更新包。
可选的,所述的唯一性标识信息优选但不限于的是该从文件模块的文件名或ID。在本发明的一个实施例中,通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。
进一步的,请参见图1,在本发明的方法中,还包括步骤:
S13,接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块。
前述步骤S12中,移动终端向服务器发送了指向所述从文件模块的更新请求。本步骤S13中移动终端会接收到服务器响应于该更新请求而推送的从文件模块的更新包。且在接收到该更新包后,移动终端还需要检测该更新包是否为预先需要获取的更新包。
进一步的,在本发明的一个实施例中,在移动终端接收返回的所述从文件模块的更新包中,还需要提取该更新包的标识信息;判断该标识信息与所述从文件模块的标识信息是否相同;若是,将该更新包替换所述从文件模块。
具体的,本发明所述移动终端的后台服务程序接收到服务器返回的更新包后,需要提取该更新包的标识信息。在本发明的一个实施例中,所述的唯一性标识信息优选但不限于的是该从文件模块的文件名或ID。在本发明的一个实施例中,通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。然后再判断更新包的标识信息与现有从文件模块的标识信息是否相同,如果两者相同,则将该更新包存储在本移动终端中从文件模块的存储路径,以替换该从文件模块;反之,丢掉所接收到的更新包。
进一步的,在移动终端接收到返回的所述从文件模块的更新包后,还提取所述更新包的版本号;然后将该更新包的版本号与所述从文件模块的版本号进行对比;若对比结果不一致,将该更新包存储在本地。具体的,在本发明的一个实施例中,对于已安装在该终端的从文件模块,在Android***中,所有应用程序文件的版本号都在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,因此可以通过PackageManager对象来获取PackageInfo对象,再使用PackageInfo对象的versionName属性获取应用的版本号;同样的,本发明移动终端的后台服务进程中也可以通过调用info.versionName来获取该未安装在本终端的更新包的版本号。
当分别获取了更新包及所述从文件模块的版本号后,对两者进行对比,当对比结果一致时,则表征本移动终端的当前***中已安装有该最新版本的更新包,丢弃该接收到的更新包;反之,当对比结果不一致时,则表征本移动终端的当前***中没有安装该更新包,则将将该更新包存储在本移动终端中从文件模块的存储路径,以替换该从文件模块。
进一步的,请参见附图2,在本发明的所述方法中,在步骤S13接收返回的与该更新请求对应的所述从文件模块的更新包之后,还包括步骤:
S151,依据获取的该更新包的版本号,获取对应的安装配置文件;
S152,将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及执行该功能逻辑代码的入口方法。
具体的,为了可以针对不同的文件版本号及运行环境提供对应的安装配置文件,使得该从文件模块更新的方式更灵活和更符合当前的终端硬件配置。在本发明的一个实施例中,在接收到该更新包后,先获取该更新包的版本号及本移动终端的国际移动设备身份码IMEI(International Mobile EquipmentIdentity)。具体的,在本发明所述的Android移动终端中,可以通过调用((TelephonyManager)getSystemService(TELEPHONY_SERVICE)
.getDeviceId()来获取移动终端的IMEI码。然后,该移动终端基于网络向服务器发送包含该版本号和IMEI的安装配置文件请求;再通过对应的远程接口接收响应于该配置文件请求而返回的安装配置文件。不难理解,配置文件请求中包括但不限于当前待安装的更新包的版本号、该移动终端的IMEI等,服务器根据上述内容,即可确定该移动终端的硬件配置环境,便于生成或查找到与该更新包的版本号及移动终端的硬件配置环境相匹配的安装配置文件。
进一步的,在移动终端接收到该安装配置文件后,将所述安装配置文件存储在先前接收的更新包中。其中,所述安装配置文件中封装了更新包的功能逻辑代码及执行该逻辑代码的入口方法,以使得后续步骤中移动终端的后台服务程序通过调用该入口方法,执行所述从文件模块的更新包的功能逻辑代码,完成应用程序的更新。
进一步的,请参见附图1,在本发明的所述方法中,还包括步骤:
S14,再次监测到所述主安装文件的启动事件,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。
具体的,前述步骤中,已将更新包存储在从文件模块的存储路径下。在本发明的一个实施例中,后台服务进程在主安装文件中注入有***,用于监听该主安装文件的启动事件,当监听得到该主安装文件运行后,将该更新包的逻辑代码加载到Dalvik环境中,即将该更新包的路径设置在DexClassLoader的加载路径下,通过该DexClassLoader来动态加载该更新包,
不难理解,本发明中终端在静默执行所述更新包替换现有的从文件模块时,是在后台服务进程监测到该从文件模块所属的应用程序启动的事件时,在应用程序的启动进程中将对应的从文件模块替换为该更新包,以完成该应用程序的更新。整个更新过程在后台静默执行,且在应用程序启动时完成,不会影响用户的使用,提高了用户的体验度。
综上所述,本发明中提供的一种应用程序的更新方法,在监测到应用程序的主安装文件的启动事件时,检测该应用程序中对应的从文件模块是否需要升级;当判断得到需要升级时,通过远程接口发送指向该从文件模块的更新请求、并接收服务器返回的更新包;当再次监测到所述主安装文件的启动事件时,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。即只需要更新对应的从文件模块,无需要更新整个安装包;且在更新该从文件模块时,只需要替换安装包的进程中现有的旧从文件模块,无需卸载整个现有安装包;且整个更新和替换过程由后台服务进程静默执行,无需用户参与,不需要像现有技术那样进行卸载旧版本的安装包、再安装新版本应用程序的操作,由此解决了应用程序更新过程中用户操作繁琐的问题,节约***资源。
进一步的,本发明还提供了的一种应用程序更新方法,是从服务器的视角来加以描述的,可以通过编程将该应用程序更新方法实现为计算机程序在远端网络设备上实现,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。
参见附图3,为本发明所述的一种应用程序更新方法的一个实施例的程序流程图,其包括有以下步骤:
S21,接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于从文件模块信息库中,并生成与该从文件模块对应的更新信息。
不难理解,本发明所述的服务器端预先设置有从文件模块信息库,其中包括有对应于不同应用程序安装包中的一个可执行主文件模块和多个可执行从文件模块。需要说明的是,本发明所述的应用程序安装包与传统的安装包不同,传统的安装包中包括有一个完整的可执行安装文件;而本发明方案中所述的APP安装包中将编译好的class文件拆分打包成至少两个可执行的从文件模块,其中包括一个主安装文件及其他几个独立功能的可执行从文件模块,其中所述主安装中包括有所述应用程序启动时就需要使用的类,而在启动时不是必须实时运行的类放入到其他可执行从文件模块中。在运行该应用程序时,移动终端的***只会默认的去加载主安装文件,并不会静默主动去加载从文件模块。但是,如果在从文件模块中创建好一个类加载器,那当需要使用该从文件模块时,就可以在主安装文件中动态加载该从文件模块。例如,可以在Application的onCreate中动态加载其他多个独立功能的可执行从文件模块。因此在更新本机应用程序的安装包时只需要更新对应的从文件模块,而无须整体更新整个安装包。
当服务器接收到多个从其他服务器或其他路径发送的从文件模块的更新包,或者是服务器通过调用搜索引擎而搜索得到的针对某个应用程序的从文件模块的更新包,则将该从文件模块关联性存储于从文件模块信息库中,且生成与该从文件模块对应的更新信息。不难理解,其中所述从文件模块的更新包用于对应用程序安装包进行局部更新或更改,所述的其他服务器或其他路径可以是该从文件模块的原创站点路径或中转站点;可以通过获取该从文件模块的更新包的唯一性的标识信息,以替换该从文件模块信息库中具有相同标识信息的原有从文件模块,其中属于不同版本的同一从文件模块的标识信息均相同。具体的,在本发明的一个实施例中,所述生成的更新信息中可以包括有从文件模块的唯一性的标识信息、及该从文件模块的版本号等信息。例如,所述标识信息优选但不限于的是所述从文件模块的文件名、和/或ID号、和/或版本号。
进一步的,请参见附图3,本发明所述方法中,还包括有步骤:
S22,响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息。
具体的,当服务器端通过远程接口接收到至少一个用户发送的询问请求,其中所述询问请求中包括有所述从文件模块的唯一性的标识信息;服务器基于该唯一性的标识信息查找到对应的更新消息,并向该用户返回更新消息。该更新信息中包含有服务器端存储的与该从文件模块具有相同的唯一性标识信息的更新包的新版本号。具体的,在本发明的一个实施例中,服务器基于HTTP协议通过远程接口,采用iframe和<script>标签将所述更新信息推送给对应的用户,其中,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。
进一步的,请参见附图3,本发明所述方法中,还包括步骤:
S23,响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
具体的,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。服务器会响应于用户发送的更新请求,向对应的用户推送所对应的从文件模块更新包。需要说明的是,所述的更新请求中包括有从文件模块的唯一性的标识信息,其中该从文件模块的所有新旧版本均采用同一个标识信息,不同的从文件模块其对应的标识信息不同。在本发明的一个实施例中,所述标识信息优选但不限于的是所述从文件模块的文件名、和/或ID号、和/或版本号。其中所述更新请求中包括该从文件模块的唯一性标识信息,以便于服务器基于该标识信息获取对应的从文件模块的更新包。
进一步的,请参见附图4,在本发明的所述方法中,还包括有步骤:
S241,通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;
S242,依据该版本号和IMEI,编译生成对应的安装配置文件;
S243,响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
具体的,为了可以针对不同的文件版本号及运行环境提供对应的安装配置文件,使得该从文件模块更新的方式更灵活和更符合当前的终端硬件配置。在本发明的一个实施例中,服务器向对应的用户ID推送所述从文件模块的更新包后,会接收到所述用户ID基于网络向服务器发送的安装配置文件请求,其中所述安装配置文件请求中包含该从文件模块的更新包的版本号和用户所在移动终端的国际移动设备身份码IMEI(InternationalMobile EquipmentIdentity)。不难理解,由于配置文件请求中包括但不限于当前待安装的更新包的版本号、该移动终端的IMEI等,服务器根据上述内容,通过搜索引擎搜索或查找数据库即可确定该移动终端的硬件配置环境,其中数据库中可以是预先关联性存储有IMEI与其对应的硬件配置信息。
进一步的,服务器依据该更新包的版本号和IMEI,在预设的数据库中匹配查找与所述版本号及IMEI对应的安装配置文件,查找到后,则响应于用户的安装配置文件请求,将该安装配置文件推送给相应的用户。但是,当服务器数据库中或调用搜索引擎无法查找到匹配的安装配置文件时,便依据该版本号和IMEI生成对应的安装配置文件,再向对应的用户推送。
具体的,所述安装配置文件中封装了更新包的功能逻辑代码及执行该逻辑代码的入口方法,以使得用户所在移动终端的后台服务程序通过调用该入口方法,执行所述从文件模块的更新包的功能逻辑代码,完成应用程序的更新。例如,所述更新包中封装有该更新包的功能逻辑代码。则预先定义一个类ClassB,将所述从文件模块的更新包的功能逻辑代码封装进ClassB类中,并在该类中定义一个名称为main()的入口方法,并将功能逻辑代码放入该入口方法中,通过编译类ClassB生成配置文件(例如test.jar)。由此,用户所在的移动终端的后台服务程序通过调用该配置文件中的ClassB.main(),即可实现该更新包中应用程序功能逻辑代码的执行。
进一步的,依据计算机软件的功能模块化思维,本发明还提供了一种采用前述应用程序更新方法的应用程序更新终端,请参阅图5。该终端包括检测模块11、请求发送模块12、接收模块13和执行模块14,利用该检测模块11、请求发送模块12、接收模块13和执行模块14来搭建起整个终端的原理框架,从而实现模块化实施方案。以下具体揭示各模块实现的具体功能。为了便于理解各模块的实现,本发明以Android手机为移动终端来示例性说明各模块的实现,但是并不能构成对本发明的限制。
所述检测模块11,用于响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级。
需要说明的是,本发明所述的应用程序安装包与传统的安装包不同,传统的安装包中包括有一个完整的可执行安装文件;而本发明方案中所述的APP安装包中将编译好的class文件拆分打包成至少两个可执行的从文件模块,其中包括一个主安装文件及其他几个独立功能的可执行从文件模块,其中所述主安装文件中包括有所述应用程序启动时就需要使用的类,而在启动时不是必须实时运行的类放入到其他可执行从文件模块中。在运行该应用程序时,移动终端的***只会默认的去加载主安装文件,并不会静默主动去加载从文件模块。但是,如果在从文件模块中创建好一个类加载器,那当需要使用该从文件模块时,就可以在主安装文件中动态加载该从文件模块。例如,可以在Application的onCreate中动态加载其他多个独立功能的可执行从文件模块。因此在更新本机应用程序的安装包时只需要更新对应的从文件模块,而无须整体更新整个安装包。
具体的,所述检测模块11中还包括有询问单元和升级判断单元。所述检测模块11在终端的应用程序的主安装文件中注入***,当监测到该应用程序的主安装文件启动后,并开始加载某个从文件模块时,所述询问单元通过远程接口向服务器端发送指向所述从文件模块的询问请求,其中所述询问请求中包括有所述从文件模块的唯一性的标识信息;然后所述检测模块11接收到从服务器端响应于该询问请求而返回的回复信息,该回复信息中包含有服务器端存储的与该从文件模块具有相同的唯一性标识信息的更新包的新版本号;所述升级判断单元判断接收的该新版本号与本机的从文件模块的当前版本号是否一致;若一致,所述升级判断单元确定所述从文件模块不需要更新;反之,当两个版本号不一致时,表征所述更新包为不同的新版本,确定所述从文件模块需要升级。
可选的,所述的唯一性标识信息可以是该从文件模块的文件名或ID。在本发明的一个实施例中,所述检测模块11通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。
不难理解,在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了该配置文件中获取的所有信息。因此,在本发明的一个实施例中,所述检测模块11可以通过PackageManager对象中的getPackageInfo方法获取PackageInfo对象,然后使用PackageInfo对象的versionName属性获取应用的版本号。
进一步的,请参见附图5,所述请求发送模块12,用于当需要升级时,通过远程接口发送指向该从文件模块的更新请求。
具体的,当前述检测模块11中得到某一从文件模块需要升级时,所述请求发送模块12通过对应的远程接口发送指向该从文件模块的更新请求。其中,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。需要说明的是,所述的指向该从文件模块的更新请求是指该请求中包括有从文件模块的唯一性的标识信息,不难理解同一从文件模块的所有新旧版本均采用同一个标识信息,不同的从文件模块其对应的标识信息不同。所述更新请求中可以包括该从文件模块的唯一性标识信息,以便于服务器基于该标识信息获取对应的从文件模块的更新包。
可选的,所述的唯一性标识信息优选但不限于的是该从文件模块的文件名或ID。在本发明的一个实施例中,所述请求发送模块12通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。
进一步的,请参见附图5,所述接收模块13,用于接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块。
前述请求发送模块12向服务器发送了指向所述从文件模块的更新请求。所述接收模块13接收到服务器响应于该更新请求而推送的从文件模块的更新包。且在接收到该更新包后,所述接收模块13还需要检测该更新包是否为预先需要获取的更新包。
进一步的,在本发明的一个实施例中,在所述接收模块13接收返回的所述从文件模块的更新包中,还需要提取该更新包的标识信息;判断该标识信息与所述从文件模块的标识信息是否相同;若是,将该更新包替换所述从文件模块。
具体的,本发明所述接收模块13调用后台服务程序接收到服务器返回的更新包后,需要提取该更新包的标识信息。在本发明的一个实施例中,所述的唯一性标识信息优选但不限于的是该从文件模块的文件名或ID。在本发明的一个实施例中,所述接收模块13通过利用在本移动终端的Android***的PackageManger管理类,通过Activity或Context(Activity继承自Context)的packagename()来获取该从文件模块的文件名,然后在基于该文件名,调用Resources的getIdentifier()可以获取该从文件模块的ID。然后所述接收模块13再判断更新包的标识信息与现有从文件模块的标识信息是否相同,如果两者相同,则将该更新包存储在本移动终端中从文件模块的存储路径,以替换该从文件模块;反之,丢掉所接收到的更新包。
进一步的,在所述接收模块13接收到返回的所述从文件模块的更新包后,还提取所述更新包的版本号;然后所述接收模块13将该更新包的版本号与所述从文件模块的版本号进行对比;若对比结果不一致,所述接收模块13将该更新包存储在本地。具体的,在本发明的一个实施例中,对于已安装在该终端的从文件模块,在Android***中,所有应用程序文件的版本号都在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,因此可以通过PackageManager对象来获取PackageInfo对象,再使用PackageInfo对象的versionName属性获取应用的版本号;同样的,本发明所述接收模块13也可以通过调用info.versionName来获取该未安装在本终端的更新包的版本号。
当所述接收模块13分别获取了更新包及所述从文件模块的版本号后,对两者进行对比,当对比结果一致时,则表征本移动终端的当前***中已安装有该最新版本的更新包,所述接收模块13丢弃该接收到的更新包;反之,当对比结果不一致时,则表征本移动终端的当前***中没有安装该更新包,所述接收模块13则将将该更新包存储在本移动终端中从文件模块的存储路径,以替换该从文件模块。
进一步的,请参见附图6,在本发明的所述终端中,还包括有配置模块15,其中所述配置模块15还包括有配置文件获取单元151和第一存储单元152。
所述配置文件获取单元151,用于依据获取的该更新包的版本号,获取对应的安装配置文件;
所述第一存储单元152,用于将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及执行该功能逻辑代码的入口方法。
具体的,为了可以针对不同的文件版本号及运行环境提供对应的安装配置文件,使得该从文件模块更新的方式更灵活和更符合当前的终端硬件配置。在本发明的一个实施例中,在所述接收模块13接收到该更新包后,所述配置文件获取单元151先获取该更新包的版本号及本移动终端的国际移动设备身份码IMEI(International Mobile EquipmentIdentity)。具体的,在本发明所述的Android移动终端中,所述配置文件获取单元151可以通过调用((TelephonyManager)getSystemService(TELEPHONY_SERVICE)
.getDeviceId()来获取移动终端的IMEI码。然后,所述配置文件获取单元151基于网络向服务器发送包含该版本号和IMEI的安装配置文件请求;再通过对应的远程接口接收响应于该配置文件请求而返回的安装配置文件。不难理解,配置文件请求中包括但不限于当前待安装的更新包的版本号、该移动终端的IMEI等,服务器根据上述内容,即可确定该移动终端的硬件配置环境,便于生成或查找到与该更新包的版本号及移动终端的硬件配置环境相匹配的安装配置文件。
进一步的,在所述配置文件获取单元151接收到该安装配置文件后,所述第一存储单元152将所述安装配置文件存储在先前接收的更新包中。其中,所述安装配置文件中封装了更新包的功能逻辑代码及执行该逻辑代码的入口方法,以使得后续步骤中移动终端的后台服务程序通过调用该入口方法,执行所述从文件模块的更新包的功能逻辑代码,完成应用程序的更新。
进一步的,请参见附图5,所述执行模块14,用于再次监测到所述主安装文件的启动事件,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。
具体的,前述接收模块13中已将更新包存储在从文件模块的存储路径下。在本发明的一个实施例中,所述执行模块14调用后台服务进程在主安装文件中注入有***,用于监听该主安装文件的启动事件,当监听得到该主安装文件运行后,所述执行模块14将该更新包的逻辑代码加载到Dalvik环境中,即将该更新包的路径设置在DexClassLoader的加载路径下,通过该DexClassLoader来动态加载该更新包。
不难理解,本发明中终端在静默执行所述更新包替换现有的从文件模块时,是在后台服务进程监测到该从文件模块所属的应用程序启动的事件时,在应用程序的启动进程中将对应的从文件模块替换为该更新包,以完成该应用程序的更新。整个更新过程在后台静默执行,且在应用程序启动时完成,不会影响用户的使用,提高了用户的体验度。
综上所述,本发明中提供的一种应用程序的更新终端,在所述检测模块11监测到应用程序的主安装文件的启动事件时,检测该应用程序中对应的从文件模块是否需要升级;当通过检测模块11判断得到需要升级时,所述请求发送模块12通过远程接口发送指向该从文件模块的更新请求,所述接收模块13接收服务器返回的更新包;当执行模块14再次监测到所述主安装文件的启动事件时,静默加载所述更新包到该启动进程中,以完成该应用程序的更新。即本发明只需要更新对应的从文件模块,无需要更新整个安装包;且在更新该从文件模块时,只需要替换安装包的进程中现有的旧从文件模块,无需卸载整个现有安装包;且整个更新和替换过程由后台服务进程静默执行,无需用户参与,不需要像现有技术那样进行卸载旧版本的安装包、再安装新版本应用程序的操作,由此解决了应用程序更新过程中用户操作繁琐的问题,节约***资源。
同理,依据计算机软件的功能模块化思维,本发明还提供了一种采用前述应用程序更新方法的服务器,请参阅图7。所述服务器包括更新包接收模块21、信息推送模块22和更新包推送模块23,利用该更新包接收模块21、信息推送模块22和更新包推送模块23来搭建起服务器的原理框架,从而实现模块化实施方案。以下具体揭示各模块实现的具体功能,其中所述服务器包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。
所述更新包接收模块21,用于接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于从文件模块信息库中,并生成与该从文件模块对应的更新信息。
不难理解,本发明所述的服务器端预先设置有从文件模块信息库,其中包括有对应于不同应用程序安装包中的一个可执行主文件模块和多个可执行从文件模块。需要说明的是,本发明所述的应用程序安装包与传统的安装包不同,传统的安装包中包括有一个完整的可执行安装文件;而本发明方案中所述的APP安装包中将编译好的class文件拆分打包成至少两个可执行的从文件模块,其中包括一个主安装文件及其他几个独立功能的可执行从文件模块,其中所述主安装中包括有所述应用程序启动时就需要使用的类,而在启动时不是必须实时运行的类放入到其他可执行从文件模块中。在运行该应用程序时,移动终端的***只会默认的去加载主安装文件,并不会静默主动去加载从文件模块。但是,如果在从文件模块中创建好一个类加载器,那当需要使用该从文件模块时,就可以在主安装文件中动态加载该从文件模块。例如,可以在Application的onCreate中动态加载其他多个独立功能的可执行从文件模块。因此在更新本机应用程序的安装包时只需要更新对应的从文件模块,而无须整体更新整个安装包。
当所述更新包接收模块21接收到多个从其他服务器或其他路径发送的从文件模块的更新包,或者是所述更新包接收模块21通过调用搜索引擎而搜索得到的针对某个应用程序的从文件模块的更新包,则将该从文件模块关联性存储于从文件模块信息库中,且生成与该从文件模块对应的更新信息。不难理解,其中所述从文件模块的更新包用于对应用程序安装包进行局部更新或更改,所述的其他服务器或其他路径可以是该从文件模块的原创站点路径或中转站点;所述更新包接收模块21可以通过获取该从文件模块的更新包的唯一性的标识信息,以替换该从文件模块信息库中具有相同标识信息的原有从文件模块,其中属于不同版本的同一从文件模块的标识信息均相同。具体的,在本发明的一个实施例中,所述生成的更新信息中可以包括有从文件模块的唯一性的标识信息、及该从文件模块的版本号等信息。例如,所述标识信息优选但不限于的是所述从文件模块的文件名、和/或ID号、和/或版本号。
进一步的,请参见附图7。所述信息推送模块22,用于响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息。
具体的,所述信息推送模块22通过远程接口接收到至少一个用户发送的询问请求,其中所述询问请求中包括有所述从文件模块的唯一性的标识信息;所述信息推送模块22基于该唯一性的标识信息查找到对应的更新消息,并向该用户返回更新消息。该更新信息中包含有服务器端存储的与该从文件模块具有相同的唯一性标识信息的更新包的新版本号。具体的,在本发明的一个实施例中,所述信息推送模块22基于HTTP协议通过远程接口,采用iframe和<script>标签将所述更新信息推送给对应的用户,其中,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。
进一步的,请参见附图7,本发明所述更新包推送模块23,用于响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
具体的,所述的远程接口是指移动终端与服务器通过网络能相互通信的通信端口或通信通道。所述更新包推送模块23会响应于用户发送的更新请求,向对应的用户推送所对应的从文件模块更新包。需要说明的是,所述的更新请求中包括有从文件模块的唯一性的标识信息,其中该从文件模块的所有新旧版本均采用同一个标识信息,不同的从文件模块其对应的标识信息不同。在本发明的一个实施例中,所述的唯一性标识信息优选但不限于的是该从文件模块的文件名、和/或ID号、和/或版本号。其中所述更新请求中包括该从文件模块的唯一性标识信息,以便于服务器基于该标识信息获取对应的从文件模块的更新包。
进一步的,请参见附图8,在本发明的所述服务器中还包括有配置文件推送模块24。
所述配置文件推送模块24,用于通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;及依据该版本号和IMEI,编译生成对应的安装配置文件;及响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
具体的,为了可以针对不同的文件版本号及运行环境提供对应的安装配置文件,使得该从文件模块更新的方式更灵活和更符合当前的终端硬件配置。在本发明的一个实施例中,所述更新包推送模块23向对应的用户ID推送所述从文件模块的更新包后,所述配置文件推送模块24会接收到所述用户ID基于网络向服务器发送的安装配置文件请求,其中所述安装配置文件请求中包含该从文件模块的更新包的版本号和用户所在移动终端的国际移动设备身份码IMEI(International Mobile Equipment Identity)。不难理解,由于配置文件请求中包括但不限于当前待安装的更新包的版本号、该移动终端的IMEI等,所述配置文件推送模块24根据上述内容,通过搜索引擎搜索或查找数据库即可确定该移动终端的硬件配置环境,其中数据库中可以是预先关联性存储有IMEI与其对应的硬件配置信息。
进一步的,所述配置文件推送模块24依据该更新包的版本号和IMEI,在预设的数据库中匹配查找与所述版本号及IMEI对应的安装配置文件,查找到后,则响应于用户的安装配置文件请求,所述配置文件推送模块24将该安装配置文件推送给相应的用户。但是,当所述配置文件推送模块24在数据库中或调用搜索引擎无法查找到匹配的安装配置文件时,便依据该版本号和IMEI生成对应的安装配置文件,再向对应的用户推送。
需要说明的是,所述安装配置文件中封装了更新包的功能逻辑代码及执行该逻辑代码的入口方法,以使得用户所在移动终端的后台服务程序通过调用该入口方法,执行所述从文件模块的更新包的功能逻辑代码,完成应用程序的更新。例如,所述更新包中封装有该更新包的功能逻辑代码。则预先定义一个类ClassB,将所述从文件模块的更新包的功能逻辑代码封装进ClassB类中,并在该类中定义一个名称为main()的入口方法,并将功能逻辑代码放入该入口方法中,通过编译类ClassB生成配置文件(例如test.jar)。由此,用户所在的移动终端的后台服务程序通过调用该配置文件中的ClassB.main(),即可实现该更新包中应用程序功能逻辑代码的执行。
在此处所提供的说明书中,虽然说明了大量的具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实施例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然上面已经示出了本发明的一些示例性实施例,但是本领域的技术人员将理解,在不脱离本发明的原理或精神的情况下,可以对这些示例性实施例做出改变,本发明的范围由权利要求及其等同物限定。
Claims (28)
1.一种应用程序更新方法,其特征在于,包括步骤:
响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级,其中,所述主安装文件中包括有所述应用程序启动时就需要使用的类,所述从文件模块为在需要使用时,在所述主安装文件中动态加载的独立功能模块;当需要升级时,通过远程接口发送指向该从文件模块的更新请求;
接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块;
再次监测到所述主安装文件的启动事件,静默加载所述更新包到该应用程序的启动进程中,以完成该应用程序的更新。
2.根据权利要求1所述的方法,其特征在于,所述响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中从文件模块是否需要升级的步骤中,包括:
响应于监测到应用程序的主安装文件的启动事件,通过远程接口发送指向所述从文件模块的询问请求;
依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级。
3.根据权利要求2所述的方法:所述依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级的步骤中,包括:
接收返回的与该询问请求对应的从文件模块的新版本号;
判断该新版本号与从文件模块的当前版本号是否一致;
若一致,确定所述从文件模块不需要升级;反之不一致时,确定所述从文件模块需要升级。
4.根据权利要求1所述的方法,其特征在于:所述更新请求中包括有所述从文件模块的唯一性的标识信息。
5.根据权利要求1所述的方法,其特征在于,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤中,包括:
接收返回的与该更新请求对应的更新包,提取该更新包的标识信息;
判断该标识信息与所述从文件模块的标识信息是否相同;
若是,将该更新包替换所述从文件模块。
6.根据权利要求4或5所述的方法,其特征在于:所述标识信息为所述从文件模块的文件名或ID号。
7.根据权利要求1所述的方法,其特征在于,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤中,包括:
接收返回的与所述更新请求对应的更新包,提取所述更新包的版本号;
将该更新包的版本号与所述从文件模块的版本号进行对比;
若对比结果不一致,将该更新包存储在本地;反之,丢弃该更新包。
8.根据权利要求1所述的方法,其特征在于,所述接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块的步骤之后,还包括:
依据获取的该更新包的版本号,获取对应的安装配置文件;
将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及该功能逻辑代码的入口。
9.根据权利要求8所述的方法,其特征在于,所述依据获取的该更新包的版本号,获取对应的安装配置文件的步骤中,包括:
获取该更新包的版本号及本机的国际移动设备身份码IMEI,通过远程接口发送包含该版本号和IMEI的安装配置文件请求;
通过远程接口接收响应于所述安装配置文件请求而返回的安装配置文件。
10.一种应用程序更新方法,其特征在于,包括步骤:
接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于文件模块信息库中,并生成与该从文件模块对应的更新信息,所述应用程序安装包包括:主安装文件以及从文件模块,所述主安装文件中包括有所述应用程序启动时就需要使用的类,所述从文件模块为在需要使用时,在所述主安装文件中动态加载的独立功能模块;
响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息;
响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
11.根据权利要求10所述的方法,其特征在于:所述更新信息中包括有所述从文件模块的唯一性的标识信息。
12.根据权利要求11所述的方法,其特征在于:所述标识信息为所述从文件模块的文件名、和/或ID号、和/或版本号。
13.根据权利要求10所述的方法,其特征在于,还包括步骤:
通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;
依据该版本号和IMEI,编译生成对应的安装配置文件;
响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
14.根据权利要求13所述的方法,其特征在于:所述安装配置文件中编译有所述从文件模块的功能逻辑代码及该功能逻辑代码的入口。
15.一种应用程序更新终端,其特征在于,包括有:
检测模块,用于响应于监测到应用程序的主安装文件的启动事件,检测该应用程序中对应的从文件模块是否需要升级,其中,所述主安装文件中包括有所述应用程序启动时就需要使用的类,所述从文件模块为在需要使用时,在所述主安装文件中动态加载的独立功能模块;
请求发送模块,用于当需要升级时,通过远程接口发送指向该从文件模块的更新请求;
接收模块,用于接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块;
执行模块,用于再次监测到所述主安装文件的启动事件,静默加载所述更新包到该应用程序的启动进程中,以完成该应用程序的更新。
16.根据权利要求15所述的终端,其特征在于:所述检测模块中还包括有询问单元和升级判断单元,
所述询问单元,用于响应于监测到应用程序的主安装文件的启动事件,通过远程接口发送指向所述从文件模块的询问请求;
所述升级判断单元,用于依据所接收的与该询问请求对应的回复信息,判断所述从文件模块是否需要升级。
17.根据权利要求16所述的终端,其特征在于:所述升级判断单元还用于接收返回的与该询问请求对应的从文件模块的新版本号;
判断该新版本号与从文件模块的当前版本号是否一致;
若一致,确定所述从文件模块不需要升级;反之不一致时,确定所述从文件模块需要升级。
18.根据权利要求15所述的终端,其特征在于:所述更新请求中包括有所述从文件模块的唯一性的标识信息。
19.根据权利要求15所述的终端,其特征在于:所述接收模块还用于接收返回的与该更新请求对应的更新包,提取该更新包的标识信息;
判断该标识信息与所述从文件模块的标识信息是否相同;
若是,将该更新包替换所述从文件模块。
20.根据权利要求18或19所述的终端,其特征在于:所述标识信息为所述从文件模块的文件名或ID号。
21.根据权利要求15所述的终端,其特征在于:所述接收模块还用于接收返回的与所述更新请求对应的更新包,提取所述更新包的版本号;
将该更新包的版本号与所述从文件模块的版本号进行对比;
若对比结果不一致,将该更新包存储在本地;反之,丢弃该更新包。
22.根据权利要求15所述的终端,其特征在于:还包括有配置模块,所述配置模块还包括有配置文件获取单元和第三存储单元,
所述配置文件获取单元,用于所述接收模块接收返回的与该更新请求对应的所述从文件模块的更新包,更新该从文件模块之后,依据获取的该更新包的版本号,获取对应的安装配置文件;
所述第三存储单元,用于将所述安装配置文件存储在更新包中,其中该安装配置文件中编译有该更新包的功能逻辑代码及该功能逻辑代码的入口。
23.根据权利要求22所述的终端,其特征在于:所述配置文件获取单元,还用于获取该更新包的版本号及本机的国际移动设备身份码IMEI,通过远程接口发送包含该版本号和IMEI的安装配置文件请求;
通过远程接口接收响应于所述安装配置文件请求而返回的安装配置文件。
24.一种服务器,其特征在于,包括有:
更新包接收模块,用于接收针对应用程序安装包进行局部更改的从文件模块,将该从文件模块关联存储于文件模块信息库中,并生成与该从文件模块对应的更新信息,所述应用程序安装包包括:主安装文件以及从文件模块,所述主安装文件中包括有所述应用程序启动时就需要使用的类,所述从文件模块为在需要使用时,在所述主安装文件中动态加载的独立功能模块;
信息推送模块,用于响应于至少一个用户指向该从文件模块的询问请求,返回该更新信息;
更新包推送模块,用于响应于至少一个所述用户的更新请求,推送相应的所述从文件模块。
25.根据权利要求24所述的服务器,其特征在于:所述更新信息中包括有所述从文件模块的唯一性的标识信息。
26.根据权利要求25所述的服务器,其特征在于:所述从文件模块的标识信息为所述从文件模块的文件名、和/或ID号、和/或版本号。
27.根据权利要求24所述的服务器,其特征在于:还包括配置文件推送模块,
所述配置文件推送模块,用于通过远程接口接收至少一个用户的安装配置文件请求,该安装配置文件请求中包括有国际移动设备身份码IMEI及从文件模块的版本号;
依据该版本号和IMEI,编译生成对应的安装配置文件;
响应于该安装配置文件请求,向对应的用户推送所述安装配置文件。
28.根据权利要求27所述的服务器,其特征在于:所述安装配置文件中编译有所述从文件模块的功能逻辑代码及该功能逻辑代码的入口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510992659.4A CN105607935B (zh) | 2015-12-24 | 2015-12-24 | 应用程序更新方法及其终端、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510992659.4A CN105607935B (zh) | 2015-12-24 | 2015-12-24 | 应用程序更新方法及其终端、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105607935A CN105607935A (zh) | 2016-05-25 |
CN105607935B true CN105607935B (zh) | 2019-12-13 |
Family
ID=55987889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510992659.4A Active CN105607935B (zh) | 2015-12-24 | 2015-12-24 | 应用程序更新方法及其终端、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105607935B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131612B (zh) * | 2016-06-30 | 2019-03-05 | 武汉斗鱼网络科技有限公司 | 安卓app动态加载资源功能模块的方法及*** |
CN107315606A (zh) | 2017-06-14 | 2017-11-03 | 北京小米移动软件有限公司 | 应用更新方法及装置 |
CN109388066A (zh) * | 2017-08-04 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 用于处理容器的方法、装置和*** |
CN108108181B (zh) * | 2017-12-14 | 2022-03-01 | 深圳市雷鸟网络传媒有限公司 | 应用程序的功能更新方法、装置及计算机可读存储介质 |
CN110457052A (zh) * | 2018-05-08 | 2019-11-15 | 优酷网络技术(北京)有限公司 | 应用升级方法及装置 |
CN108829421A (zh) * | 2018-06-20 | 2018-11-16 | 合肥美的电冰箱有限公司 | 升级冰箱控制器软件的方法和***以及冰箱和存储介质 |
CN109379337B (zh) * | 2018-09-18 | 2021-01-26 | 四川长虹电器股份有限公司 | 一种安卓平台下应用进程的保活方法 |
CN109634682B (zh) * | 2018-11-29 | 2022-02-15 | 恒生电子股份有限公司 | 应用程序的配置文件更新方法及装置 |
CN111026424A (zh) * | 2019-12-10 | 2020-04-17 | 中国银行股份有限公司 | 一种服务更新方法及装置 |
CN111427612A (zh) * | 2020-04-15 | 2020-07-17 | 赞同科技股份有限公司 | 资源索引的校验方法及*** |
CN111857772B (zh) * | 2020-06-29 | 2023-06-09 | 湖南中联重科智能技术有限公司 | 终端边缘应用程序远程传输及动态加载方法及设备 |
CN111913730A (zh) * | 2020-07-15 | 2020-11-10 | 上海莉莉丝科技股份有限公司 | 用户无感的应用程序内更新方法及用户端、程序服务器 |
CN112486520A (zh) * | 2020-12-07 | 2021-03-12 | 深圳市欢太科技有限公司 | 应用程序升级方法及其装置、移动终端和服务器 |
CN113885894B (zh) * | 2021-09-15 | 2023-12-12 | 南京海泰医疗信息***有限公司 | 一种基于电子病历产品后台的打包和更新方法和*** |
CN114138616A (zh) * | 2022-02-07 | 2022-03-04 | 国网北京市电力公司 | 终端配置修改***及方法 |
CN114579206B (zh) * | 2022-03-17 | 2023-03-28 | 重庆紫光华山智安科技有限公司 | 动态加载应用程序的方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777317A (zh) * | 2005-12-16 | 2006-05-24 | 北京金山软件有限公司 | 一种实现无线终端程序更新的方法 |
CN102945182A (zh) * | 2012-12-06 | 2013-02-27 | 北京奇虎科技有限公司 | 应用程序更新方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006110991A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
-
2015
- 2015-12-24 CN CN201510992659.4A patent/CN105607935B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777317A (zh) * | 2005-12-16 | 2006-05-24 | 北京金山软件有限公司 | 一种实现无线终端程序更新的方法 |
CN102945182A (zh) * | 2012-12-06 | 2013-02-27 | 北京奇虎科技有限公司 | 应用程序更新方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105607935A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105607935B (zh) | 应用程序更新方法及其终端、服务器 | |
CN108241500B (zh) | 一种硬件组件的修复方法、装置、***和存储介质 | |
CN107346252B (zh) | 应用更新方法和装置 | |
US7747995B2 (en) | Method and system for controlling software version updates | |
KR101238511B1 (ko) | 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신 | |
CN103283209B (zh) | 一种应用服务平台***及其实现方法 | |
CN101248427B (zh) | 利用移动通信设备进行内容/上下文相关扫描的***、方法 | |
CN1939042B (zh) | 用于移动通信框架内的独立平台扫描子***应用程序接口 | |
CN105302587B (zh) | 数据更新方法及装置 | |
CN105074718A (zh) | 具有多个分析仪模型提供商的移动设备中的在线行为分析引擎 | |
CN105389222A (zh) | 一种动态调用原生接口的方法、装置和*** | |
CN102355500B (zh) | 业务推送方法和装置 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及*** | |
CN108235763B (zh) | 检测***、方法及相关装置 | |
CN111125175B (zh) | 业务数据的查询方法和装置、存储介质、电子装置 | |
JP2013517578A (ja) | アプリケーションの稼働方法、装置及びシステム | |
KR20050089072A (ko) | 모바일 장치들 상의 라이브러리들을 공유하기 위한 방법 및장치 | |
CN104063239A (zh) | 移动终端的应用程序更新方法及服务器、客户端 | |
CN105988846B (zh) | 页面加载方法及页面加载装置 | |
CN104580203A (zh) | 网站恶意程序检测方法及装置 | |
US20080027945A1 (en) | Methods, systems and computer program products for downloading a Java application based on identification of supported classes | |
CN104966002A (zh) | 识别虚假移动终端的方法和装置 | |
CN104573489A (zh) | 禁止应用创建桌面图标的方法及装置 | |
CN110928547A (zh) | 公共文件的提取方法、装置、终端和存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 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. |