CN116775084A - ***升级的方法及电子设备 - Google Patents
***升级的方法及电子设备 Download PDFInfo
- Publication number
- CN116775084A CN116775084A CN202311062410.4A CN202311062410A CN116775084A CN 116775084 A CN116775084 A CN 116775084A CN 202311062410 A CN202311062410 A CN 202311062410A CN 116775084 A CN116775084 A CN 116775084A
- Authority
- CN
- China
- Prior art keywords
- installation
- upgrade
- target
- service
- service module
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000009434 installation Methods 0.000 claims abstract description 535
- 230000004044 response Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 239000010410 layer Substances 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000011900 installation process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种***升级的方法及电子设备,涉及计算机领域。本申请提供一种***升级的方法,OUC在检测到***升级指令时,为本次分配第一连接,第一业务模块通过第一连接接收升级引擎服务的安装状态,第一业务模块在本次生命周期内根据该安装状态和目标安装标识,指示升级引擎服务安装目标***升级安装包,并在安装结束后断开第一连接并结束本次安装的生命周期。采用本申请中的方法,使得电子设备在同时安装参数类型的***升级安装包和补丁类型(或hota类型)的***升级安装包时,可以正常进行安装,避免出现安装混乱的问题,同时使得电子设备也可以及时安装参数类型的***升级安装包。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种***升级的方法及电子设备。
背景技术
终端设备中通常需要安装***才能被用户使用,例如,手机中安装有安卓***、iOS***等。终端设备可以向服务器发送搜包请求,服务器响应于搜包请求,搜索是否存在到参数、hota或补丁类型的***升级安装包,并向终端设备返回搜包结果。终端设备接收该搜包结果,若终端设备根据搜包结果确定搜包成功,该终端设备可以从服务器获取搜索到的***升级安装包并安装新版本的***升级安装包。
然而,若终端设备同时安装参数版本的***升级安装包和hota版本的***升级安装包,或者同时安装参数版本的***升级安装包和补丁版本的***升级安装包,会出现安装冲突的问题,例如,终端设备安装补丁类型的***升级安装包的过程中,终端设备会接收到参数版本的***升级安装包安装成功或失败的消息、终端设备中与参数对应的解压接口被多次调用的问题。
发明内容
为了解决上述技术问题,本申请提供一种***升级的方法及电子设备,使得电子设备同时安装参数类型的***升级安装包和补丁类型(或hota类型)的***升级安装包时,可以避免出现安装混乱的问题,同时电子设备可以及时安装参数类型的***升级安装包,提高电子设备的性能。
第一方面,本申请提供一种***升级的方法,包括:***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接,第一连接用于***更新应用的第一业务模块与升级引擎服务通信;第一业务模块通过第一连接实时接收升级引擎服务发送的升级引擎服务的状态;在本次安装的生命周期内,第一业务模块允许使用接收的升级引擎服务的状态;若升级引擎服务的状态为可用状态,第一业务模块根据升级引擎服务的状态和目标安装标识,生成安装指示并发送至升级引擎服务,目标安装标识用于指示当前的业务模块是否调用升级引擎服务中的目标安装接口,目标安装接口为与目标***升级安装包的类型对应的安装接口;升级引擎服务响应于安装指示,安装目标***升级安装包;第一业务模块若确定本次安装结束,标记本次安装的生命周期结束并断开第一连接。
这样,***更新应用为本次待安装的目标***升级安装包分配对应的连接(即第一连接),当第一连接建立后,第一业务模块实时接收到升级引擎服务发送的状态,而本示例中该第一业务模块在本次安装的生命周期内,允许使用升级引擎服务的状态,可以避免从第一业务模块执行断开第一连接的操作到第一连接断开的时段内,该第一业务模块使用接收到的升级引擎服务的状态而导致出现安装错误、混乱的问题;由于目标安装标识可以指示当前的业务模块是否调用升级引擎服务中的目标安装接口,通过新增目标安装标识,可以丰富第一业务模块判断是否指示升级引擎服务本次安装该目标***升级安装包的信息,使得第一业务模块可以准确判断出该升级引擎服务的安装进程是否被占用,及时安装目标***升级安装包(如参数类型、补丁类型或hota类型),从而避免升级引擎服务同时安装参数类型的***升级安装包和其他***升级安装包(即补丁类型的***升级安装包或hota类型的***升级安装包)导致的安装冲突的问题。同时,升级引擎服务及时安装目标***升级安装包(如参数类型的***升级安装包),可以提高电子设备的性能。
根据第一方面,在本次安装的生命周期内,所述第一业务模块允许使用接收的所述升级引擎服务的状态,包括:第一业务模块获取第一标识信息,第一标识信息用于指示本次安装的生命周期是否结束,其中,初始的第一标识信息指示本次安装的生命周期未结束;第一业务模块若检测到第一标识信息指示本次安装的生命周期未结束,第一业务模块允许使用升级引擎服务的状态;第一业务模块若检测到第一标识信息指示本次安装的生命周期结束,第一业务模块丢弃升级引擎服务的状态。
这样,第一业务模块通过第一标识信息可以快速确定本次安装的生命周期结束的时刻,使得第一业务模块在断开第一连接的操作时,即可不再使用升级引擎服务的状态,避免因断开第一连接所消耗的时间长,导致第一业务模块还在使用升级引擎服务的状态的问题。
根据第一方面,***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一业务模块;第一业务模块向升级引擎服务发送服务请求,服务请求用于请求升级引擎服务安装目标***升级安装包;升级引擎服务响应于服务请求,与第一业务模块绑定接口定义语言AIDL接口,建立第一连接。这样,第一业务模块通过绑定AIDL接口,使得该第一连接与本次安装目标***升级安装包对应,保证每个连接用于传输与该目标***升级安装包相关的数据,确保安装的准确性。
根据第一方面,标记本次安装的生命周期结束,包括:第一业务模块将第一标识信息更新为指示本次安装的生命周期已结束。这样,第一业务模块通过修改第一标识信息标记本次安装的生命周期结束,该方式简单快速,耗时短。
根据第一方面,第一业务模块根据升级引擎服务的状态和目标安装标识,生成安装指示,包括:第一业务模块若检测到升级引擎服务的状态为空闲状态且检测到目标安装标识指示第一业务模块未调用目标安装接口,则第一业务模块确定该安装指示指示升级引擎服务安装目标***升级安装包,并将目标安装标识更新为指示第一业务模块已调用目标安装接口;其中,初始的目标安装标识指示第一业务模块未调用目标安装接口。这样,第一业务模块在空闲状态下通过判断第一业务模块是否调用目标安装接口,可以快速确定升级引擎服务是否安装过该目标***升级安装包。
根据第一方面,该方法还包括:升级引擎服务响应于安装指示,将升级引擎服务的状态更新为繁忙状态。这样,升级引擎服务及时更新自身的安装状态(即升级引擎服务的状态)。
根据第一方面,该方法还包括:第一业务模块若检测到升级引擎服务的状态为繁忙状态,检测第一连接的建立时长是否超时预设时长;若检测到超过预设时长,则检测目标安装标识是否指示第一业务模块已调用目标安装接口;若检测到否,则第一业务模块确定下一次安装目标***升级安装包。这样,第一业务模块检测到第一连接建立超时且未调用目标安装接口,表征该升级引擎服务正在安装其他***升级安装包,如目标***升级安装包为参数类型的安装包,其他***升级安装包可以是补丁包、hota。由于该升级引擎服务正在安装其他***升级安装包,第一业务模块确定等待下一次安装,可以避免发生安装冲突。而当第一业务模块检测到第一连接建立超时且已调用目标安装接口,确定安装目标***升级安装包失败,断开第一连接,避免升级引擎服务长时间安装目标***升级安装包失败。
根据第一方面,该方法还包括:第一业务模块若确定下一次安装目标***升级安装包,则确定本次安装结束;在标记本次安装的生命周期结束并断开第一连接之后,该方法还包括:在第一业务模块断开第一连接第二预设时长之后,***更新应用重新为本次待安装的目标***升级安装包分配第二连接,以重新执行安装目标***升级安装包。这样,第一业务模块重新建立第二连接,以尝试安装目标***升级安装包,使得可以及时安装目标***升级安装包,提高电子设备的性能。
根据第一方面,该方法还包括:第一业务模块若检测到目标安装标识指示第一业务模块已调用目标安装接口,则第一业务模块确定本次安装目标***升级安装包失败,标记本次安装的生命周期结束并断开第一连接。这样,第一业务模块在检测到本次安装目标***升级安装包失败时,断开第一连接并标记本次安装的生命周期结束,使得第一业务模块可以不再使用接收到的升级引擎服务的状态,也避免升级引擎服务在安装失败后长时间占用安装进程。
根据第一方面,第一业务模块根据升级引擎服务的状态和目标安装标识,生成安装指示,包括:第一业务模块若检测到的状态为结束状态且检测到目标安装标识指示第一业务模块未调用目标安装接口,则第一业务模块确定该安装指示指示升级引擎服务安装目标***升级安装包,并将目标安装标识更新为指示第一业务模块已调用目标安装接口;其中,初始的目标安装标识指示第一业务模块未调用目标安装接口。这样,当第一业务模块检测到结束状态且未调用目标安装接口,表征当前安装的不是目标***升级安装包,即第一业务模块通过目标安装标识,识别出当前安装结束状态不是本次安装目标***升级安装包的安装结果,进一步避免其他***升级安装包的安装结果,对本次目标***升级安装包造成的干扰。
根据第一方面,该方法还包括:第一业务模块若检测到的状态为结束状态且检测到目标安装标识指示第一业务模块已调用目标安装接口,则第一业务模块确定本次成功安装目标***升级安装包;标记本次安装的生命周期结束并断开第一连接。这样,第一业务模块在确定本次安装成功时,断开第一连接,可以避免接收到其他***升级安装包的安装结果,造成安装错乱。
根据第一方面,该方法还包括:第一业务模块若检测到升级引擎服务的状态属于不可用状态,则标记本次安装的生命周期结束并断开第一连接;在第一业务模块断开第一连接第二预设时长之后,***更新应用重新为本次待安装的目标***升级安装包分配第二连接,以重新执行安装目标***升级安装包。这样,第一业务模块在升级引擎服务不可用时,直接尝试下一次安装,可以减少判断步骤,缩短安装目标***升级安装包的时间。
根据第一方面,目标***升级安装包的类型包括:参数包、hota或补丁包。
根据第一方面,在***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接之前,该方法还包括:***更新应用接收到用户输入的安装目标***升级安装包的***升级指令;或者,***更新应用检测到电子设备处于息屏状态,生成安装目标***升级安装包的***升级指令。这样,电子设备提供两种触发安装目标***升级安装包的方式,为用户可以使用安装方式提供了便利。
第二方面,本申请提供了一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行第一方面以及第一方面的任一种实现方式对应的***升级的方法。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请提供了一种计算机可读介质,用于存储计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述第一方面以及第一方面的任意一种实现方式所对应的***升级的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1 是示例性示出的手机中安装***升级包出现冲突的示意图;
图2是示例性示出的电子设备的结构示意图;
图3是示例性示出的电子设备的软件结构框图;
图4是示例性示出的一种***升级的流程图;
图5 是示例性示出的OUC与升级引擎服务之间的交互图;
图6是示例性示出的设置***升级安装包的安装方式的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个***是指两个或两个以上的***。
在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例的***升级进行说明。
OTA(Over-the-Air Technology,空间下载技术)升级是Android***提供的标准软件升级方式,是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。终端设备中的OTA升级客户端(OTA Update Client,“OUC”)可以向服务器发送搜包请求,服务器响应于搜包请求,搜索是否存在到参数、hota或补丁版本的***升级安装包,并向终端设备返回搜包结果。终端设备的OUC接收该搜包结果,若OUC确定搜包成功,该OUC可以从服务器获取搜索到的***升级安装包并下载新版本的***升级安装包。
终端设备中OUC可以同时下载多个类型的***升级安装包,***升级安装包的类型包括:补丁、hota或者参数。OUC也可以在不同时刻下载不同类型的***升级安装包。OUC可以根据***升级安装包的类型的优先级,安装***升级安装包。通常,补丁、hota类型的***升级安装包的优先级高于参数类型的***升级安装包的优先级。补丁和hota类型的***升级安装包所占容量大,终端设备安装补丁或者安装hota类型的***升级安装包所消耗的时间长,导致参数类型的***升级安装包不能及时被更新,影响终端设备的性能。为了避免终端设备不能及时更新参数类型的***升级安装包,终端设备调高该参数类型的***升级安装包的优先级,以使该参数类型的***升级安装包的优先级与补丁或hota类型的***升级安装包的优先级相同,即该终端设备在下载了参数类型的***升级安装包后,立即触发终端设备安装该参数类型的***升级安装包,而无需在终端设备安装补丁或hota类型的***升级安装包之后再安装该参数类型的***升级安装包,从而提高了终端设备的***性能。
然而,由于参数类型的***升级安装包的优先级与补丁、hota类型的***升级安装包的优先级相同,导致该OUC可能同时指示终端设备的升级引擎服务(UpdateEngineService)安装参数类型的***升级安装包与补丁类型的***升级安装包,或者同时安装参数类型的***升级安装包与hota类型的***升级安装包。由于升级引擎服务的安装进程只有一个,这将出现安装冲突,安装冲突会导致安装结果错乱,安装包被多次安装等问题。图1为示例性示出的手机安装***升级包时出现冲突的示意图。如图1所示,终端设备以手机为例,该手机已下载了补丁类型的***升级安装包,并正在安装该补丁类型的***升级安装包。当手机的OUC检测到搜包结果指示存在新版本的参数类型的***升级安装包,该手机可以在显示界面提示用户更新参数。如图1所示的显示界面101中显示有提示窗102,该提示窗102可以显示第一提示信息,该第一提示信息用于指示用户更新设备优化参数。该提示窗102还可以显示第二提示信息103,该第二提示信息103用于指示用户启动自动更新功能。若用户开启该自动更新功能,则该终端设备在检测到搜包结果指示存在新版本的参数类型的***升级安装包时,不再显示界面显示该提示窗102。终端设备将自动下载新版本的参数类型的***升级安装包,并在检测到终端设备处于息屏状态时,安装该新版本的参数类型的***升级安装包。
本示例中,如图1中的1a所示,用户点击提示窗102中的下载并更新的控件,终端设备中的OUC响应于用户输入的指令(即下载***升级安装包并安装该***升级安装包),从服务器下载该参数类型的***升级安装包。该OUC在下载了该参数类型的***升级安装包之后,指示升级引擎服务安装该参数类型的***升级安装包。若此时升级引擎服务安装补丁类型的***升级安装包失败,并将该状态信息返回OUC,OUC获取到该状态后,指示升级引擎服务结束安装该参数类型的***升级包。该手机的显示界面104中显示软件更新失败的通知105。
本示例中,由于升级引擎服务同时在安装补丁类型的***升级安装包和参数类型的***升级安装包,导致在安装参数类型的***升级安装包时,OUC接收到安装补丁类型的***升级安装包的安装结果(如安装成功、安装失败),而导致OUC不再安装该参数类型的***升级安装包,或多次调用该参数类型的解压接口,即多次安装该该参数类型的***升级安装包。同理,也可能出现升级引擎服务在安装补丁类型(或hota类型)的***升级安装包时,OUC接收到安装参数类型的***升级安装包的安装结果(如安装成功、安装失败),导致OUC不再安装该补丁类型(或hota类型)的***升级安装包,或多次调用该补丁类型(或hota类型)的解压接口。
本申请实施例提供一种***升级的方法,该方法由电子设备运行,该电子设备中的***升级应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接,第一连接用于***更新应用的第一业务模块与升级引擎服务通信;第一业务模块通过第一连接实时接收升级引擎服务发送的升级引擎服务的状态;在本次安装的生命周期内,第一业务模块允许使用接收的升级引擎服务的状态;若升级引擎服务的状态为可用状态,第一业务模块根据升级引擎服务的状态和目标安装标识,生成安装指示并发送至升级引擎服务,目标安装标识用于指示当前的业务模块是否调用升级引擎服务中的目标安装接口,目标安装接口为与目标***升级安装包的类型对应的安装接口;升级引擎服务响应于安装指示,安装目标***升级安装包;第一业务模块若确定本次安装结束,标记本次安装的生命周期结束并断开第一连接。
本示例中,***升级应用的第一业务模块仅在本次安装的生命周期内允许使用升级引擎服务的状态,可以避免在断开第一连接的过程中,第一业务模块还使用升级引擎服务的状态,以指示升级引擎服务安装目标***升级安装包,导致安装错乱的问题。本示例中,通过该升级服务引擎的状态和目标安装标识可以准确判断是否可以安装该目标***升级安装包,避免该升级引擎服务的安装进程同时安装目标***升级安装包和其他***升级安装包时发生安装冲突。同时,该***升级方式使得参数类型的***升级安装包可以及时更新,提高电子设备的性能。
图2为本申请实施例示出的一种电子设备100的结构示意图。应该理解的是,图2示出的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
图3是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为三层,从上至下分别为应用程序层,应用程序框架层,以及内核层。可以理解的是,图3的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
如图3所示,应用程序层可以包括一系列应用程序包。应用程序包可以包括***更新应用,相机,图库,日历,短消息,通话,导航,蓝牙等应用程序。应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
该***更新应用(即OUC),该***更新应用可以实时向服务器发送搜索请求,并获取服务器返回的搜包结果。若OUC检测到搜包结果指示存在新版本的***升级安装包,该OUC可以从服务器下载新版本的***升级安装包。OUC若接收到用户输入的升级指令或者检测到满足升级条件时,执行本申请中的***升级的方法。
如图3所示,应用程序框架层可以包括升级引擎服务,窗口管理器,资源管理器,内容提供器,视图***,电话管理器,通知管理器等。
升级引擎服务用于安装待升级的***升级安装包。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图4为示例性示出的一种***升级的流程图,下面具体说明***升级的过程:
电子设备可以是手机、平板电脑、车载设备、智能手环、智能手表、笔记本电脑等。本示例中,电子设备以手机为例。该手机的应用程序中包括***更新应用(即OUC),该OUC可以获取新版本的***升级安装包,并指示升级引擎服务安装新版本的***升级安装包。OUC接收到服务器返回的搜包结果,若该搜包结果指示存在新的参数版本(即参数类型的***升级安装包),该OUC可以如图1中的1a所示显示提示窗102,用户点击“下载并更新”的按钮,该OUC响应于用户的该点击操作,生成***升级指令。
在另一个示例中,如图6中的6a所示,用户可以点击软件设置界面中的“更多”按钮601,手机响应于用户点击按钮601的操作,显示弹框602。该弹框602中可以包括两个选型,第一选项用于跳转至补丁和hota的更新设置页面,第二选项用于跳转至参数的更新设置页面。本示例中,如图6中的6a所示,用户点击第二选项,手机的显示页面跳转至参数的更新设置页面603,该用户可以点击按钮604,以开启自动下载并更新功能,该功能开启后,该手机的OUC检测到电子设备处于息屏状态时,可以生成安装新的参数版本的***升级指令。
同理,如图6的6a所示,若用户点击第一选项,手机的显示页面跳转至补丁和hota的更新设置页面605,该用户可以点击按钮606,以开启自动下载并更新功能,该功能开启后,该手机的OUC检测到电子设备处于息屏状态时,可以生成安装新的补丁或hota版本的升级指令。可选地,该用户可以点击按钮607,手机在检测到处于息屏状态且处于预设安装时段时,生成***升级指令。若该按钮606和按钮607均被开启,则手机可以在WLAN或移动网络下自动下载新版本的***升级安装包,在检测到处于息屏状态且处于预设安装时段(如02:00~04:00)时,生成升级指令。
当手机的OUC生成***升级指令时,该OUC可以为本次待安装的目标***升级安装包分配第一业务模块。本示例中,该待安装的目标***升级安装包的类型可以是参数、补丁或hota。
若***升级指令指示安装参数类型的***升级安装包,该参数类型的***升级安装包作为目标***升级安装包,若***升级指令指示安装补丁类型的***升级安装包,该补丁类型的***升级安装包作为目标***升级安装包。
需要说明的是,OUC可以为不同的***升级安装包分配各自不同的业务模块,以建立不同的连接。也就是说,本示例中,OUC的不同业务模块可以同时建立各自对应的连接,以安装各自对应的目标***升级安装包。例如,第一业务模块可以建立第一连接,以安装参数类型的***升级安装包,该第二业务模块可以建立第三连接,以安装补丁类型的***升级安装包。
步骤401:第一业务模块绑定UpdateEngine服务,建立连接。
示例性地,该第一业务模块可以向升级引擎(UpdateEngine)服务发送安装该目标***升级安装包的服务请求。升级引擎(UpdateEngine)服务响应于该服务请求,与第一业务模块绑定接口定义语言(Android Interface Definition Language,“AIDL”)接口,建立第一连接。该第一连接用于传输与本次安装相关的数据,例如,第一连接可以传输该升级引擎服务的安装状态,还可以传输待安装的目标***升级安装包。可以理解的是,第一业务模块创建的第一连接与本次安装相匹配。
可选地,当第一业务模块成功建立第一连接时,可以启动定时器。若第一业务模块断开第一连接,销毁该定时器。也就是说,每个连接有各自对应的定时器。
步骤402:第一业务模块接收升级引擎服务的状态。
示例性地,当第一业务模块成功建立第一连接后,该升级引擎服务可以实时获取当前的安装状态(即升级引擎服务的状态),并将获取的安装状态通过第一连接传输至第一业务模块。该第一业务模块实时接收升级引擎服务发送的安装状态。该第一业务模块接收到的安装状态可以包括:空闲状态、繁忙状态、结束状态以及不可用状态。其中,空闲状态、繁忙状态以及结束状态属于可用状态。
空闲状态用于表征升级引擎服务中的安装进程未被占用。繁忙状态用于表征该升级引擎服务的安装进程正在安装***升级安装包。结束状态用于表征该升级引擎服务的安装进程安装该***升级安装包成功或失败。不可用状态为异常状态。
需要说明的是,若OUC若同时建立了多个连接,则该升级引擎服务会实时通过每个连接向OUC中的每个业务模块传输该升级引擎服务的状态。
步骤403:第一业务模块判断第一标识信息指示本次安装的生命周期是否结束。若是,则结束流程。若否,则执行步骤404。
示例性地,该第一业务模块在接收到升级引擎服务发送的安装状态,获取存储的第一标识信息,并判断第一标识信息是否指示本次安装的生命周期结束。若第一业务模块检测到该第一标识信息指示本次安装的生命周期未结束,该第一业务模块允许使用接收到的安装状态。若第一业务模块检测到该第一标识信息指示本次安装的生命周期结束,则可以丢弃接收到的安装状态,或者直接结束流程。本示例中,当第一业务模块检测到该第一标识信息指示本次安装的生命周期结束,以直接结束流程为例。
当第一连接创建成功时,将第一标识信息设置为指示本次安装的生命周期未结束。本次安装的生命周期用于指示本次安装该目标***升级安装包过程中,允许使用接收到的安装状态的时段。本示例中,第一业务模块在成功建立第一连接时可以设置第一标识信息的初始值,例如,第一业务模块在第一连接建立时,设置isClosed=false,该第一标识信息为“isClosed”,当isClosed的值为“false”时,指示当前第一连接已建立,即指示本次安装的生命周期未结束。若isClosed的值为“true”时,表征当前第一连接断开,即指示本次安装的生命周期已结束。需要说明的是,当isClosed的值为“true”时,第一连接还可能处于连接状态,例如,第一业务模块执行断开第一连接的操作时,isClosed的值被置为“true”,但该第一连接还未断开。
当第一业务模块成功建立第一连接且设置(或标记)第一标识信息为指示本次安装的生命周期未结束的时刻作为本次安装的生命周期的开始时刻。第一业务模块设置(或标记)该第一标识信息为指示本次安装的生命周期已结束的时刻作为本次安装的生命周期的结束时刻。该第一业务模块在本次安装的生命周期内允许使用接收到的安装状态。
由于升级引擎服务实时向第一业务模块发送升级引擎服务的安装状态,该第一业务模块可以在接收到升级引擎服务的安装状态时,执行步骤403,直至结束流程。
步骤404:第一业务模块允许使用当前升级引擎服务的安装状态。
示例性地,第一业务模块若检测到该第一标识信息指示本次安装的生命周期未结束,确定第一业务模块可以使用当前升级引擎服务的安装状态。
步骤405:第一业务模块检测到该安装状态为空闲状态,检测目标安装标识是否指示第一业务模块已调用目标安装接口。若否,则执行步骤406。
在一个示例中,第一业务模块获取允许使用的安装状态,若该安装状态为空闲状态,该第一业务模块可以检测目标安装标识是否指示第一业务模块已调用目标安装接口。可选地,当第一业务模块成功建立第一连接时,可以设置该目标安装标识的初始值为指示第一业务模块未调用目标安装接口。可选地,第一业务模块可以在向升级引擎服务发送安装目标***升级安装的服务请求时,设置该目标安装标识的初始值为指示第一业务模块未调用目标安装接口。
举例来说,目标***升级安装包为6.1.0版本的参数包,第一业务模块为安装该6.1.0版本的参数包,建立第一连接,并设置第一标识信息为指示本次安装的生命周期未结束(如isClosed=false),设置目标安装标识(如“isCalledStartUpdatePara”)的值为false。升级引擎服务通过第一连接实时向第一业务模块反馈的该升级引擎服务的安装状态。该第一业务模块在接收到该升级引擎服务的安装状态(如该安装状态为空闲状态)时,检测isClosed的值为false,确定允许使用升级引擎服务的安装状态。该第一业务模块检测到该安装状态为空闲状态,检测isCalledStartUpdatePara的值是否为true。本示例中,在第一业务模块在建立第一连接时,设置isCalledStartUpdatePara的初始值为fasle,当前该第一业务模块检测到该isCalledStartUpdatePara的值为fasle,即该第一业务模块可以确定当前升级引擎服务处于空闲状态且未安装该6.1.0版本的参数包,第一业务模块指示升级引擎服务安装6.1.0版本的参数包,此时,该第一业务模块调用了与参数包的类型对应的安装接口,可以将isCalledStartUpdatePara置为true。可选地,第一业务模块也可以将isCalledStartUpdatePara置为true(即步骤407),再指示升级引擎服务安装6.1.0版本的参数包,该升级引擎服务根据第一业务模块的指示安装该目标***升级安装包(即步骤406)。
可选地,第一业务模块也可以在指示升级引擎服务安装目标***升级安装包的同时,将目标安装标识更新为指示第一业务模块已调用目标安装接口。
步骤406:该升级引擎服务根据第一业务模块的指示安装该目标***升级安装包。
示例性地,第一业务模块生成安装指示,该安装指示用于指示升级引擎服务安装该目标***升级安装包。升级引擎服务响应于该安装指示,安装该目标***升级安装包。同时,该升级引擎服务将升级引擎服务的安装状态(也称为升级引擎服务的状态)从空闲状态更新为繁忙状态。
步骤407:该第一业务模块将目标安装标识更新为指示第一业务模块已调用目标安装接口。
步骤408:第一业务模块检测到该安装状态为繁忙状态,检测定时器是否超时。若是,则执行步骤409。
示例性地,若第一业务模块检测到当前升级引擎服务的安装状态为繁忙状态,检测定时器记录的时长是否超过第一预设时长,第一预设时长可以预先设置,例如,第一预设时长为1分钟,45秒、30秒等。第一业务模块若检测到该定时器记录的时长超过第一预设时长,则确定检测到定时器超时,执行步骤409。
第一业务模块若检测到该定时器记录的时长未超过第一预设时长,该第一业务模块不做进一步处理,由升级引擎服务继续安装当前正在安装的***升级安装包。可选地,该升级引擎服务正在安装的***升级安装包可以是目标***升级安装包,也可以是其他***升级安装包。
举例来说,参照步骤406中的例子,第一业务模块指示升级引擎服务安装6.1.0版本的参数包,升级引擎服务按照第一业务模块的指示安装该目标***升级安装包时,将安装状态从空闲状态更新为繁忙状态。该升级引擎服务将当前的安装状态(即繁忙状态)发送至第一业务模块,该第一业务模块检测到isClosed=false,允许使用该安装状态(即繁忙状态)。第一业务模块检测到安装状态为繁忙状态,获取定时器记录的时长(如30秒),假设第一预设时长为45秒,该第一业务模块检测到定时器记录的时长小于第一预设时长,该第一业务模块不做操作,由升级引擎服务继续安装6.1.0版本的参数包。若该升级引擎服务安装6.1.0版本的参数包成功,可以将升级引擎服务的安装状态更新为结束状态。
再如,该升级引擎服务当前正在安装补丁包(即补丁类型的***升级安装包),该升级引擎服务将当前的安装状态(即繁忙状态)发送至第一业务模块,该第一业务模块检测到isClosed=false,允许使用该安装状态(即繁忙状态)。第一业务模块检测到安装状态为繁忙状态,获取定时器记录的时长(如50秒),假设第一预设时长为45秒,该第一业务模块检测到定时器记录的时长大于第一预设时长,该第一业务模块确定定时器超时,检测目标安装标识是否指示第一业务模块已调用目标安装接口,即执行步骤409。
步骤409:第一业务模块检测目标安装标识是否指示第一业务模块已调用目标安装接口。若是,则执行步骤410;若否,则执行步骤415。
示例性地,若第一业务模块检测到目标安装标识指示第一业务模块未调用目标安装接口,则确定等待下一次安装目标***升级安装包,该第一业务模块断开该第一连接,并将第一标识信息更新为指示本次安装的生命周期结束,即执行步骤415。由于本次未安装该目标***升级安装包,可以等待下一次安装该目标***升级安装包,即第一业务模块可以等待(或称为延迟)第二预设时长,重新与升级引擎服务建立新的连接,以重新尝试安装该目标***升级安装包。
若第一业务模块检测到目标安装标识指示第一业务模块已调用目标安装接口,则确定本次安装该目标***升级安装包失败(即步骤410),并执行步骤411。
步骤410:第一业务模块确定安装目标***升级安装包失败。
可选地,该第一业务模块可以确定安装该目标***升级安装包失败,执行步骤411。
步骤411:第一业务模块断开连接,并将第一标识信息更新为指示本次安装的生命周期结束。
示例性地,第一业务模块断开第一连接(即解绑AIDL接口),并将第一标识信息更新为指示本次安装的生命周期结束,例如,第一业务模块将isClosed的值置为true。当第一业务模块接收到升级引擎服务发送的安装状态时,该第一业务模块检测到isClosed的值为true,结束流程。
第一业务模块执行断开第一连接的操作后,第一连接并不会立即断开,从第一业务模块执行断开第一连接的操作到第一连接断开的时段内,该升级引擎服务依然向该第一业务模块返回升级引擎服务的安装状态。本示例中,由于第一业务模块在断开第一连接的操作时,还更新了第一标识信息(更新为指示本次安装的生命周期结束),使得从第一业务模块执行断开第一连接的操作到第一连接断开的时段内,第一业务模块不再允许使用接收到的安装状态,从而避免第一业务模块在第一业务模块执行断开第一连接的操作到第一连接断开的时段内发生安装错误、混乱的问题。
步骤412:第一业务模块检测到该安装状态为结束状态,检测目标安装标识是否指示第一业务模块已调用目标安装接口。若是,则执行步骤413;若否,则执行步骤406。
示例性地,第一业务模块检测到该安装状态为结束状态,同样检测目标安装标识是否指示第一业务模块已调用目标安装接口,若是,则确定本次安装该目标***升级安装包结束,可以断开第一连接。若否,表征当前安装的其他***升级安装包结束,可以安装目标***升级安装包,即执行步骤406。
举例来说,升级引擎服务安装补丁包失败或成功,将安装状态更新为结束状态。假设目标***安装包为6.1.0版本的参数包。该升级引擎服务将当前的安装状态(即结束状态)发送至第一业务模块,该第一业务模块检测到isClosed=false,允许使用该安装状态(即结束状态)。第一业务模块检测到安装状态为结束状态,检测到目标安装标识(如“isCalledStartUpdatePara”)的值为false,则指示升级引擎服务开始安装该6.1.0版本的参数包并将目标安装标识的值更新为true。当升级引擎服务开始装该6.1.0版本的参数包时,将安装状态从结束状态更新为繁忙状态。
步骤413:第一业务模块确定安装结束。
该第一业务模块确定安装结束,可以由第一业务模块处理安装结果,如在显示界面显示该安装当前的***升级安装包的结果。
步骤414:第一业务模块断开连接,并将第一标识信息更新为指示本次安装的生命周期结束。
该步骤与步骤411类似,相关描述可以参照步骤411中的描述,此处不再进行赘述。
步骤415:第一业务模块检测到安装状态为不可用状态,则断开连接,并将第一标识信息更新为指示本次安装的生命周期结束。
示例性地,当第一业务模块检测到安装状态为不可用状态,则执行断开第一连接的操作,并将第一标识信息更新为指示本次安装的生命周期结束。
步骤416:第一业务模块延迟第二预设时长后,重新绑定UpdateEngine服务,建立连接。
示例性地,该第一模块可以延迟第二预设时长,重新绑定UpdateEngine服务,建立新的连接(如第二连接),以尝试下一次安装该目标***升级安装包,即重新执行401。可选地,第二预设时长可以为3秒、5秒、10秒、15秒等。本示例中,第二预设时长以5秒为例。
需要说明的是,升级引擎服务的安装状态根据安装的过程发生变化,例如,在T1时刻升级引擎服务的安装状态为空闲状态,当开始安装目标***升级安装包时,升级引擎服务的安装状态更新为繁忙状态。若升级引擎服务安装目标***升级安装包失败或成功时,升级引擎服务的安装状态更新为结束状态。
***更新应用为本次待安装的目标***升级安装包分配对应的连接(即第一连接),并在该本次安装的生命周期内,允许使用升级引擎服务的状态,可以避免从第一业务模块执行断开第一连接的操作到第一连接断开的时段内,该第一业务模块使用接收到的升级引擎服务的状态而导致出现安装错误、混乱的问题;由于目标安装标识可以指示当前的业务模块是否调用升级引擎服务中的目标安装接口,通过新增目标安装标识,可以丰富第一业务模块判断是否指示升级引擎服务本次安装该目标***升级安装包的信息,使得第一业务模块可以准确判断出该升级引擎服务的安装进程是否被占用,及时安装目标***升级安装包(如参数类型、补丁类型或hota类型),从而避免升级引擎服务同时安装参数类型的***升级安装包和其他***升级安装包(即补丁类型的***升级安装包或hota类型的***升级安装包)导致的安装冲突的问题。同时,升级引擎服务及时安装目标***升级安装包(如参数类型的***升级安装包),可以提高电子设备的性能。
图5为示例性示出的OUC与升级引擎服务之间的交互图。如图5所示,包括:
步骤501:OUC的第一业务模块向升级引擎服务发送安装目标***升级安装包的服务请求。
步骤502:第一业务模块绑定AIDL接口,建立第一连接。
该步骤501和步骤502可以参照步骤401中的相关描述,此处不再进行赘述。
步骤503:升级引擎服务获取当前的安装状态。
步骤504:升级引擎服务通过AIDL接口,向第一业务模块发送当前升级引擎服务的安装状态。
步骤505:第一业务模块判断第一标识信息是否指示本次安装的生命周期结束。若是,则结束流程,若否,则执行步骤506。
步骤506:第一业务模块允许使用当前升级引擎服务的安装状态。
步骤503~步骤506可以参照步骤402~步骤404中的相关描述,此处不再进行赘述。
步骤507:第一业务模块若检测到安装状态为空闲状态,检测目标安装标识是否指示第一业务模块已调用目标安装接口。若检测到否,则执行步骤508。
步骤508:第一业务模块将目标安装标识更新为第一业务模块已调用目标安装接口。
步骤509:第一业务模块指示升级引擎服务安装目标***升级安装包。
步骤510:升级引擎服务安装目标***升级安装包。
步骤511:第一业务模块检测到安装状态为繁忙状态,检测定时器记录的时长是否超时,若检测到是,则执行步骤512;若检测到否,第一业务模块可以不执行操作。
步骤512:第一业务模块检测目标安装标识是否指示第一业务模块已调用目标安装接口。若检测到是,则执行步骤513。若检测到否,则执行步骤514。
步骤513:第一业务模块确定安装失败,断开第一连接,将第一标识信息更新为指示本次安装的生命周期结束。
步骤514:第一业务模块确定下一次安装,断开第一连接,将第一标识信息更新为指示本次安装的生命周期结束。该步骤之后执行步骤518,即第一业务模块延时第二预设时长,重新与升级引擎服务建立新的连接,以尝试下一次安装该目标***升级安装包。
步骤515:第一业务模块检测到安装状态为结束状态,检测目标安装标识是否指示第一业务模块已调用目标安装接口。若检测到是,则执行步骤516。若检测到否,则执行步骤508。
步骤516:第一业务模块确定安装结束,断开第一连接,将第一标识信息更新为指示本次安装的生命周期结束。
步骤517:第一业务模块检测到安装状态为不可用状态,则断开第一连接,将第一标识信息更新为指示本次安装的生命周期结束。该步骤之后执行步骤518。
步骤518:第一业务模块延时第二预设时长,与升级引擎服务建立新的连接,以尝试下一次安装该目标***升级安装包。
上述步骤507~步骤518可以参照步骤405~步骤416中的相关描述,此处不再进行赘述。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的***升级的方法。存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的***升级的方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (16)
1.一种***升级的方法,其特征在于,包括:
***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接,所述第一连接用于所述***更新应用的第一业务模块与升级引擎服务通信;
所述第一业务模块通过所述第一连接实时接收所述升级引擎服务发送的所述升级引擎服务的状态;
在本次安装的生命周期内,所述第一业务模块允许使用接收的所述升级引擎服务的状态;
若所述升级引擎服务的状态为可用状态,所述第一业务模块根据所述升级引擎服务的状态和目标安装标识,生成安装指示并发送至所述升级引擎服务,所述目标安装标识用于指示当前的业务模块是否调用所述升级引擎服务中的目标安装接口,所述目标安装接口为与所述目标***升级安装包的类型对应的安装接口;
所述升级引擎服务响应于所述安装指示,安装所述目标***升级安装包;
所述第一业务模块若确定本次安装结束,标记本次安装的生命周期结束并断开所述第一连接。
2.根据权利要求1所述的方法,其特征在于,所述在本次安装的生命周期内,所述第一业务模块允许使用接收的所述升级引擎服务的状态,包括:
所述第一业务模块获取第一标识信息,所述第一标识信息用于指示所述本次安装的生命周期是否结束,其中,初始的所述第一标识信息指示所述本次安装的生命周期未结束;
所述第一业务模块若检测到所述第一标识信息指示所述本次安装的生命周期未结束,所述第一业务模块允许使用所述升级引擎服务的状态;
所述第一业务模块若检测到所述第一标识信息指示所述本次安装的生命周期结束,所述第一业务模块丢弃所述升级引擎服务的状态。
3.根据权利要求2所述的方法,其特征在于,***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接,包括:
所述***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配所述第一业务模块;
所述第一业务模块向所述升级引擎服务发送服务请求,所述服务请求用于请求所述升级引擎服务安装所述目标***升级安装包;
所述升级引擎服务响应于所述服务请求,与所述第一业务模块绑定接口定义语言AIDL接口,建立所述第一连接。
4.根据权利要求2所述的方法,其特征在于,所述标记本次安装的生命周期结束,包括:
所述第一业务模块将第一标识信息更新为指示所述本次安装的生命周期已结束。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一业务模块根据所述升级引擎服务的状态和目标安装标识,生成安装指示,包括:
所述第一业务模块若检测到所述升级引擎服务的状态为空闲状态且检测到所述目标安装标识指示所述第一业务模块未调用所述目标安装接口,则第一业务模块确定所述安装指示指示所述升级引擎服务安装所述目标***升级安装包,并将所述目标安装标识更新为指示第一业务模块已调用所述目标安装接口;其中,初始的目标安装标识指示所述第一业务模块未调用所述目标安装接口。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述升级引擎服务响应于所述安装指示,将所述升级引擎服务的状态更新为繁忙状态。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
所述第一业务模块若检测到所述升级引擎服务的状态为繁忙状态,检测所述第一连接的建立时长是否超时预设时长;
若检测到超过预设时长,则检测所述目标安装标识是否指示所述第一业务模块已调用所述目标安装接口;
若检测到否,则所述第一业务模块确定下一次安装所述目标***升级安装包。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一业务模块若确定下一次安装所述目标***升级安装包,则确定本次安装结束;
在标记本次安装的生命周期结束并断开所述第一连接之后,所述方法还包括:
在所述第一业务模块断开所述第一连接第二预设时长之后,所述***更新应用重新为本次待安装的目标***升级安装包分配第二连接,以重新执行安装所述目标***升级安装包。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一业务模块若检测到所述目标安装标识指示所述第一业务模块已调用所述目标安装接口,则所述第一业务模块确定本次安装所述目标***升级安装包失败,标记本次安装的生命周期结束并断开所述第一连接。
10.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一业务模块根据所述升级引擎服务的状态和目标安装标识,生成安装指示,包括:
所述第一业务模块若检测到的状态为结束状态且检测到所述目标安装标识指示所述第一业务模块未调用所述目标安装接口,则所述第一业务模块确定所述安装指示指示所述升级引擎服务安装所述目标***升级安装包,并将所述目标安装标识更新为指示第一业务模块已调用所述目标安装接口;其中,初始的目标安装标识指示所述第一业务模块未调用所述目标安装接口。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述第一业务模块若检测到的状态为结束状态且检测到所述目标安装标识指示所述第一业务模块已调用所述目标安装接口,则所述第一业务模块确定本次成功安装所述目标***升级安装包;
标记本次安装的生命周期结束并断开所述第一连接。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一业务模块若检测到所述升级引擎服务的状态属于不可用状态,则标记本次安装的生命周期结束并断开所述第一连接;
在所述第一业务模块断开所述第一连接第二预设时长之后,所述***更新应用重新为本次待安装的目标***升级安装包分配第二连接,以重新执行安装所述目标***升级安装包。
13.根据权利要求1所述的方法,其特征在于,所述目标***升级安装包的类型包括:参数包、hota或补丁包。
14.根据权利要求1所述的方法,其特征在于,在***更新应用检测到***升级指令,为本次待安装的目标***升级安装包分配第一连接之前,所述方法还包括:
***更新应用接收到用户输入的安装所述目标***升级安装包的***升级指令;
或者,
所述***更新应用检测到电子设备处于息屏状态,生成安装所述目标***升级安装包的***升级指令。
15.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1至14中任意一项所述的***升级的方法。
16.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行权利要求1至14中任意一项所述的***升级的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311062410.4A CN116775084B (zh) | 2023-08-23 | 2023-08-23 | ***升级的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311062410.4A CN116775084B (zh) | 2023-08-23 | 2023-08-23 | ***升级的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116775084A true CN116775084A (zh) | 2023-09-19 |
CN116775084B CN116775084B (zh) | 2023-11-24 |
Family
ID=87989853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311062410.4A Active CN116775084B (zh) | 2023-08-23 | 2023-08-23 | ***升级的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775084B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级***以及客户端 |
CN103517258A (zh) * | 2012-06-25 | 2014-01-15 | 中兴通讯股份有限公司 | 在移动终端上进行软件升级的方法、移动终端及服务器 |
CN103955381A (zh) * | 2014-04-04 | 2014-07-30 | 京信通信***(中国)有限公司 | 管理服务器对终端设备进行批量软件升级方法与*** |
CN107368324A (zh) * | 2016-05-11 | 2017-11-21 | 中兴通讯股份有限公司 | 一种组件升级方法、装置和*** |
CN108399075A (zh) * | 2018-02-28 | 2018-08-14 | 郑州云海信息技术有限公司 | 一种更新管理引擎的方法及*** |
US20200257522A1 (en) * | 2019-02-08 | 2020-08-13 | Atlassian Pty Ltd. | Software application update management engine |
US20210334082A1 (en) * | 2020-03-26 | 2021-10-28 | EMC IP Holding Company LLC | Flexible upgrade of multi-subsystem products |
CN114610499A (zh) * | 2022-03-22 | 2022-06-10 | 深圳须弥云图空间科技有限公司 | 任务调度方法、装置、计算机可读存储介质及电子设备 |
CN115269063A (zh) * | 2022-07-19 | 2022-11-01 | 京东科技信息技术有限公司 | 进程创建方法、***、设备及介质 |
CN115543368A (zh) * | 2022-01-10 | 2022-12-30 | 荣耀终端有限公司 | 一种操作***升级方法及电子设备 |
CN116400938A (zh) * | 2023-03-27 | 2023-07-07 | 荣耀终端有限公司 | 操作***的升级方法、设备及存储介质 |
-
2023
- 2023-08-23 CN CN202311062410.4A patent/CN116775084B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级***以及客户端 |
CN103517258A (zh) * | 2012-06-25 | 2014-01-15 | 中兴通讯股份有限公司 | 在移动终端上进行软件升级的方法、移动终端及服务器 |
CN103955381A (zh) * | 2014-04-04 | 2014-07-30 | 京信通信***(中国)有限公司 | 管理服务器对终端设备进行批量软件升级方法与*** |
CN107368324A (zh) * | 2016-05-11 | 2017-11-21 | 中兴通讯股份有限公司 | 一种组件升级方法、装置和*** |
CN108399075A (zh) * | 2018-02-28 | 2018-08-14 | 郑州云海信息技术有限公司 | 一种更新管理引擎的方法及*** |
US20200257522A1 (en) * | 2019-02-08 | 2020-08-13 | Atlassian Pty Ltd. | Software application update management engine |
US20210334082A1 (en) * | 2020-03-26 | 2021-10-28 | EMC IP Holding Company LLC | Flexible upgrade of multi-subsystem products |
CN115543368A (zh) * | 2022-01-10 | 2022-12-30 | 荣耀终端有限公司 | 一种操作***升级方法及电子设备 |
CN114610499A (zh) * | 2022-03-22 | 2022-06-10 | 深圳须弥云图空间科技有限公司 | 任务调度方法、装置、计算机可读存储介质及电子设备 |
CN115269063A (zh) * | 2022-07-19 | 2022-11-01 | 京东科技信息技术有限公司 | 进程创建方法、***、设备及介质 |
CN116400938A (zh) * | 2023-03-27 | 2023-07-07 | 荣耀终端有限公司 | 操作***的升级方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116775084B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630615B (zh) | 跨***的应用控制方法和智能终端 | |
CN104320774B (zh) | 一种升级方法、装置及设备 | |
WO2022089207A1 (zh) | 一种跨设备应用交互方法、电子设备与服务器 | |
CN114461239B (zh) | 软件升级***和软件升级方法 | |
CN114461240B (zh) | 软件升级方法、软件升级***及电子设备 | |
KR20200140555A (ko) | 전자 장치 및 전자 장치의 듀얼 스탠바이 모드 및 싱글 스탠바이 모드의 전환 방법 | |
CN113727333B (zh) | 定制应用的下载*** | |
US11368360B2 (en) | Electronic device, and software setting method based on subscriber identity module in electronic device | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN115328563B (zh) | ***启动方法及电子设备 | |
CN111158735B (zh) | 一种热补丁文件处理方法及通信终端 | |
CN116775084B (zh) | ***升级的方法及电子设备 | |
US20110263295A1 (en) | System and method for providing a smart card-based widget service, and smart card for the same | |
CN116048546B (zh) | 一种***升级方法、电子设备以及计算机可读存储介质 | |
WO2022143126A1 (zh) | 应用的安全性分析方法、装置、设备及存储介质 | |
CN114443117B (zh) | 一种定制包的处理方法及电子设备 | |
CN116302454B (zh) | 申请网络资源的方法及电子设备 | |
CN112181406A (zh) | 一种渲染引擎的共享方法和装置 | |
CN117130627B (zh) | 配件升级方法及电子设备 | |
JP2009146206A (ja) | マルチアプリケーション実行装置、マルチアプリケーション実行支援方法、およびプログラム | |
WO2024083114A1 (zh) | 一种软件分发方法、电子设备及*** | |
CN118245078A (zh) | 升级方法及其相关设备 | |
CN115150265A (zh) | 一种双***数据的处理方法、设备及装置 | |
CN118277120A (zh) | 一种管理***服务的方法及相关装置 | |
CN117931238A (zh) | 升级方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |