一种基于Android平台的应用升级方法及系统、存储介质与流程

文档序号:19827808发布日期:2020-02-04 12:04阅读:188来源:国知局
一种基于Android平台的应用升级方法及系统、存储介质与流程

本发明涉及软件通信技术领域,尤其涉及一种基于android平台的应用升级方法及系统、存储介质。



背景技术:

在android平台中,安装路径在/data/app/目录下,此类应用具有可由用户安装/卸载、用户可进行覆盖安装、无法随系统升级而升级的特点。

目前大多数android平台终端厂商在定制android系统时,会在系统中预置一些应用,预置的应用根据能否卸载可分为系统应用(不可卸载)和普通应用(可卸载)。预置的系统应用在进行系统升级时可一起升级;而预置的普通应用在系统升级时则不会随系统升级一并升级,需要用户独立升级,给用户带来一定不便,并在某些使用场景下无法符合需求。

现有技术中,预置的普通应用,用户可以通过应用商店更新,但操作麻烦,影响体验。

因此现有技术还有待于进一步发展。



技术实现要素:

针对上述技术问题,本发明实施例提供了一种基于android平台的应用升级方法及系统,能够解决现有技术中现有的android平台在系统升级时不会升级预置单独普通应用的技术问题。

本发明实施例的第一方面提供一种基于android平台的应用升级方法,用于升级系统时升级普通应用,包括:

获取android系统的开机信息,判断当前android系统是否为升级成功后的重启开机;

若当前android系统是android系统升级成功后的重启开机,则获取记录文件b中记录的安装包信息、指定文件夹a内的安装包信息、以及获取已安装应用的安装信息;其中所述指定文件夹a为android系统目录下自定义目录文件夹;

将指定文件夹a内的安装包信息分别与已安装应用的安装信息、记录文件b中记录的安装信息匹配;

根据匹配结果在后台进行应用升级或对安装包静默安装。

可选地,所述方法还包括:

在编译系统时将普通应用的安装包编译到将指定文件夹a,所述指定文件夹a为系统目录下自定义文件夹;

创建记录文件b,所述记录文件b用于记录android系统中新增安装包的包名或删除安装包的包名。

可选地,将指定文件夹a内的安装包信息与已安装应用的安装信息匹配,包括:

逐个将获取到的指定文件夹a下安装包的包名与已安装应用的包名进行匹配,逐个将获取到的指定文件夹a下安装包的版本号与已安装应用的版本号进行对比,

如果指定文件夹a下的安装包与已安装已应用的包名相同,且所述指定文件夹a下的安装包版本号高,则对所述安装包进行后台静默安装。

可选地,将指定文件夹a内的安装包信息与记录文件b中记录的安装信息匹配,包括:

根据记录文件b中记录的信息,如果目录文件a内的安装包是新增安装包,则后台静默安装该安装包;如果目录文件a内的安装包是已被删除的安装包,则根据需求决定是否要静默卸载系统中已安装的安装包对应的应用。

可选地,判断当前android系统是否为升级成功后的重启开机,包括:

检测到android系统升级成功后,在缓存目录中生成升级记录文件,通过检测所述升级记录文件判断系统是否升级成功后的重启开机;其中,所述升级记录文件中包括识别系统升级成功的标识值。

本发明实施例第二方面提供了一种基于android平台的应用升级系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:

获取android系统的开机信息,判断当前android系统是否为升级成功后的重启开机;

若当前android系统是android系统升级成功后的重启开机,则获取记录文件b中记录的安装包信息、指定文件夹a内的安装包信息、以及获取已安装应用的安装信息;其中所述指定文件夹a为android系统目录下自定义目录文件夹;

将指定文件夹a内的安装包信息分别与已安装应用的安装信息、记录文件b中记录的安装信息匹配;

根据匹配结果在后台进行应用升级或对安装包静默安装。

可选地,所述计算机程序被所述处理器执行时还实现以下步骤:

在编译系统时将普通应用的安装包编译到将指定文件夹a,所述指定文件夹a为系统目录下自定义文件夹;

