应用程序的功能更新方法、装置及计算机可读存储介质与流程

文档序号:14571729发布日期:2018-06-01 22:35阅读:133来源:国知局
应用程序的功能更新方法、装置及计算机可读存储介质与流程

本发明涉计算机技术领域,尤其涉及一种应用程序的功能更新方法、装置及计算机可读存储介质。



背景技术:

目前安卓系统的App(Application,应用程序)更新升级的方法是:下载新版本APK(Android Package,安卓应用程序安装包),安装新版本APK,同时覆盖旧版本的APK。而一个应用程序通常包括多个功能模块,现有技术中一个安卓应用程序的任何一个模块BUG的修改,都需要对整个应用程序进行升级,即使该应用程序中有些功能模块没有BUG问题,也会被下载的新版本APK安装解压之后覆盖掉,造成数据资源以及带宽的浪费。



技术实现要素:

本发明的主要目的在于提供一种应用程序的功能更新方法、装置及计算机可读存储介质,旨在解决如何对安卓应用程序中的单个功能模块进行升级的问题。

为实现上述目的,本发明提出一种应用程序的功能更新方法,所述应用程序包括多个功能模块,各功能模块具有不同的第一模块标识,所述应用程序的功能更新方法包括:

在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;

将所述第二模块标识与各第一模块标识进行匹配,将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;

将所述模块升级配置文件保存至相应的目标功能模块的升级目录下;

加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

优选地,所述在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识,具体包括:

在安卓操作系统获取模块升级配置文件时,对所述模块升级配置文件进行解析,获得所述模块升级配置文件的第二模块标识和升级版本;

相应地,所述将所述模块升级配置文件保存至相应的目标功能模块的升级目录下,具体包括:

判断所述升级目录下是否存在历史配置文件;

若所述升级目录存在历史配置文件,则获取历史配置文件的历史版本;

将所述历史版本信息与所述升级版本信息进行比较,在比较结果满足预设条件时,删除所述升级目录下的历史配置文件,并将所述模块升级配置文件保存至所述升级目录。

优选地,所述判断所述升级目录下是否存在历史配置文件之后,所述方法还包括:

在所述升级目录不存在历史配置文件时,将所述模块升级配置文件保存至所述升级目录。

优选地,所述在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识之前,所述方法还包括:

从服务器下载所述应用程序的模块升级包;

对所述模块升级包进行解析,获得模块升级配置文件。

优选地,所述从服务器下载所述应用程序的模块升级包之前,所述方法还包括:

接收服务器发送的更新信息;

相应地,所述从服务器下载所述应用程序的模块升级包,具体包括:

根据所述更新信息从所述服务器下载与所述应用程序的模块升级包。

优选地,所述接收服务器发送的更新信息之后,所述方法还包括:

对所述更新信息进行展示;

响应于用户基于所述更新信息输入的升级确认指令,执行所述根据所述更新信息从所述服务器下载与所述应用程序的模块升级包的步骤。

优选地,所述加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新,具体包括:

通过所述安卓操作系统的DexClassLoader类加载器加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

优选地,所述加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新之后,所述方法还包括:

响应于用户输入的模块初始化指令,确定与所述模块初始化指令对应的待还原功能模块以及所述待还原功能模块的初始配置文件;

加载所述初始配置文件以对所述待还原模块进行初始化设置。

此外为实现上述目的,本发明还提供一种应用程序的功能更新装置,所述应用程序的功能更新装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序的功能更新程序,所述应用程序的功能更新程序配置为实现如上所述的应用程序的功能更新方法的步骤。

此外为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序的功能更新程序,所述应用程序的功能更新程序被处理器执行时实现如上所述的应用程序的功能更新方法的步骤。

本发明首先在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;然后将所述第二模块标识与各第一模块标识进行匹配,并将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;最后将所述模块升级配置文件保存至相应的目标功能模块的升级目录下,并加载所述升级目录下的模块升级配置文件,以实现针对所述应用程序的单个功能模块的更新,每个模块升级配置文件对应一个需要更新的功能模块,用户无需下载整个应用程序的安装包,缩短了应用程序的更新时间,减少网络带宽的浪费,可降低因整体更新升级不当而导致的升级事故,提高了用户体验。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的应用程序的功能更新装置的结构示意图;

图2为本发明一种应用程序的功能更新方法的第一实施例流程示意图;

图3为本发明一种应用程序的功能更新方法的第二实施例流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的一种应用程序的功能更新装置的结构示意图。

如图1所示,所述应用程序的功能更新装置可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以是USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器。所述应用程序的功能更新装置表征为一种基于安卓操作系统的终端设备,所述终端设备包括应用程序的功能更新程序。

