对支撑层软件功能的访问、升级方法及装置制造方法及图纸

技术编号:16326877 阅读:32 留言:0更新日期:2017-09-29 18:53
本申请公开了一种对支撑层软件功能的访问方法及装置,同时公开了一种对支撑层软件功能的升级方法及装置,以及一种对支撑层动态升级程序的管理方法及装置。所述对支撑层软件功能的访问方法包括:接收应用程序对支撑层功能接口的访问请求;执行对应于所述功能接口的升级代码;其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。上述方法,在接收应用程序对功能接口的访问请求后,执行利用进程合并机制注入的升级代码,即,在没有采用传统OTA方式进行升级的情况下,应用程序依然可以访问到升级后的支撑层软件功能,从而能够及时地为用户提供更为完善的功能。

【技术实现步骤摘要】
对支撑层软件功能的访问、升级方法及装置
本申请涉及系统软件技术,具体涉及一种对支撑层软件功能的访问方法及装置。本申请同时涉及一种对支撑层软件功能的升级方法及装置,以及一种对支撑层动态升级程序的管理方法及装置。
技术介绍
运行在移动设备上的系统软件升级通常采用OTA(Over-The-Air)在线更新的方式,采用这种方式,移动设备软件开发方通常需要维护版本变更历史,为移动设备制作各个版本之间的全量和增量升级包并推送给使用移动设备的用户。其中,增量升级包要求软件开发方维护所有版本间的差异,并为各个版本提供差分升级包,然而由于移动设备上的系统软件发展变化迅速,用户在使用一段时间后,系统软件已经发布多个版本,通常难以匹配到最新版本和当前版本的差分包,只能更新全量包升级。因此获取全量升级包进行系统软件升级成为一种比较普遍采用的方式。移动设备的系统软件通常采用分层的结构,其中通常包括为应用程序提供服务的支撑层软件,支撑层软件由于承担了为应用程序构建运行环境,提供系统服务的重要职责,具有较强的升级需求。以移动操作系统Android或者YunOS为例,为应用程序提供服务的支撑层通常是指框架层(framework),框架层包含开发应用程序所需的一系列组件,每个组件都可以实现一组功能(例如:与拨打电话相关的功能等)、并对外提供相应的功能接口(即API)。应用程序需要实现某一功能时可以根据需求访问框架层提供的功能接口,框架层则根据接收到的请求,执行当前已安装的框架层功能接口的实现代码。基于上述对支撑层功能接口的常规访问方式,为了使应用程序能够访问到升级后的支撑层软件功能,通常需要下载系统软件的全量升级包进行安装。在实际应用中存在以下情况:1)全量升级包的体积通常较大,在几百兆到几GB字节之间,经常出现因为移动设备存储空间不足导致下载更新失败的情况;2)不同移动设备软件开发方对框架层软件的修改存在较大差异,例如:功能接口数量、以及内部实现都可能不同,因此难以使用统一的系统软件更新版本对不同或者相同厂家的不同产品系列的支撑层软件功能进行升级。由此可见,由于传统OTA方式存在上述问题,支撑层软件功能通常无法得到及时地升级,应用程序自然无法及时访问到升级后的支撑层软件功能,导致应用程序能够实现的功能受到限制,影响用户的使用体验。
技术实现思路
本申请实施例提供一种对支撑层软件功能的访问方法和装置,以解决OTA升级方式下,应用程序无法及时访问到升级后的支撑层软件功能,导致应用程序实现功能受限的问题。本申请实施例还提供一种对支撑层软件功能的升级方法和装置,以及一种对支撑层动态升级程序的管理方法和装置。本申请提供一种对支撑层软件功能的访问方法,包括:接收应用程序对支撑层功能接口的访问请求;执行对应于所述功能接口的升级代码;其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。可选的,所述方法还包括:将所述升级代码的执行结果返回给所述应用程序。可选的,所述支撑层包括:框架层;所述支撑层功能接口包括:所述框架层中的组件提供的功能接口。可选的,包含所述升级代码的动态升级程序通过进程合并机制被注入到支撑层服务进程中,包括:在所述动态升级程序的配置文件中,指定运行所述动态升级程序的进程名称与所述支撑层服务进程一致;运行所述动态升级程序,以将其注入到所述支撑层服务进程中。可选的,所述功能接口的功能实现代码被设置为所述升级代码,是采用Hook方式实现的。可选的,在执行对应于所述功能接口的升级代码的过程中,还包括:调用在所述支撑层服务进程之外运行的功能扩展程序提供的功能扩展接口。可选的,对所述功能扩展接口的调用操作,是通过进程间通信机制实现的。可选的,所述动态升级程序,是在宿主系统中安装从服务端获取的、用于升级支撑层软件功能的动态升级软件包后生成的可执行程序。可选的,在执行对应于所述功能接口的升级代码的过程中,还包括:调用在所述支撑层服务进程之外动态加载运行的功能扩展程序提供的功能扩展接口;所述功能扩展程序,是在宿主系统中安装功能扩展软件包后生成的可执行程序,所述功能扩展软件包是从所述服务端获取所述动态升级软件包时一并获取的。相应的,本申请还提供一种对支撑层软件功能的访问装置,包括:访问请求接收单元,用于接收应用程序对支撑层功能接口的访问请求;升级代码执行单元,用于执行对应于所述功能接口的升级代码,其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。可选的,所述装置还包括:执行结果返回单元,用于将所述升级代码执行单元的执行结果返回给所述应用程序。可选的,所述升级代码执行单元,具体用于执行对应于所述功能接口的升级代码,并在执行所述升级代码的过程中调用在支撑层服务进程之外运行的功能扩展程序提供的功能扩展接口。可选的,所述升级代码执行单元,具体用于通过进程间通信机制实现对所述功能扩展接口的调用。此外,本申请还提供一种对支撑层软件功能的升级方法,包括:运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中;将支撑层待升级功能接口的功能实现代码设置为相应的升级代码。可选的,所述支撑层包括:框架层。可选的,所述运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中,采用如下方式实现:在所述动态升级程序的配置文件中,预先指定运行所述动态升级程序的进程名称与所述支撑层服务进程一致;运行所述动态升级程序,以将其注入到所述支撑层服务进程中。可选的,将支撑层待升级功能接口的功能实现代码设置为相应的升级代码的步骤,采用Hook方式实现。可选的,所述方法由所述支撑层服务进程在系统初始化阶段触发执行。可选的,所述支撑层服务进程在系统初始化阶段通过如下方式触发本方法执行:所述动态升级程序预先向系统注册以下需求:接收系统初始化阶段的预设消息;所述支撑层服务进程在系统初始化阶段广播所述预设消息,并根据所述动态升级程序预先注册的所述需求、触发本方法执行。可选的,所述系统初始化阶段的预设消息包括:开机完成消息。可选的,所述方法还包括:启动在所述支撑层服务进程之外运行的、为所述动态升级程序提供功能扩展服务的功能扩展程序。可选的,在触发本方法执行之前,包括:向服务端发送软件包获取请求,请求获取用于升级支撑层软件功能的软件包;根据服务端提供的信息获取软件包,其中至少包括动态升级软件包;通过安装已获取的软件包,生成至少包括所述动态升级程序的可执行程序。可选的,在所述根据服务端提供的信息获取软件包的步骤中,获取的不仅包括所述动态升级软件包,还包括功能扩展软件包;所述通过安装已获取的安装包生成的可执行程序,不仅包括所述动态升级程序,还包括为所述动态升级程序提供功能扩展服务的功能扩展程序。相应的,本申请还提供一种对支撑层软件功能的升级装置,包括:升级代码注入单元,用于运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中;升级代码替换单元,用于将支撑层待升级功能接口的功能实现代码设置为相应的升级代码。可选的,所述本文档来自技高网
...
对支撑层软件功能的访问、升级方法及装置