创建记录文件b,所述记录文件b用于记录android系统中新增安装包的包名或删除安装包的包名。

可选地,所述计算机程序被所述处理器执行时还实现以下步骤:

逐个将获取到的指定文件夹a下安装包的包名与已安装应用的包名进行匹配,逐个将获取到的指定文件夹a下安装包的版本号与已安装应用的版本号进行对比,

如果指定文件夹a下的安装包与已安装已应用的包名相同,且所述指定文件夹a下的安装包版本号高,则对所述安装包进行后台静默安装。

可选地,所述计算机程序被所述处理器执行时还实现以下步骤:

根据记录文件b中记录的信息,如果目录文件a内的安装包是新增安装包,则后台静默安装该安装包;如果目录文件a内的安装包是已被删除的安装包,则根据需求决定是否要静默卸载系统中已安装的安装包对应的应用。

本发明实施例第三方面提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于android平台的应用升级方法。

本发明实施例提供的技术方案中,将指定文件夹a内的安装包信息分别与已安装应用的安装信息、记录文件b中记录的安装信息匹配,根据匹配结果判断是否在后台进行静默安装或升级应用。解决了android平台在进行升级系统时不会升级预安装的普通应用的问题,使android平台终端在进行系统升级时能够同时升级多个的普通应用,拓展了android平台终端系统升级的使用场景。

附图说明

图1为本发明实施例中一种基于android平台的应用升级方法的一实施例的流程示意图;

图2为本发明实施例中一种基于android平台的应用升级系统的一实施例的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下结合附图对本发明实施例进行详细的描述。

请参阅图1,图1为本发明实施例中一种基于android平台的应用升级方法的一个实施例的流程示意图。本发明实施例的基于android平台的应用升级方法应用于升级系统时升级普通应用,如图1所示,包括:

步骤s100、获取android系统的开机信息,判断当前android系统是否为升级成功后的重启开机。

步骤s200、若当前android系统是android系统升级成功后的重启开机,则获取记录文件b中记录的安装包信息、指定文件夹a内的安装包信息、以及获取已安装应用的安装信息;其中所述指定文件夹a为android系统目录下自定义目录文件夹。

步骤s300、将指定文件夹a内的安装包信息分别与已安装应用的安装信息、记录文件b中记录的安装信息匹配。

步骤s400、根据匹配结果在后台进行应用升级或对安装包静默安装。

具体的,步骤一:准备工作。

在编译系统前,做以下准备工作:

1)修改系统的编译规则,使编译出来的系统固件的/system/目录下能够生成自定义目录a。根据android的系统升级机制,这个自定义目录a以及目录a下包含的内容在系统升级时会得到更新且更新到升级的目标版本的内容;

2)准备需要预置的普通应用的安装包,并修改系统编译规则将这些安装包编译到自定义目录a下;

3)创建文件b,并修改编译规则将文件b编译到自定义目录a下,该文件b用于记录目前要编译的版本相对升级前的版本有哪些预置应用是新增的,哪些预置应用是已经删除的;

4)修改系统代码,使目录a具有访问权限。

步骤二:编译系统和升级包。

在编译android系统固件过程中,使用编译脚本将普通应用的安装包(apk文件)编译到系统system目录下某个自定义的a目录中,这个目录在编译的最后会打包的system.img中(使用升级包升级android系统时会升级system.img从而更新a目录中的内容)。编译系统固件完成后再编译系统升级包。

步骤三:正常开机或者使用升级包进行升级。

使用升级包进行升级后系统会重启,在正常开机或者重启完成的情况下,系统会发送开机完成的广播。在系统中创建一个后台服务用于接收开机完成的广播。当此服务接收到开机完成广播后,先判断是否是系统升级成功后的重启。

具体地,android系统升级成功后,在缓存目录中生成升级记录文件;所述升级记录文件中包括识别系统升级成功的标识值。