本领域技术人员可以理解,图1中示出的所述装置结构并不构成对所述应用程序的功能更新装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,所述存储器1005中可以包括操作系统、网络接口模块、用户接口模块以及应用程序的功能更新程序,所述应用程序包括多个功能模块,各功能模块具有不同的第一模块标识,所述装置通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,并执行以下操作:

在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;

将所述第二模块标识与各第一模块标识进行匹配,将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;

将所述模块升级配置文件保存至相应的目标功能模块的升级目录下;

加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

在安卓操作系统获取模块升级配置文件时,对所述模块升级配置文件进行解析,获得所述模块升级配置文件的第二模块标识和升级版本;

相应地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

判断所述升级目录下是否存在历史配置文件;

若所述升级目录存在历史配置文件,则获取历史配置文件的历史版本;

将所述历史版本信息与所述升级版本信息进行比较,在比较结果满足预设条件时,删除所述升级目录下的历史配置文件,并将所述模块升级配置文件保存至所述升级目录。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

在所述升级目录不存在历史配置文件时,将所述模块升级配置文件保存至所述升级目录。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

从服务器下载所述应用程序的模块升级包;

对所述模块升级包进行解析,获得模块升级配置文件。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

接收服务器发送的更新信息;

相应地,所述从服务器下载所述应用程序的模块升级包,具体包括:

根据所述更新信息从所述服务器下载与所述应用程序的模块升级包。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

对所述更新信息进行展示;

响应于用户基于所述更新信息输入的升级确认指令,执行所述根据所述更新信息从所述服务器下载与所述应用程序的模块升级包的步骤。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

通过所述安卓操作系统的DexClassLoader类加载器加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

进一步地,所述应用程序的功能更新装置可通过处理器1001调用存储器1005中存储的应用程序的功能更新程序,还执行以下操作:

响应于用户输入的模块初始化指令,确定与所述模块初始化指令对应的待还原功能模块以及所述待还原功能模块的初始配置文件;

加载所述初始配置文件以对所述待还原模块进行初始化设置。

本实施例首先在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;然后将所述第二模块标识与各第一模块标识进行匹配,并将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;最后将所述模块升级配置文件保存至相应的目标功能模块的升级目录下,并加载所述升级目录下的模块升级配置文件,以实现针对所述应用程序的单个功能模块的更新,每个模块升级配置文件对应一个需要更新的功能模块,用户无需下载整个应用程序的安装包,缩短了应用程序的更新时间,减少网络带宽的浪费,可降低因整体更新升级不当而导致的升级事故,提高了用户体验。

基于上述硬件结构,提出本发明一种应用程序的功能更新方法实施例。

参照图2,图2为本发明一种应用程序的功能更新方法的第一实施例的流程示意图。

本实施例中,所述应用程序包括多个功能模块,各功能模块具有不同的第一模块标识,所述应用程序的功能更新方法包括以下步骤:

步骤S10:在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;

需要说明的是,本实施的执行主体可以是基于安卓操作系统的终端设备的处理器,本实施例以手机作为所述安卓操作系统的终端设备为例进行说明。

可理解的是,安卓手机应用程序APP通常会有多个功能模块,例如一个电商应用程序APP就会有至少包括买家模块、卖家模块、登陆模块等等功能模块,不同的功能模块会具有不同的第一模块标识以对各功能模块进行区分,例如买家模块的第一模块标识可以是BuyModule,卖家模块的第一模块标识可以是SellModule,登陆模块的第一模块标识可以是LoginModule,以上各个模块可以以JAR格式打包成初始模块配置文件configFile存放在该应用程序的asset(资产)目录下;在应用程序初始化时,用户在使用该应用程序的时候,安卓手机的处理器可以通过安卓操作系统的DexClassLoader类加载器加载所述asset目录下的初始模块配置文件configFile,利用JAVA的反射机制,获取初始模块配置文件configFile中预定义的接口类以及该接口类对应的各种方法。

而在具体实现中,当所述应用程序需要升级更新的时候,通常客户端(即所述应用程序)所对应的服务器会向所述安卓手机发送一个更新信息,以通知用户需要下载一个模块升级包,该模块升级包具体可以是通过MD5(Message Digest Algorithm MD5,消息摘要算法)进行加密后的升级包。当安卓手机从服务器下载所述应用程序的模块升级包之后,会对所述模块升级包进行解析,获得模块升级配置文件。相应地,所述模块升级配置文件也是以JAR格式打包成的配置文件,例如该文件可以表示为XXXModuleImpUpdate.cnf,所述模块升级配置文件里包括预定义的接口类以及该接口类对应的各种方法。需要说明的是,本实施例中,每个模块升级配置文件只对应所述应用程序中的一个需要更新的功能模块。