【技术保护点】
一种对支撑层软件功能的访问方法,其特征在于,包括:接收应用程序对支撑层功能接口的访问请求;执行对应于所述功能接口的升级代码;其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。

【技术特征摘要】
1.一种对支撑层软件功能的访问方法,其特征在于,包括:接收应用程序对支撑层功能接口的访问请求;执行对应于所述功能接口的升级代码;其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。2.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,还包括:将所述升级代码的执行结果返回给所述应用程序。3.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,所述支撑层包括:框架层;所述支撑层功能接口包括:所述框架层中的组件提供的功能接口。4.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,包含所述升级代码的动态升级程序通过进程合并机制被注入到支撑层服务进程中,包括:在所述动态升级程序的配置文件中,指定运行所述动态升级程序的进程名称与所述支撑层服务进程一致;运行所述动态升级程序,以将其注入到所述支撑层服务进程中。5.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,所述功能接口的功能实现代码被设置为所述升级代码,是采用Hook方式实现的。6.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,在执行对应于所述功能接口的升级代码的过程中,还包括:调用在所述支撑层服务进程之外运行的功能扩展程序提供的功能扩展接口。7.根据权利要求6所述的对支撑层软件功能的访问方法,其特征在于,对所述功能扩展接口的调用操作,是通过进程间通信机制实现的。8.根据权利要求1所述的对支撑层软件功能的访问方法,其特征在于,所述动态升级程序,是在宿主系统中安装从服务端获取的、用于升级支撑层软件功能的动态升级软件包后生成的可执行程序。9.根据权利要求8所述的对支撑层软件功能的访问方法,其特征在于,在执行对应于所述功能接口的升级代码的过程中,还包括:调用在所述支撑层服务进程之外动态加载运行的功能扩展程序提供的功能扩展接口;所述功能扩展程序,是在宿主系统中安装功能扩展软件包后生成的可执行程序,所述功能扩展软件包是从所述服务端获取所述动态升级软件包时一并获取的。10.一种对支撑层软件功能的访问装置,其特征在于,包括:访问请求接收单元,用于接收应用程序对支撑层功能接口的访问请求;升级代码执行单元,用于执行对应于所述功能接口的升级代码,其中,包含所述升级代码的动态升级程序通过进程合并机制被预先注入到支撑层服务进程中,并且所述功能接口的功能实现代码被设置为所述升级代码。11.根据权利要求10所述的对支撑层软件功能的访问装置,其特征在于,还包括:执行结果返回单元,用于将所述升级代码执行单元的执行结果返回给所述应用程序。12.根据权利要求10所述的对支撑层软件功能的访问装置,其特征在于,所述升级代码执行单元,具体用于执行对应于所述功能接口的升级代码,并在执行所述升级代码的过程中调用在支撑层服务进程之外运行的功能扩展程序提供的功能扩展接口。13.根据权利要求12所述的对支撑层软件功能的访问装置,其特征在于,所述升级代码执行单元,具体用于通过进程间通信机制实现对所述功能扩展接口的调用。14.一种对支撑层软件功能的升级方法,其特征在于,包括:运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中;将支撑层待升级功能接口的功能实现代码设置为相应的升级代码。15.根据权利要求14所述的对支撑层软件功能的升级方法,其特征在于,所述支撑层包括:框架层。16.根据权利要求14所述的对支撑层软件功能的升级方法,其特征在于,所述运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中,采用如下方式实现:在所述动态升级程序的配置文件中,预先指定运行所述动态升级程序的进程名称与所述支撑层服务进程一致;运行所述动态升级程序,以将其注入到所述支撑层服务进程中。17.根据权利要求14所述的对支撑层软件功能的升级方法,其特征在于,将支撑层待升级功能接口的功能实现代码设置为相应的升级代码的步骤,采用Hook方式实现。18.根据权利要求14所述的对支撑层软件功能的升级方法,其特征在于,所述方法由所述支撑层服务进程在系统初始化阶段触发执行。19.根据权利要求18所述的对支撑层软件功能的升级方法,其特征在于,所述支撑层服务进程在系统初始化阶段通过如下方式触发本方法执行:所述动态升级程序预先向系统注册以下需求:接收系统初始化阶段的预设消息;所述支撑层服务进程在系统初始化阶段广播所述预设消息,并根据所述动态升级程序预先注册的所述需求、触发本方法执行。20.根据权利要求19所述的对支撑层软件功能的升级方法,其特征在于,所述系统初始化阶段的预设消息包括:开机完成消息。21.根据权利要求14所述的对支撑层软件功能的升级方法,其特征在于,还包括:启动在所述支撑层服务进程之外运行的、为所述动态升级程序提供功能扩展服务的功能扩展程序。22.根据权利要求14-21任一项所述的对支撑层软件功能的升级方法,其特征在于,在触发本方法执行之前,包括:向服务端发送软件包获取请求,请求获取用于升级支撑层软件功能的软件包;根据服务端提供的信息获取软件包,其中至少包括动态升级软件包;通过安装已获取的软件包,生成至少包括所述动态升级程序的可执行程序。23.根据权利要求22所述的对支撑层软件功能的升级方法,其特征在于,在所述根据服务端提供的信息获取软件包的步骤中,获取的不仅包括所述动态升级软件包,还包括功能扩展软件包;所述通过安装已获取的安装包生成的可执行程序,不仅包括所述动态升级程序,还包括为所述动态升级程序提供功能扩展服务的功能扩展程序。24.一种对支撑层软件功能的升级装置,其特征在于,包括:升级代码注入单元,用于运行包含升级代码的动态升级程序,并通过进程合并机制将所述动态升级程序注入到支撑层服务进程中;升级代码替换单元,用于将支撑层待升级功能接口的功能实现代码设置为相应的升级代码。25...

【专利技术属性】
技术研发人员:钟伟
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1