发明内容
有鉴于此,本申请实施例提供了一种电子设备及其系统升级方法、计算机可读存储介质,以解决传统的系统升级方法在电子设备未完成系统升级时导致电子设备无法开机正常运行的技术问题。
第一方面,本申请实施例提供一种电子设备的系统升级方法,所述电子设备中配置有用于存储系统软件包的第一存储空间和第二存储空间;所述系统升级方法包括:
在接收到来自上位机的系统升级指令时,从所述第一存储空间和所述第二存储空间中确定目标存储空间;所述目标存储空间为预设指针当前未指向的存储空间,所述预设指针始终指向存储有完整的所述系统软件包的存储空间;
接收所述上位机发送的所述电子设备的系统升级包,并向所述目标存储空间中存储所述系统升级包;
若在向所述目标存储空间存储所述系统升级包的过程中检测到预设中断事件,则不改变所述预设指针的指向;
在所述系统升级包升级完成后,控制所述预设指针指向所述目标存储空间;
在接收到开机指令时,运行所述预设指针指向的存储空间中的系统软件包。
在第一方面的一种可选的实现方式中,所述系统升级还包括:
在向所述目标存储空间存储所述系统升级包的过程中,接收所述上位机发送的所述系统升级包的传输进度;
对应地,所述在所述系统升级包升级完成后,控制所述预设指针指向所述目标存储空间,包括:
在所述传输进度为100%时,确定所述系统升级包升级完成,并控制所述预设指针指向所述目标存储空间。
在第一方面的一种可选的实现方式中,所述预设中断事件包括通信中断事件,所述通信中断事件用于描述所述电子设备与所述上位机之间的通信链路发生异常;
对应地,所述若在向所述目标存储空间存储所述系统升级包的过程中检测到预设中断事件,则不改变所述预设指针的指向,包括:
若在向所述目标存储空间存储所述系统升级包的过程中,持续预设时长未接收到所述上位机发送的所述传输进度,且最近一次接收到的所述传输进度小于100%,则确定发生所述通信中断事件,不改变所述预设指针的指向。
在第一方面的一种可选的实现方式中,所述预设中断事件包括设备故障事件,所述设备故障事件用于描述所述电子设备发生无法存储所述系统升级包的故障;所述系统升级方法还包括:
在每接收到一次所述上位机发送的所述传输进度后,确定一次所述目标存储空间的剩余空间容量;
基于当次接收到的所述传输进度以及上一次接收到的所述传输进度,确定所述系统升级包的传输状态;所述传输状态包括正在传输或未传输;
基于当次确定的所述剩余空间容量以及上一次确定的所述剩余空间容量,确定所述剩余空间容量的变化量;
对应地,所述若在向所述目标存储空间存储所述系统升级包的过程中检测到预设中断事件,则不改变所述预设指针的指向,包括:
若在向所述目标存储空间存储所述系统升级包的过程中,检测到所述传输状态为正在传输,且所述变化量为0,则确定发生所述设备故障事件,不改变所述预设指针的指向。
在第一方面的一种可选的实现方式中,所述预设指针中配置有升级指示标志位;所述升级指示标志位的值为所述第一存储空间的第一物理地址或所述第二存储空间的第二物理地址;
对应地,所述从所述第一存储空间和所述第二存储空间中确定目标存储空间,包括:
若所述升级指示标志位的当前值为所述第一物理地址,则确定所述第二存储空间为所述目标存储空间;
若所述升级指示标志位的当前值为所述第二物理地址,则确定所述第一存储空间为所述目标存储空间。
在第一方面的一种可选的实现方式中,所述系统升级方法还包括:
在运行所述目标存储空间中的所述系统升级包的过程中,若接收到系统回退指令,则执行系统重启操作;
在执行所述系统重启操作的过程中,控制所述预设指针指向非目标存储空间;所述非目标存储空间为所述第一存储空间和所述第二存储空间中除所述目标存储空间之外的另一个存储空间;
在所述系统重启操作完成后,运行所述非目标存储空间中存储的所述电子设备的旧版系统软件包。
在第一方面的一种可选的实现方式中,在所述系统升级包升级完成后,控制所述预设指针指向所述目标存储空间之后,还包括:
格式化非目标存储空间中存储的所述电子设备的旧版系统软件包;所述非目标存储空间为所述第一存储空间和所述第二存储空间中除所述目标存储空间之外的另一个存储空间。
第二方面,本申请实施例提供一种电子设备,所述电子设备中配置有用于存储系统软件包的第一存储空间和第二存储空间;所述电子设备包括:
第一确定单元,用于在接收到来自上位机的系统升级指令时,从所述第一存储空间和所述第二存储空间中确定目标存储空间;所述目标存储空间为预设指针当前未指向的存储空间,所述预设指针始终指向存储有完整的所述系统软件包的存储空间;
第一接收单元,用于接收所述上位机发送的所述电子设备的系统升级包,并向所述目标存储空间中存储所述系统升级包;
第一存储控制单元,用于若在向所述目标存储空间存储所述系统升级包的过程中检测到预设中断事件,则不改变所述预设指针的指向;
第二存储控制单元,用于在所述系统升级包升级完成后,控制所述预设指针指向所述目标存储空间;
第一运行单元,用于在接收到开机指令时,运行所述预设指针指向的存储空间中的系统软件包。
第三方面,本申请实施例提供另一种电子设备,包括存储器以及存储在所述存储器中并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一可选实现方式所述的系统升级方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一可选实现方式所述的系统升级方法。
实施本申请实施例提供的电子设备及其系统升级方法、计算机可读存储介质具有以下有益效果:
本申请实施例提供的系统升级方法,通过在电子设备中配置用于存储系统软件包的第一存储空间和第二存储空间,以及在电子设备中配置用于始终指向存储有电子设备的完整的系统软件包的存储空间;且将电子设备配置为在系统升级中断时不改变预设指针的指向,在系统升级包升级完成后控制预设指针指向目标存储空间,如此,电子设备在接收到开机指令时,通过运行预设指针指向的存储空间中的系统软件包,不仅使电子设备始终能够正常开机运行,而且在电子设备完成系统升级的情况下使电子设备可以自动运行系统升级包,从而实现对电子设备的软件操作系统的成功升级。
具体实施方式
需要说明的是,本申请实施例使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的系统升级方法可以应用于电子设备,即,本申请实施例提供的系统升级方法的执行主体可以是电子设备。示例性的,电子设备可以包括智能手机、可穿戴设备(例如智能手表、智能手环、智能眼镜、智能头盔及智能球鞋等)及智能音响等,本申请实施例对电子设备的类型不做特别限定。
需要说明的是,上述电子设备中搭载有软件操作系统,使得电子设备可以基于该软件操作系统实现各种功能。示例性的,电子设备搭载的软件操作系统可以是嵌入式系统,例如安卓(Android)操作系统,也可以是其他类型的操作系统,本申请实施例对电子设备搭载的软件操作系统的类型不做特别限定。
可选的,电子设备可以配置有用户交互界面(例如显示屏或按键等)。在电子设备配置有用户交互界面的情况下,当用户需要对电子设备的软件操作系统进行升级时,用户可以通过操作电子设备的用户交互界面来实现对电子设备的系统升级;当然,用户也可以将电子设备与上位机连接,通过上位机将电子设备的系统升级包烧录至电子设备中,从而实现对电子设备的系统升级。
可选的,电子设备也可以是未配置用户交互界面的电子设备。在电子设备未配置用户交互界面的情况下,当用户需要对电子设备的软件操作系统进行升级时,用户也需要将电子设备与上位机连接,通过上位机将电子设备的系统升级包烧录至电子设备中,从而实现对电子设备的系统升级。
示例性的,上位机可以是计算机设备,例如个人电脑或服务器等。
示例性的,电子设备与上位机之间的连接方式可以是有线连接或无线连接等。有线连接例如可以是基于通用串行总线(universal serial bus,USB)的有线连接;无线连接例如可以是基于蓝牙技术的无线连接,本申请实施例对电子设备与上位机之间的连接方式不做特别限定。
本申请实施例中,电子设备中配置有用于存储电子设备的系统软件包(即软件操作系统的安装包)的第一存储空间和第二存储空间,即,电子设备的系统软件包可以存储在第一存储空间或第二存储空间中,而系统软件包的具体存储位置需要根据实际情况确定,具体可以参考后续方法实施例中的相关描述,此处暂不详述。
其中,第一存储空间的物理地址和第二存储空间的物理地址不同。示例性的,第一存储空间和第二存储空间可以位于电子设备的同一个硬盘中,即,第一存储空间和第二存储空间可以是电子设备的同一个硬盘中的不同存储区域;当然,第一存储空间和第二存储空间也可以分别位于电子设备的不同硬盘中。本申请实施例对第一存储空间和第二存储空间在电子设备的硬盘中的位置不做特别限定,只需保证第一存储空间和第二存储空间是电子设备中的硬盘中的不同存储空间即可。
本申请实施例中,电子设备中还配置有预设指针。具体地,预设指针可以被配置为指向第一存储空间和第二存储空间中存储有电子设备的完整的系统软件包的存储空间。示例性的,当电子设备的第一存储空间中存储有电子设备的完整的系统软件包时,预设指针可以指向第一存储空间;当电子设备的第二存储空间中存储有电子设备的完整的系统软件包时,预设指针可以指向第二存储空间。基于此,本申请实施例通过将电子设备配置为,在每次开机时均运行预设指针指向的存储空间中存储的系统软件包,可以确保电子设备始终能够正常开机运行。
在具体应用中,可以通过向电子设备配置目标脚本文件,由该目标脚本文件描述本申请实施例提供的系统升级方法,令电子设备在需要进行软件操作系统的升级时执行该目标脚本文件,进而执行本申请实施例提供的系统升级方法中的各个步骤。请参阅图1,为本申请实施例提供的一种系统升级方法的示意性流程图,如图1所示,该系统升级方法可以包括S101~S105,详述如下:
S101,在接收到来自上位机的系统升级指令时,从第一存储空间和第二存储空间中确定目标存储空间。
本申请实施例中,上位机中可以存储有电子设备的系统升级包,系统升级包可以理解为电子设备的新版系统软件包,即电子设备的系统升级包的版本号高于电子设备中当前运行的系统软件包(即旧版系统软件包)的版本号。
在一种可选的实现方式中,上位机中存储的电子设备的系统升级包可以是上位机从目标服务器中获取得到的,例如可以是从目标服务器中下载得到的。其中,目标服务器可以是电子设备上搭载的软件操作系统对应的服务器。
在另一种可选的实现方式中,上位机中存储的电子设备的系统升级包可以是研发人员在上位机中制作得到的。示例性的,系统升级包的制作过程可以包括但不限于:打包项目文件、生成安装包文件的可执行代码、将可执行代码编译为可执行文件及生成系统软件安装包(即系统升级包)等。
在具体应用中,当需要对电子设备的软件操作系统进行升级时,用户可以控制电子设备与上位机建立通信连接。例如,用户可以通过USB数据线将电子设备与上位机连接,以使电子设备与上位机建立USB通信连接。再例如,用户可以控制电子设备与上位机建立蓝牙通信连接。本申请实施例对电子设备与上位机之间的通信连接方式不做特别限定。
在电子设备与上位机建立了通信连接的情况下,用户可以控制上位机向电子设备发送系统升级指令。例如,用户可以通过点击上位机中安装的设备管理工具中的系统升级控件,来控制上位机向电子设备发送系统升级指令,即,上位机可以在检测到系统升级控件被点击时,向电子设备发送系统升级指令。
系统升级指令用于说明上位机将向电子设备传输电子设备的系统升级包。
基于此,电子设备可以在接收到来自上位机的系统升级指令时,从第一存储空间和第二存储空间中确定目标存储空间。其中,目标存储空间用于存储电子设备的系统升级包。
在一种可选的实现方式中,由于电子设备中的预设指针终指向第一存储空间和第二存储空间中存储有电子设备的完整的系统软件包的存储空间,因此,为了避免电子设备在未完成升级时导致电子设备无法正常开机运行的情况,电子设备可以将系统升级包存储在第一存储空间和第二存储空间中预设指针当前未指向的存储空间,即,电子设备可以将第一存储空间和第二存储空间中预设指针当前未指向的存储空间确定为目标存储空间,这样可以使电子设备中存储的旧版系统软件包不被电子设备的系统升级包覆盖。
其中,预设指针当前未指向的存储空间可以指,电子设备接收到系统升级指令时预设指针指向的存储空间。示例性的,假设电子设备接收到系统升级指令时预设指针指向第二存储空间,则电子设备可以将第一存储空间确定为目标存储空间;假设电子设备接收到系统升级指令时预设指针指向第一存储空间,则电子设备可以将第二存储空间确定为目标存储空间。
在本申请的一个具体实施例中,预设指针中可以配置有升级指示标志位。升级指示标志位可以用于记录预设指针指向的存储空间的物理地址,即,升级指示标志位的值可以为第一存储空间的第一物理地址或第二存储空间的第二物理地址。基于此,电子设备可以通过以下步骤从第一存储空间和第二存储空间中确定目标存储空间:
步骤a1,若升级指示标志位的当前值为第一物理地址,则确定第二存储空间为目标存储空间。
步骤a2,若升级指示标志位的当前值为第二物理地址,则确定第一存储空间为目标存储空间。
其中,升级指示标志位的当前值指,电子设备接收到来自上位机的系统升级指令时升级指示标志位的值。
需要说明的是,步骤a 1和步骤a2为互斥步骤,即电子设备在执行步骤a1时不执行步骤a 2,电子设备在执行步骤a 2时不执行步骤a 1。
通过在预设指针中配置升级指示标志位,可以使电子设备更加高效地从第一存储空间和第二存储空间中确定出目标存储空间,从而可以提高系统升级包的存储效率,进而提高电子设备的系统升级效率。
S102,接收上位机发送的电子设备的系统升级包,并向目标存储空间中存储系统升级包。
本申请实施例中,上位机向电子设备发送系统升级指令后,会继续向电子设备发送电子设备的系统升级包。基于此,电子设备在确定出目标存储空间之后,若接收到上位机发送的电子设备的系统升级包,则可以向目标存储空间中存储接收到的系统升级包。
在一种可选的实现方式中,电子设备在接收到上位机发送的电子设备的系统升级包之后,可以直接向目标存储空间中存储该系统升级包。
在另一种可选的实现方式中,为了确保电子设备当前存储的是新版系统软件包,进而确保能够实现对电子设备的系统升级,系统升级包中可以包括系统升级包的版本号。基于此,S102具体可以包括以下步骤:
步骤b1,接收上位机发送的电子设备的系统升级包,从系统升级包中解析系统升级包的第一版本号。
步骤b2,获取非目标存储空间中当前存储的系统软件包的第二版本号。
步骤b3,在第一版本号高于第二版本号的情况下,向目标存储空间中存储系统升级包。
其中,非目标存储空间指电子设备接收到系统升级指令时预设指针指向的存储空间,也即,非目标存储空间为第一存储空间和第二存储空间中除目标存储空间之外的另一个存储空间。
可选的,非目标存储空间中当前存储的系统软件包中包括该系统软件包的版本号。基于此,电子设备获取非目标存储空间中当前存储的系统软件包的第二版本号的过程具体可以包括:电子设备从非目标存储空间中当前存储的系统软件包中解析该系统软件包的第二版本号。
由于在系统升级包的版本高于电子设备中当前存储的系统软件包的版本的情况下,电子设备才向目标存储空间中存储系统升级包,从而可以确保电子设备当前存储的是新版系统软件包,进而确保能够实现对电子设备的系统升级。
在一种可选的实现方式中,为了使电子设备获知系统升级包的传输进度,上位机在向电子设备传输系统升级包的过程中,还可以向电子设备发送系统升级包的传输进度。其中,系统升级包的传输进度用于描述上位机已向电子设备传输的系统升级包的大小占系统升级包的总大小的比例,系统升级包的传输进度也可以理解为电子设备的系统升级进度。作为示例而非限定,统升级包的传输进度的取值可以为0~100%中的任意一个值。
可选的,上位机在向电子设备传输系统升级包的过程中,可以实时向电子设备发送系统升级包的传输进度,如此,电子设备可以获知到系统升级包的实时传输进度。可选的,上位机在向电子设备传输系统升级包的过程中,可以每隔预设时间间隔向电子设备发送一次系统升级包的传输进度,如此,可以降低上位机和电子设备的功耗。其中,预设时间间隔可以根据实际需求设置。
基于此,在本申请的一个实施例中,如图2所示,电子设备的系统升级方法还可以包括S201:在向目标存储空间存储系统升级包的过程中,接收上位机发送的系统升级包的传输进度。
需要说明的是,S201与S102可以为并列步骤,即电子设备可以在接收上位机发送的电子设备的系统升级包,并向目标存储空间中存储系统升级包的同时,接收上位机发送的系统升级包的传输进度。本申请实施例对S201与S102的被执行顺序不做特别限定。
S103,若在向目标存储空间存储系统升级包的过程中检测到预设中断事件,则不改变预设指针的指向。
在一种可选的实现方式中,预设中断事件可以包括通信中断事件。示例性的,通信中断事件可以用于描述电子设备与上位机之间的通信链路发生异常,导致上位机无法继续向电子设备传输数据(例如系统升级包或系统升级包的传输进度等)。基于此,在一种可选的实现方式中,S103具体可以包括如图2所示的S1031,详述如下:
S1031,若在向目标存储空间存储系统升级包的过程中,持续预设时长未接收到上位机发送的系统升级包的传输进度,且最近一次接收到的系统升级包的传输进度小于100%,则确定发生通信中断事件,不改变预设指针的指向。
本实现方式中,电子设备可以对每次接收到的系统升级包的传输进度以及接收时间进行记录。示例性的,电子设备可以将每次接收到的每次接收到的系统升级包的传输进度以及接收时间存储在其本地存储器中。
基于此,电子设备可以在每次接收到系统升级包的传输进度时控制预设计时器从0开始计时,若计时器的计时时长等于预设时长时电子设备未再次接收到系统升级包的传输进度,则电子设备可以从其本地存储器中获取最近一次接收到的系统升级包的传输进度,若最近一次接收到的系统升级包的传输进度小于100%,则说明上位机未完成系统升级包的传输,且上位机无法继续向电子设备传输系统升级包,此时电子设备可以确定发生通信中断事件。
示例性的,在上位机每隔预设时间间隔向电子设备发送一次系统升级包的传输进度的情况下,预设时长可以等于或大于预设时间间隔。例如,若预设时间间隔为5秒,则电子设备在向目标存储空间存储系统升级包的过程中,若持续5秒未接收到上位机发送的系统升级包的传输进度,则确定发生通信中断事件,此时电子设备不改变预设指针的指向。
示例性的,在上位机实时向电子设备发送系统升级包的传输进度的情况下,预设时长可以根据实际需求设置,此处对其不做特别限定。
由于在发生通信中断事件且电子设备的系统升级包未传输完成时,电子设备不改变预设指针的指向,即电子设备控制预设指针依旧指向存储有电子设备的旧版系统软件包的存储空间,因此,电子设备后续通过运行预设指针当前指向的存储空间中的系统软件包,可以确保电子设备能够正常开机运行。
在另一种可选的实现方式中,预设中断事件可以包括设备故障事件。示例性的,设备故障事件可以用于描述电子设备发生无法存储系统升级包的故障,例如,电子设备电量不足或电子设备发生损坏等。
基于此,在另一种可选的实现方式中,电子设备的系统升级方法还可以包括如图2所示的S202~S204,详述如下:
S202,在每接收到一次上位机发送的系统升级包的传输进度后,确定一次目标存储空间的剩余空间容量。
S203,基于当次接收到的系统升级包的传输进度以及上一次接收到的系统升级包的传输进度,确定系统升级包的传输状态。
示例性的,系统升级包的传输状态可以包括正在传输或未传输。
可选的,在当次接收到的系统升级包的传输进度等于上一次接收到的系统升级包的传输进度时,电子设备可以确定系统升级包的传输状态为未传输。
可选的,在当次接收到的系统升级包的传输进度大于上一次接收到的系统升级包的传输进度时,电子设备可以确定系统升级包的传输状态为正在传输。
S204,基于当次确定的目标存储空间的剩余空间容量以及上一次确定的目标存储空间的剩余空间容量,确定目标存储空间的剩余空间容量的变化量。
具体地,电子设备可以计算当次确定的目标存储空间的剩余空间容量与上一次确定的目标存储空间的剩余空间容量的差值,将该差值确定为目标存储空间的剩余空间容量的变化量。示例性的,假设当次确定的目标存储空间的剩余空间容量为C2,上一次确定的目标存储空间的剩余空间容量为C1,则电子设备可以将C2-C1确定为目标存储空间的剩余空间容量的变化量。
对应地,S103具体可以包括如图2所示的S1032,详述如下:
S1032,若在向目标存储空间存储系统升级包的过程中,检测到系统升级包的传输状态为正在传输,且目标存储空间的剩余空间容量的变化量为0,则确定发生设备故障事件,不改变预设指针的指向。
本实现方式中,电子设备在向目标存储空间存储系统升级包的过程中,若检测到统升级包的传输状态为正在传输,且目标存储空间的剩余空间容量的变化量为0,则说明目标存储空间中存储的系统升级包的大小不再改变,即说明电子设备无法继续向目标存储空间中存储系统升级包,此时电子设备可以确定发生设备故障事件,该情况下,电子设备不改变预设指针的指向。
由于在发生设备故障事件且电子设备的系统升级包未传输完成时,电子设备不改变预设指针的指向,即电子设备控制预设指针依旧指向存储有电子设备的旧版系统软件包的存储空间,因此,电子设备后续通过运行预设指针当前指向的存储空间中的系统软件包,可以确保电子设备能够正常开机运行。
S104,在系统升级包升级完成后,控制预设指针指向目标存储空间。
在一种可选的实现方式中,在上位机向电子设备传输系统升级包的传输进度的情况下,S105具体可以包括以下步骤:
在电子设备的系统升级包的传输进度为100%时,确定系统升级包升级完成,并控制预设指针指向目标存储空间。
由于电子设备将系统升级包(即新版系统软件包)存储在目标存储空间中,因此在系统升级包升级完成后,通过控制预设指针指向目标存储空间,可以确保电子设备后续不仅能够正常开机运行,而且能够运行系统升级包,从而实现对电子设备的软件操作系统的成功升级。
S105,在接收到开机指令时,运行预设指针当前指向的存储空间中的系统软件包。
其中,预设指针当前指向的存储空间指,电子设备在接收到开机指令时预设指针指向的存储空间。
示例性的,在电子设备未完成系统升级的情况下,由于电子设备中的预设指针依旧指向非目标存储空间,因此,电子设备在接收到开机指令时,可以运行非目标存储空间中的旧版软件包。其中,非目标存储空间为第一存储空间和第二存储空间中除目标存储空间之外的另一个存储空间。
在电子设备完成系统升级的情况下,即在电子设备的系统升级包升级完成后,由于电子设备控制预设指针指向目标存储空间,因此,电子设备在接收到开机指令时,可以运行目标存储空间中的系统升级包(即新版系统软件包)。
以上可以看出,本实施例提供的系统升级方法,通过在电子设备中配置用于存储系统软件包的第一存储空间和第二存储空间,以及在电子设备中配置用于始终指向存储有电子设备的完整的系统软件包的存储空间;且将电子设备配置为在系统升级中断时不改变预设指针的指向,在系统升级包升级完成后控制预设指针指向目标存储空间,如此,电子设备在接收到开机指令时,通过运行预设指针指向的存储空间中的系统软件包,不仅使电子设备始终能够正常开机运行,而且在电子设备完成系统升级的情况下使电子设备可以自动运行系统升级包,从而实现对电子设备的软件操作系统的成功升级。
请参阅图3,为本申请又一个实施例提供的一种电子设备的系统升级方法的示意性流程图。本实施例与图1或图2对应的实施例的区别在于,本实施例在S105之后,还可以包括S301~S303,详述如下:
S301,在运行目标存储空间中的系统升级包的过程中,若接收到系统回退指令,则执行系统重启操作。
本实施例中,电子设备完成系统升级后,可以不删除非目标存储空间中存储的电子设备的旧版系统软件包。
基于此,在具体应用中,在电子设备完成系统升级且运行目标存储空间中的系统升级包的过程中,若用户对新版系统软件包不满意,则用户可以选择将电子设备的系统软件包降版为旧版系统软件包。示例性的,当用户想要将电子设备的系统软件包降版为旧版系统软件包时,用户可以点击电子设备中的系统回退控件。电子设备可以在检测到电子设备中的系统回退控件被点击时,确定接收到系统回退指令,此时电子设备可以执行系统重启操作。
S302,在执行系统重启操作的过程中,控制预设指针指向非目标存储空间。
S303,在系统重启操作完成后,运行非目标存储空间中存储的电子设备的旧版系统软件包。
本实施例中,由于电子设备在完成系统升级后不删除非目标存储空间中存储的电子设备的旧版系统软件包,且电子设备在运行目标存储空间中的系统升级包的过程中,在接收到系统回退指令时执行系统重启操作,且在执行系统重启操作的过程中控制预设指针指向非目标存储空间,因此使得电子设备在系统重启操作完成后能够运行非目标存储空间中存储的电子设备的旧版系统软件包,从而实现了对电子设备的软件操作系统的回退,提高了用户的使用体验。
请继续参阅图4,在本申请的又一个实施例中,在S105之后,电子设备的系统升级方法还可以包括S401,详述如下:
S401,格式化非目标存储空间中存储的电子设备的旧版系统软件包。
在一个具体的实施例中,电子设备格式化非目标存储空间中存储的电子设备的旧版系统软件包的过程具体可以为:电子设备删除非目标存储空间中存储的电子设备的旧版系统软件包。
本实施例中,由于在电子设备完成系统升级后格式化非目标存储空间中存储的电子设备的旧版系统软件包,因此可以节省电子设备的存储空间。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于上述实施例所提供的电子设备的系统升级方法,本申请实施例进一步给出实现上述方法实施例的电子设备的实施例。请参阅图5,为本申请实施例提供的一种电子设备的结构示意图。为了便于说明,仅示出了与本实施例相关的部分。如图5所示,电子设备50可以包括:第一确定单元51、第一接收单元52、第一存储控制单元53、第二存储控制单元54及第一运行单元55。其中:
第一确定单元51用于在接收到来自上位机的系统升级指令时,从所述第一存储空间和所述第二存储空间中确定目标存储空间;所述目标存储空间为预设指针当前未指向的存储空间,所述预设指针始终指向存储有完整的所述系统软件包的存储空间。
第一接收单元52用于接收所述上位机发送的所述电子设备的系统升级包,并向所述目标存储空间中存储所述系统升级包。
第一存储控制单元53用于若在向所述目标存储空间存储所述系统升级包的过程中检测到预设中断事件,则不改变所述预设指针的指向。
第二存储控制单元54用于在所述系统升级包升级完成后,控制所述预设指针指向所述目标存储空间。
第一运行单元55用于在接收到开机指令时,运行所述预设指针指向的存储空间中的系统软件包。
可选的,电子设备还可以包括第二接收单元。
第二接收单元用于在向所述目标存储空间存储所述系统升级包的过程中,接收所述上位机发送的所述系统升级包的传输进度;
对应地,第一运行单元55具体用于:
在所述传输进度为100%时,确定所述系统升级包升级完成,并控制所述预设指针指向所述目标存储空间。
可选的,所述预设中断事件包括通信中断事件,所述通信中断事件用于描述所述电子设备与所述上位机之间的通信链路发生异常;对应地,第一存储控制单元53具体用于:
若在向所述目标存储空间存储所述系统升级包的过程中,持续预设时长未接收到所述上位机发送的所述传输进度,且最近一次接收到的所述传输进度小于100%,则确定发生所述通信中断事件,不改变所述预设指针的指向。
可选的,所述预设中断事件包括设备故障事件,所述设备故障事件用于描述所述电子设备发生无法存储所述系统升级包的故障;对应地,电子设备还可以包括剩余容量确定单元、传输状态确定单元及变化量确定单元;其中:
剩余容量确定单元用于在每接收到一次所述上位机发送的所述传输进度后,确定一次所述目标存储空间的剩余空间容量。
传输状态确定单元用于基于当次接收到的所述传输进度以及上一次接收到的所述传输进度,确定所述系统升级包的传输状态;所述传输状态包括正在传输或未传输。
变化量确定单元用于基于当次确定的所述剩余空间容量以及上一次确定的所述剩余空间容量,确定所述剩余空间容量的变化量;
对应地,第一存储控制单元53具体用于:
若在向所述目标存储空间存储所述系统升级包的过程中,检测到所述传输状态为正在传输,且所述变化量为0,则确定发生所述设备故障事件,不改变所述预设指针的指向。
可选的,所述预设指针中配置有升级指示标志位;所述升级指示标志位的值为所述第一存储空间的第一物理地址或所述第二存储空间的第二物理地址;对应地,第一确定单元51具体用于:
若所述升级指示标志位的当前值为所述第一物理地址,则确定所述第二存储空间为所述目标存储空间;
若所述升级指示标志位的当前值为所述第二物理地址,则确定所述第一存储空间为所述目标存储空间。
可选的,电子设备还可以包括重启单元、第三存储控制单元及第二运行单元。其中:
重启单元用于在运行所述目标存储空间中的所述系统升级包的过程中,若接收到系统回退指令,则执行系统重启操作。
第三存储控制单元用于在执行所述系统重启操作的过程中,控制所述预设指针指向非目标存储空间;所述非目标存储空间为所述第一存储空间和所述第二存储空间中除所述目标存储空间之外的另一个存储空间;
第二运行单元用于在所述系统重启操作完成后,运行所述非目标存储空间中存储的所述电子设备的旧版系统软件包。
可选的,电子设备还可以包括格式化单元。
格式化单元用于格式化非目标存储空间中存储的所述电子设备的旧版系统软件包;所述非目标存储空间为所述第一存储空间和所述第二存储空间中除所述目标存储空间之外的另一个存储空间。
需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参照方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将电子设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述电子设备中各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图6,图6为本申请另一实施例提供的一种电子设备的结构示意图。如图6所示,本实施例提供的电子设备6可以包括:处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62,例如电子设备的系统升级方法对应的程序。处理器60执行计算机程序62时实现上述电子设备的系统升级方法实施例中的步骤,例如图1所示的S101~S105。或者,处理器60执行计算机程序62时实现上述电子设备实施例中各模块/单元的功能,例如图5所示的单元51~55的功能。
示例性的,计算机程序62可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器61中,并由处理器60执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序62在电子设备6中的执行过程。例如,计算机程序62可以被分割成第一确定单元、第一接收单元、第一存储控制单元、第二存储控制单元及第一运行单元,各单元的具体功能请参阅图5对应的实施例中的相关描述,此处不赘述。
本领域技术人员可以理解,图6仅仅是电子设备6的示例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
处理器60可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器61可以是电子设备6的内部存储单元,例如电子设备6的硬盘或内存。存储器61也可以是电子设备6的外部存储设备,例如电子设备6上配备的插接式硬盘、智能存储卡(smart media card,SMC)、安全数字(secure digital,SD)卡或闪存卡(flash card)等。进一步地,存储器61还可以既包括电子设备6的内部存储单元也包括外部存储设备。存储器61用于存储计算机程序以及电子设备所需的其他程序和数据。存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例所述的系统升级方法中的各个步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备实现上述各个方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参照其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。