假如所述应用程序的某个功能模块需要更新,那么服务器会发送一个包含了需要更新升级功能模块的模块升级配置文件的升级包,所述模块升级配置文件具体表示为LoginModuleImpUpdate.cnf,那么这个模块升级配置文件所对应的第二模块标识为LoginModuleImp。

步骤S20:将所述第二模块标识与各第一模块标识进行匹配,将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;

可理解的是,处理器在获取所述模块升级配置文件的第二模块标识LoginModuleImp后,会将第二模块标识LoginModuleImp与各个功能模块的第一模块标识比较匹配,最后将与所述第二模块标识LoginModuleImp匹配的第一模块标识LoginModule所对应的登录功能模块作为目标功能模块。

步骤S30:将所述模块升级配置文件保存至相应的目标功能模块的升级目录下;

可理解的是,应用程序的初始模块配置文件configFile会存放在该应用程序的asset目录下,用于接收用户输入的模块初始化指令以还原成出厂设置;而应用程序的各个功能模块分别对应一个升级目录,用于保存模块升级配置文件。

步骤S40:加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

在具体实现中,安卓手机的处理器会通过安卓操作系统的DexClassLoader类加载器动态加载所述升级目录下的模块升级配置文件,利用JAVA的反射机制,获取所述模块升级配置文件里的预定义的接口类以及该接口类对应的各种方法,以实现所述目标功能模块所对应的功能更新。

进一步地,在所述步骤S10之前,所述方法还包括:接收服务器发送的更新信息,对所述更新信息进行展示,这样可以提升用户是否需要升级,如果用户需要升级,本实施例的安卓手机处理器会响应于用户基于所述更新信息输入的升级确认指令,执行所述根据所述更新信息从所述服务器下载与所述应用程序的模块升级包的步骤。

本实施例首先在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;然后将所述第二模块标识与各第一模块标识进行匹配,并将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;最后将所述模块升级配置文件保存至相应的目标功能模块的升级目录下,并加载所述升级目录下的模块升级配置文件,以实现针对所述应用程序的单个功能模块的更新,每个模块升级配置文件对应一个需要更新的功能模块,用户无需下载整个应用程序的安装包,缩短了应用程序的更新时间,减少网络带宽的浪费,可降低因整体更新升级不当而导致的升级事故,提高了用户体验。

参照图3,图3为本发明一种应用程序的功能更新方法的第二实施例的流程示意图,基于图2提出本发明一种应用程序的功能更新方法的第二实施例。

本实施例中,所述步骤S10具体包括:

步骤S101:在安卓操作系统获取模块升级配置文件时,对所述模块升级配置文件进行解析,获得所述模块升级配置文件的第二模块标识和升级版本;

可理解的是,本实施例中,若所述应用程序需要更新时,服务器端会向各个安装了所述(客户端)应用程序的终端设备发送更新信息,以通知用户需要下载对应的包含了模块升级配置文件XXXModuleImpUpdate.cnf(比如需要更新的是登陆功能模块,那么模块升级配置文件为LoginModuleImpUpdate.cnf)的模块升级包,其中,所述模块升级配置文件中包括对应升级版本。

相应地,所述步骤S30,具体包括:

步骤S301:判断所述升级目录下是否存在历史配置文件;

可理解的是,所述应用程序的目标功能模块此前可能不止更新过一次,也有可能是第一次需要更新,那么处理器首先需要判断所述目标功能模块的升级目录下是否存在本次更新前下载过的模块升级配置文件即历史配置文件;

若所述升级目录存在历史配置文件,则执行所述步骤S302,继而执行所述步骤303。若所述升级目录不存在历史配置文件,则直接执行所述步骤S320中将所述模块升级配置文件保存至所述升级目录的步骤。

步骤S320:在所述升级目录不存在历史配置文件时,将所述模块升级配置文件保存至所述升级目录。

在具体实现中,所述升级目录不存在历史配置文件时,将所述模块升级配置文件XXXModuleImpUpdate.cnf保存至所述升级目录,并将所述模块升级配置文件重命名为XXXModuleImpOK.cnf。最终处理器通过安卓操作系统的DexClassLoader类加载器动态加载所述升级目录下的模块升级配置文件XXXModuleImpOK.cnf,利用JAVA的反射机制,获取所述模块升级配置文件XXXModuleImpOK.cnf里预定义的接口类以及该接口类对应的各种方法,以实现所述目标功能模块的更新。