android系统自带检测是否系统升级后重启的流程,以判断当前android系统是否是android系统升级成功后的重启开机。而在系统升级成功后,会在/cache/recovery/目录下生成升级所述标识值,通过判定是否有该升级记录文件以及该升级记录文件里的标识值就能判断是否升级成功。

另外,若当前android系统不是android系统升级成功后的重启开机,则不对普通应用进行升级。

进一步地,如果是系统升级成功后的重启,先获取apk信息、b文件信息、已安装应用信息,然后再进行静默安装升级,完成后删除升级记录文件。

在编译系统时将普通应用的安装包编译到将指定文件夹a,所述指定文件夹a为系统目录下自定义文件夹。

在指定文件夹a的目录中创建记录文件b,所述记录文件b用于记录android系统中新增安装包的包名或删除安装包的包名;即该文件用于记录目前的版本相对以前有哪些安装包是新增的以及删除了哪些安装包。其中,安装包有更新的不计入内,记录的内容为安装包和安装包对应的包名。

之后再调用系统获取所有已安装应用的接口获取已安装应用的安装信息,即获取android系统已经安装的普通应用的包名与版本号。

逐个将获取到的指定文件夹a下安装包的包名与已安装应用的包名进行匹配,逐个将获取到的指定文件夹a下安装包的版本号与已安装应用的版本号进行对比;如果指定文件夹a下的安装包与已安装已应用的包名相同,且所述指定文件夹a下的安装包版本号高,则对所述安装包进行后台静默安装。

与记录文件b中记录的安装信息相比,如果目录文件a内的安装包是新增安装包,则后台静默安装该安装包;如果目录文件a内的安装包是已被删除的安装包,则厂商可以根据需求决定是否要静默卸载系统中已安装的安装包对应的应用。

由以上方法实施例可知,本发明提供了一种基于android平台的应用升级方法,检测到android系统升级指令,将普通应用安装包编译至系统升级目录下的指定文件夹a下;编译系统升级包,根据系统升级包升级android系统;若当前android系统是android系统升级成功后的重启开机,则获取记录文件b中记录的安装包信息、指定文件夹a内的安装包信息、以及获取已安装应用的安装信息。在系统开机后,根据匹配结果在后台进行静默应用更新或安装包安装,因此相对于现有技术,本发明实施例解决了android平台在进行升级系统时不会升级预安装的普通应用的问题,使android平台终端在进行系统升级时能够同时升级预安装的普通应用,拓展了android平台终端系统升级的使用场景。

如图2所示,本发明还提供一种基于android平台的应用升级系统,所述系统10包括:存储器102、处理器101及存储在所述存储器102上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:

获取android系统的开机信息,判断当前android系统是为或升级成功后的重启开机;

若当前android系统是android系统升级成功后的重启开机,则获取记录文件b中记录的安装包信息、指定文件夹a内的安装包信息、以及获取已安装应用的安装信息;其中所述指定文件夹a为android系统目录下自定义目录文件夹;

将指定文件夹a内的安装包信息分别与已安装应用的安装信息、记录文件b中记录的安装信息匹配;

根据匹配结果在后台进行应用升级或对安装包静默安装。

所述计算机程序被所述处理器执行时还实现以下步骤:

在编译系统时将普通应用的安装包编译到将指定文件夹a,所述指定文件夹a为系统目录下自定义文件夹;

创建记录文件b,所述记录文件b用于记录android系统中新增安装包的包名或删除安装包的包名。

逐个将获取到的指定文件夹a下安装包的包名与已安装应用的包名进行匹配,逐个将获取到的指定文件夹a下安装包的版本号与已安装应用的版本号进行对比,

如果指定文件夹a下的安装包与已安装已应用的包名相同,且所述指定文件夹a下的安装包版本号高,则对所述安装包进行后台静默安装。

根据记录文件b中记录的信息,如果目录文件a内的安装包是新增安装包,则后台静默安装该安装包;如果目录文件a内的安装包是已被删除的安装包,则厂商可以根据需求决定是否要静默卸载系统中已安装的安装包对应的应用。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s400。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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