步骤S302:若所述升级目录存在历史配置文件,则获取历史配置文件的历史版本;

可理解的是,若所述升级目录存在历史配置文件XXXModuleImpOK.cnf,则获取历史配置文件XXXModuleImpOK.cnf的历史版本;

步骤S303:将所述历史版本信息与所述升级版本信息进行比较,在比较结果满足预设条件时,删除所述升级目录下的历史配置文件,并将所述模块升级配置文件保存至所述升级目录。

在具体实现中,将历史配置文件XXXModuleImpOK.cnf的历史版本与所述模块升级配置文件XXXModuleImpUpdate.cnf的升级版本进行比较,本实施例中,若所述升级版本的版本号高于所述历史版本的版本号,则删除所述历史配置文件XXXModuleImpOK.cnf,并将所述模块升级配置文件XXXModuleImpUpdate.cnf保存至所述目标模块的升级目录下,并将所述模块升级配置文件重命名为XXXModuleImpOK.cnf。同理,最终处理器会通过安卓操作系统的DexClassLoader类加载器动态加载所述升级目录下的模块升级配置文件XXXModuleImpOK.cnf,利用JAVA的反射机制,获取所述模块升级配置文件XXXModuleImpOK.cnf里预定义的接口类以及该接口类对应的各种方法,以实现所述目标功能模块的更新。

本实施例在安卓操作系统获取模块升级配置文件时,获得所述模块升级配置文件的第二模块标识和升级版本,再判断目标模块的升级目录下是否存在历史配置文件,若所述升级目录不存在历史配置文件,则直接将模块升级配置文件保存至升级目录;若升级目录存在历史配置文件,则获取历史配置文件的历史版本,将历史版本信息与升级版本信息进行比较,若比较结果满足预设条件时,则通过所述模块升级配置文件对所述升级目录下的历史模块升级配置进行覆盖,通过比较模块升级配置文件与历史模块升级配置之间的版本,保证了所述模块升级配置文件的准确性。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序的功能更新程序,所述应用程序的功能更新程序被处理器执行时实现如下操作:

在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;

将所述第二模块标识与各第一模块标识进行匹配,将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;

将所述模块升级配置文件保存至相应的目标功能模块的升级目录下;

加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

在安卓操作系统获取模块升级配置文件时,对所述模块升级配置文件进行解析,获得所述模块升级配置文件的第二模块标识和升级版本;

相应地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

判断所述升级目录下是否存在历史配置文件;

若所述升级目录存在历史配置文件,则获取历史配置文件的历史版本;

将所述历史版本信息与所述升级版本信息进行比较,在比较结果满足预设条件时,删除所述升级目录下的历史配置文件,并将所述模块升级配置文件保存至所述升级目录。

相应地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

在所述升级目录不存在历史配置文件时,将所述模块升级配置文件保存至所述升级目录。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

从服务器下载所述应用程序的模块升级包;

对所述模块升级包进行解析,获得模块升级配置文件。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

接收服务器发送的更新信息;

相应地,所述从服务器下载所述应用程序的模块升级包,具体包括:

根据所述更新信息从所述服务器下载与所述应用程序的模块升级包。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

对所述更新信息进行展示;

响应于用户基于所述更新信息输入的升级确认指令,执行所述根据所述更新信息从所述服务器下载与所述应用程序的模块升级包的步骤。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

通过所述安卓操作系统的DexClassLoader类加载器加载所述升级目录下的模块升级配置文件,以实现应用程序的功能更新。

进一步地,所述应用程序的功能更新程序被处理器执行时还实现如下操作:

响应于用户输入的模块初始化指令,确定与所述模块初始化指令对应的待还原功能模块以及所述待还原功能模块的初始配置文件;

加载所述初始配置文件以对所述待还原模块进行初始化设置。

本实施例首先在安卓操作系统获取到模块升级配置文件时,确定所述模块升级配置文件对应的第二模块标识;然后将所述第二模块标识与各第一模块标识进行匹配,并将与所述第二模块标识匹配的第一模块标识所对应的功能模块作为目标功能模块;最后将所述模块升级配置文件保存至相应的目标功能模块的升级目录下,并加载所述升级目录下的模块升级配置文件,以实现针对所述应用程序的单个功能模块的更新,每个模块升级配置文件对应一个需要更新的功能模块,用户无需下载整个应用程序的安装包,缩短了应用程序的更新时间,减少网络带宽的浪费,可降低因整体更新升级不当而导致的升级事故,提高了用户体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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