CN114461240A - 软件升级方法、软件升级系统及电子设备 - Google Patents
软件升级方法、软件升级系统及电子设备 Download PDFInfo
- Publication number
- CN114461240A CN114461240A CN202110745678.2A CN202110745678A CN114461240A CN 114461240 A CN114461240 A CN 114461240A CN 202110745678 A CN202110745678 A CN 202110745678A CN 114461240 A CN114461240 A CN 114461240A
- Authority
- CN
- China
- Prior art keywords
- electronic device
- upgraded
- software version
- version
- terminal
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种软件升级方法、软件升级系统及电子设备。该方法包括:第一电子设备先从服务器获取第一电子设备的待升级软件版本的信息。接着,第一电子设备可以接收局域网内至少一个第二电子设备广播的第一待升级消息,确定第二电子设备的待升级软件版本的信息。第一电子设备根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定至少一个完全二叉树。第一电子设备检测到本端为至少一个第二电子设备中的目标电子设备的父节点,向目标电子设备发送待升级软件版本。多个电子设备在升级待升级软件版本的情况下,占用较小的服务器资源,并且,提高电子设备的下载速度。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种软件升级方法、软件升级系统及电子设备。
背景技术
为了优化软件性能、增加新的功能,电子设备需要下载并升级待升级软件版本。
然而,若电子设备与其他电子设备都需要下载并升级待升级软件版本,则电子设备与其他电子设备都要从服务器下载待升级软件版本,从而占用较大的服务器资源,导致服务器资源压力较大,可以承载的用户数量降低,并且,电子设备的下载速度较慢。
发明内容
本申请提供一种电子设备、软件升级系统及电子设备,能够在电子设备和其他电子设备都可以升级待升级软件版本的情况下,占用较小的服务器资源,并且,提高电子设备的下载速度。
第一方面,本申请提供一种电子设备,电子设备包括一个或多个处理器,存储器,以及一个或多个计算机程序。其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得第一电子设备执行以下步骤:第一电子设备先从服务器获取第一电子设备的待升级软件版本的信息。接着,第一电子设备可以接收局域网内至少一个第二电子设备广播的第一待升级消息,以确定至少一个第二电子设备的待升级软件版本的信息。接着,第一电子设备根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,可以确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树;第一电子设备根据至少一个完全二叉树,检测到本端为至少一个第二电子设备中的目标电子设备的父节点,可以向目标电子设备发送待升级软件版本。
本申请中,第一电子设备可以从服务器获取本端的待升级软件版本的信息,接收同一局域网内的至少一个第二电子设备广播的第一待升级消息,以确定至少一个第二电子设备的待升级软件版本的信息。之后,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树,根据二叉树可以确定第一电子设备为目标电子设备的父节点,从而使目标电子设备从第一电子设备处获取待升级软件版本,而非从服务器获取待升级软件版本,使得在第一电子设备和至少一个电子设备都可以升级待升级软件版本的情况下,占用较小的服务器资源,并且,提高第一电子设备和至少一个电子设备的下载速度。
一个示例中,第一电子设备可以为本申请中的终端A1,第二电子设备可以为本申请中的终端A2和终端A5。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A1的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A2和终端A5广播的终端A2和终端A5的待升级软件版本的信息。在此基础上,第一电子设备可以为本申请中的终端A2,第二电子设备可以为本申请中的终端A8。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A2的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A8广播的终端A8的待升级软件版本的信息。
另一个示例中,第一电子设备可以为本申请中的终端A10,第二电子设备可以为本申请中的终端A3和终端A6。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A10的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A3和终端A6广播的终端A3和终端A6的待升级软件版本的信息。在此基础上,第一电子设备可以为本申请中的终端A3,第二电子设备可以为本申请中的终端A9。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A3的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A9广播的终端A9的待升级软件版本的信息。
又一个示例中,第一电子设备可以为本申请中的终端A11,第二电子设备可以为本申请中的终端A4和终端A7。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A11的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A4和终端A7广播的终端A4和终端A7的待升级软件版本的信息。
又一个示例中,基于上述示例,至少一个完全二叉树可以包括本申请的以终端A1为根节点的第一个完全二叉树,以终端A10为根节点的第二个完全二叉树,以及以终端A11为根节点的第三个完全二叉树。
在一些可能实现的方式中,上述版本更新表包括第一电子设备和至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,第一电子设备和至少一个第二电子设备的下载状态包括第一电子设备和至少一个第二电子设备开始从服务器下载待升级软件版本或未从服务器下载待升级软件版本。第一电子设备可以通过第一电子设备和至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息,创建版本更新表,为建立至少一个完全二叉树做准备。在一些可能实现的方式中,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树时,计算机程序使得第一电子设备执行如下步骤:根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;根据版本更新表,确定第一电子设备的待升级软件版本的版本号与至少一个第二电子设备的待升级软件版本的版本号相同;根据版本更新表,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
示例性的,以本申请的版本更新表为例,终端A1~A11的待升级软件版本都为版本a,其中终端A1、终端A10和终端A11已经开始从服务器下载版本a,且已知终端A1~A11的地址信息,从而可以根据版本更新表建立三个完全二叉树。
在一些可能实现的方式中,上述第一电子设备和至少一个第二电子设备中开始从服务器下载待升级软件版本的数量,与至少一个完全二叉树的数量相同。
示例性的,终端A1、终端A10和终端A11已经开始从服务器下载版本a,则可以建立三个完全二叉树。进一步的,相较于建立一个完全二叉树,建立多个完全二叉树可以减小完全二叉树的树高,从而节省总下载时长。
在一些可能实现的方式中,上述从服务器获取第一电子设备的待升级软件版本的信息时,计算机程序使得所述第一电子设备执行如下步骤:向服务器发送版本升级请求;接收服务器发送的版本升级提醒。第一电子设备可以主动向服务器发送版本升级请求,在服务器检测到第一电子设备的软件版本需要升级时,接收服务器发送的版本升级提醒。此外,在另一些可能实现的方式中,若对第一电子设备的软件版本进行强制升级,第一电子设备也可以不用向服务器发送版本升级请求,即可接收到版本升级提醒。
在一些可能实现的方式中,上述第一电子设备将待升级软件版本发送至目标电子设备时,计算机程序使得第一电子设备执行如下步骤:与目标电子设备建立连接关系;通过连接关系向目标电子设备发送待升级软件版本。第一电子设备在确定是目标电子设备的父节点后,还可以与第一电子设备建立连接关系,并通过连接关系向目标电子设备发送待升级软件版本。
在一些可能实现的方式中,上述第一电子设备将待升级软件版本发送至目标电子设备之后,计算机程序还使得所述第一电子设备执行如下步骤:接收目标电子设备发送的下载完成提醒;安装待升级软件版本,删除待升级软件版本的安装包。第一电子设备(例如终端A1)接收到目标电子设备(例如终端A2和终端A5)发送的下载完成提醒后,得知其所有子节点都已下载完待升级软件版本,且本端不用再向其他电子设备发送待升级软件版本。此情况下,第一电子设备可以重启并安装待升级软件版本,删除待升级软件版本的安装包,以节省第一电子设备的存储空间。
在一些可能实现的方式中,当目标电子设备包括第一目标电子设备和第二目标电子设备,且第一子目标电子设备离开局域网时,计算机程序还使得第一电子设备执行如下步骤:检测预设时间未接收到目标电子设备广播的第一待升级消息;接收第二目标电子设备发送的下载完成提醒;安装待升级软件版本,删除待升级软件版本的安装包。第一电子设备的其中一个子节点离开局域网,另一个子节点仍在局域网时,若在预设时间内未接收到目标电子设备广播的第一待升级消息,则接收第二目标电子设备发送的下载完成提醒后,第一电子设备即可安装待升级软件版本,删除待升级软件版本的安装包,以节省存储空间。
在一些可能实现的方式中,当目标电子设备离开所述局域网时,计算机程序还使得第一电子设备执行如下步骤:检测预设时间未接收到目标电子设备广播的第一待升级消息;安装待升级软件版本,删除待升级软件版本的安装包。第一电子设备具有一个或两个子节点,且一个或两个子节点都离开局域网时,若在预设时间内未接收到两个子节点广播的第一待升级消息,则第一电子设备即可安装待升级软件版本,删除待升级软件版本的安装包,以节省存储空间。
在一些可能实现的方式中,删除待升级软件版本的安装包之前,计算机程序还使得所述第一电子设备执行如下步骤:向至少一个第二电子设备广播第二待升级消息;第二待升级消息包括第一电子设备的待升级软件版本;删除待升级软件版本的安装包之后,计算机程序还使得第一电子设备执行如下步骤:停止向至少一个第二电子设备广播第二待升级消息。第一电子设备在删除待升级软件版本的安装包之前,也可以向至少一个第二电子设备广播第二待升级消息,以使至少一个第二电子设备建立版本更新表。第一电子设备在删除待升级软件版本的安装包之后,不能再作为第二电子设备的父节点,也无需作为第二电子设备的子节点,因此,无需再广播第二待升级消息。
在一些可能实现的方式中,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树之前,计算机程序还使得第一电子设备执行如下步骤:接收局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;第三待升级消息包括至少一个第三电子设备的待升级软件版本的信息,至少一个第三电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同。局域网内还可能包括至少一个第三电子设备(例如终端B1~B14),其待升级软件版本(版本b)与第一电子设备的待升级软件版本(版本a)不同,此情况下,至少一个完全二叉树不包括至少一个第三电子设备。此外,版本更新表中可以包括至少一个第三电子设备的待升级软件版本的信息。
在一些可能实现的方式中,计算机程序还使得第一电子设备执行如下步骤:接收至少一个第二电子设备广播的第一待升级消息和新加入局域网的第四电子设备(可以为本申请的终端A12)广播的第四待升级消息;第四待升级消息包括所述第四电子设备的待升级软件版本的信息;当检测到第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号相同时,确定包含第一电子设备、至少一个第二电子设备、以及第四电子设备的至少一个完全二叉树;当第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同时,确定包含第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。局域网内还可以增加第四电子设备,增加第四电子设备后,第一电子设备、至少一个第二电子设备、以及第四电子设备还可以通过广播各自的待升级软件版本的信息,以建立新的完全二叉树。
第二方面,本申请提供一种电子设备,电子设备包括一个或多个处理器,存储器,以及一个或多个计算机程序。其中所述一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得第一电子设备执行以下步骤:第一电子设备先从服务器获取第一电子设备的待升级软件版本的信息。接着,第一电子设备可以接收局域网内至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息,以确定至少一个第二电子设备的待升级软件版本的信息;接着,第一电子设备根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,可以确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树;第一电子设备根据至少一个完全二叉树,检测到第一电子设备为至少一个第二电子设备中的第一目标电子设备的子节点,可以从第一目标电子设备获取待升级软件版本。
本申请中,第一电子设备可以从服务器获取本端的待升级软件版本的信息,接收同一局域网内的至少一个第二电子设备广播的第一待升级消息,以确定至少一个第二电子设备的待升级软件版本的信息。之后,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树,根据二叉树可以确定第一电子设备为第一目标电子设备的父节点,从而从第一目标电子设备处获取待升级软件版本,而非从服务器获取待升级软件版本,使得在第一电子设备和至少一个电子设备都可以升级待升级软件版本的情况下,占用较小的服务器资源,并且,提高第一电子设备和至少一个电子设备的下载速度。
一个示例中,第一电子设备可以为本申请中的终端A2和终端A5,第二电子设备可以为本申请中的终端A1。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A2和终端A5的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A1广播的终端A1的待升级软件版本的信息。在此基础上,第一电子设备可以为本申请中的终端A8,第二电子设备可以为本申请中的终端A2。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A8的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A2广播的终端A2的待升级软件版本的信息。
另一个示例中,第一电子设备可以为本申请中的终端A3和终端A6,第二电子设备可以为本申请中的终端A10。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A3和终端A6的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A10广播的终端A10的待升级软件版本的信息。在此基础上,第一电子设备可以为本申请中的终端A9,第二电子设备可以为本申请中的终端A3。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A9的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A3广播的终端A3的待升级软件版本的信息。
又一个示例中,第一电子设备可以为本申请中的终端A4和终端A7,第二电子设备可以为本申请中的终端A11。此情况下,第一电子设备从服务器获取第一电子设备的待升级软件版本的信息,可以为终端A4和终端A7的待升级软件版本的信息;第一电子设备接收的至少一个第二电子设备广播的第一待升级消息,可以包括终端A11广播的终端A11的待升级软件版本的信息。
又一个示例中,基于上述示例,至少一个完全二叉树可以包括本申请的以终端A1为根节点的第一个完全二叉树,以终端A10为根节点的第二个完全二叉树,以及以终端A11为根节点的第三个完全二叉树。
在一些可能实现的方式中,上述版本更新表包括所述第一电子设备和所述至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,所述第一电子设备和所述至少一个第二电子设备的下载状态包括所述第一电子设备和所述至少一个第二电子设备开始从所述服务器下载所述待升级软件版本或未从所述服务器下载所述待升级软件版本。第一电子设备可以通过第一电子设备和至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息,创建版本更新表,为建立至少一个完全二叉树做准备。
在一些可能实现的方式中,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树时,计算机程序使得第一电子设备执行如下步骤:根据第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;根据版本更新表,确定第一电子设备的待升级软件版本的版本号与至少一个第二电子设备的待升级软件版本的版本号相同;根据版本更新表,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
示例性的,以本申请的版本更新表为例,终端A1~A11的待升级软件版本都为版本a,其中终端A1、终端A10和终端A11已经开始从服务器下载版本a,且已知终端A1~A11的地址信息,从而可以根据版本更新表建立三个完全二叉树。
在一些可能实现的方式中,上述第一电子设备和至少一个第二电子设备中开始从服务器下载待升级软件版本的数量,与至少一个完全二叉树的数量相同。
示例性的,终端A1、终端A10和终端A11已经开始从服务器下载版本a,则可以建立三个完全二叉树。进一步的,相较于建立一个完全二叉树,建立多个完全二叉树可以减小完全二叉树的树高,从而节省总下载时长。
在一些可能实现的方式中,从服务器获取第一电子设备的待升级软件版本的信息时,计算机程序使得第一电子设备执行如下步骤:向服务器发送版本升级请求;接收服务器发送的版本升级提醒。第一电子设备可以主动向服务器发送版本升级请求,在服务器检测到第一电子设备的软件版本需要升级时,接收服务器发送的版本升级提醒。此外,在另一些可能实现的方式中,若对第一电子设备的软件版本进行强制升级,第一电子设备也可以不用向服务器发送版本升级请求,即可接收到版本升级提醒。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取待升级软件版本时,计算机程序使得第一电子设备执行如下步骤:与第一目标电子设备建立连接关系;通过连接关系从第一目标电子设备获取待升级软件版本。第一电子设备在确定是目标电子设备的子节点后,还可以与第一电子设备建立连接关系,并通过连接关系从目标电子设备获取待升级软件版本。
在一些可能实现的方式中,上述第一电子设备从第一目标电子设备获取待升级软件版本之后,计算机程序还使得第一电子设备执行如下步骤:向第一目标电子设备发送下载完成提醒;检测预设时间未接收到第一目标电子设备广播的所述第一待升级消息。第一电子设备(例如终端A2和终端A5)下载完待升级软件版本后,可以向第一目标电子设备(例如终端A1)发送下载完成提醒,第一目标电子设备在得知其所有子节点都已下载完待升级软件版本,且本端不用再向其他电子设备发送待升级软件版本,可以重启并安装待升级软件版本,删除待升级软件版本的安装包,并不再广播第一待升级软件版本的消息,以节省第一目标电子设备的存储空间。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取待升级软件版本之后,计算机程序还使得第一电子设备执行如下步骤:检测到第一电子设备无子节点;安装所述待升级软件版本,删除所述待升级软件版本的安装包。第一电子设备下载完待升级软件版本,且检测到本端无子节点后,可以安装所述待升级软件版本,删除所述待升级软件版本的安装包,以节省第一电子设备的存储空间。
在一些可能实现的方式中,删除待升级软件版本的安装包之前,计算机程序还使得第一电子设备执行如下步骤:向至少一个第二电子设备广播第二待升级消息;第二待升级消息包括第一电子设备的待升级软件版本;删除待升级软件版本的安装包之后,计算机程序还使得第一电子设备执行如下步骤:停止向至少一个第二电子设备广播第二待升级消息。第一电子设备在删除待升级软件版本的安装包之前,也可以向至少一个第二电子设备广播第二待升级消息,以使至少一个第二电子设备建立版本更新表。第一电子设备在删除待升级软件版本的安装包之后,不能再作为第二电子设备的父节点,也无需作为第二电子设备的子节点,因此,无需再广播第二待升级消息。
在一些可能实现的方式中,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树之前,计算机程序还使得第一电子设备执行如下步骤:接收局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;第三待升级消息包括至少一个第三电子设备的待升级软件版本的信息,至少一个第三电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同。局域网内还可能包括至少一个第三电子设备(例如终端B1~B14),其待升级软件版本(版本b)与第一电子设备的待升级软件版本(版本a)不同,此情况下,至少一个完全二叉树不包括至少一个第三电子设备。此外,版本更新表中可以包括至少一个第三电子设备的待升级软件版本的信息。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取完整的待升级软件版本之前,第一目标电子设备离开局域网,计算机程序还使得第一电子设备执行如下步骤:向至少一个第二电子设备广播第二待升级消息;接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;第一待升级消息包括至少一个第二电子设备的待升级软件版本的信息;根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;检测到第一电子设备为第二目标电子设备的子节点,第一电子设备从第二目标电子设备获取待升级软件版本;第二目标电子设备包含于至少部分第二电子设备。第一电子设备正在从第一目标电子设备获取待升级软件版本,或者第一电子设备还未从第一目标电子设备获取待升级软件版本时,第一目标电子设备离开局域网,此情况下,第一电子设备和至少一个第二电子设备可以重新广播待升级软件版本的消息,建立新的完全二叉树,并从新的父节点(第二目标电子设备)获取待升级软件版本。
示例性的,第一目标电子设备可以为本申请的终端A1,第一电子设备可以为本申请的终端A2和终端A5,终端A2对应的第二目标电子设备可以为本申请的终端A10,终端A5对应的第二目标电子设备可以为本申请的终端A11。
在一些可能实现的方式中,若所述第一电子设备从第一目标电子设备获取部分待升级软件版本,第一目标电子设备离开所述局域网,第一电子设备从第二目标电子设备获取待升级软件版本时,计算机程序还使得第一电子设备执行如下步骤:自获取部分继续从第二目标电子设备获取所述待升级软件版本,以实现断点续传。
在一些可能实现的方式中,计算机程序还使得第一电子设备执行如下步骤:接收至少一个第二电子设备广播的所述第一待升级消息和新加入局域网的第四电子设备(可以为本申请的终端A12)广播的第四待升级消息;第四待升级消息包括第四电子设备的待升级软件版本的信息;当检测到第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号相同时,确定包含第一电子设备、至少一个第二电子设备、以及第四电子设备的至少一个完全二叉树;当第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同时,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。局域网内还可以增加第四电子设备,增加第四电子设备后,第一电子设备、至少一个第二电子设备、以及第四电子设备还可以通过广播各自的待升级软件版本的信息,以建立新的完全二叉树。
第三方面,本申请提供一种软件升级方法,包括:从服务器获取第一电子设备的待升级软件版本的信息。接着,接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息。接着,第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;至少一个第二电子设备与第一电子设备在同一局域网;接着,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树;接着,检测到第一电子设备为目标电子设备的父节点,第一电子设备将所述待升级软件版本发送至目标电子设备;目标电子设备包含于至少一个第二电子设备。
在一些可能实现的方式中,版本更新表包括所述第一电子设备和至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,第一电子设备和至少一个第二电子设备的下载状态包括第一电子设备和至少一个第二电子设备开始从服务器下载待升级软件版本或未从服务器下载所述待升级软件版本。
在一些可能实现的方式中,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树,包括:根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,创建版本更新表。接着,根据版本更新表,确定第一电子设备的待升级软件版本的版本号与至少一个第二电子设备的待升级软件版本的版本号相同。接着,根据版本更新表,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
在一些可能实现的方式中,第一电子设备和至少一个第二电子设备中开始从服务器下载待升级软件版本的数量,与至少一个完全二叉树的数量相同。
在一些可能实现的方式中,从服务器获取第一电子设备的待升级软件版本的信息,包括:向服务器发送版本升级请求;接收服务器发送的版本升级提醒。
在一些可能实现的方式中,第一电子设备将待升级软件版本发送至目标电子设备,包括:与目标电子设备建立连接关系;通过连接关系向目标电子设备发送待升级软件版本。
在一些可能实现的方式中,第一电子设备将待升级软件版本发送至目标电子设备之后,方法还包括:接收目标电子设备发送的下载完成提醒;安装待升级软件版本,删除待升级软件版本的安装包。
在一些可能实现的方式中,当目标电子设备包括第一目标电子设备和第二目标电子设备,且第一子目标电子设备离开局域网时,所述方法还包括:检测预设时间未接收到目标电子设备广播的第一待升级消息;接收第二目标电子设备发送的下载完成提醒;安装待升级软件版本,删除待升级软件版本的安装包。
在一些可能实现的方式中,当目标电子设备离开局域网时,所述方法还包括:检测预设时间未接收到目标电子设备广播的第一待升级消息;安装待升级软件版本,删除待升级软件版本的安装包。
在一些可能实现的方式中,安装待升级软件版本,删除待升级软件版本的安装包之前,所述方法还包括:向至少一个第二电子设备广播第二待升级消息;第二待升级消息包括第一电子设备的待升级软件版本;删除待升级软件版本的安装包之后,所述方法还包括:停止向至少一个第二电子设备广播第二待升级消息。
在一些可能实现的方式中,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树之前,所述方法还包括:接收局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;第三待升级消息包括至少一个第三电子设备的待升级软件版本的信息,至少一个第三电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同。
在一些可能实现的方式中,所述方法还包括:接收至少一个第二电子设备广播的第一待升级消息和新加入局域网的第四电子设备广播的第四待升级消息;第四待升级消息包括第四电子设备的待升级软件版本的信息;当检测到第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号相同时,确定包含第一电子设备、至少一个第二电子设备、以及第四电子设备的至少一个完全二叉树;当第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同时,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,一种软件升级方法,应用于第一电子设备,所述方法包括:从服务器获取第一电子设备的待升级软件版本的信息;接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;第一待升级消息包括至少一个第二电子设备的待升级软件版本的信息;至少一个第二电子设备与第一电子设备在同一局域网;根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树;检测到第一电子设备为第一目标电子设备的子节点,第一电子设备从第一目标电子设备获取待升级软件版本;第一目标电子设备包含于至少一个第二电子设备。
在一些可能实现的方式中,版本更新表包括第一电子设备和至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,第一电子设备和至少一个第二电子设备的下载状态包括第一电子设备和至少一个第二电子设备开始从服务器下载待升级软件版本或未从服务器下载待升级软件版本。
在一些可能实现的方式中,根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树,包括:根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;根据版本更新表,确定第一电子设备的待升级软件版本的版本号与至少一个第二电子设备的待升级软件版本的版本号相同;根据版本更新表,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
在一些可能实现的方式中,第一电子设备和至少一个第二电子设备中开始从服务器下载待升级软件版本的数量,与至少一个完全二叉树的数量相同。
在一些可能实现的方式中,从服务器获取第一电子设备的待升级软件版本的信息,包括:向服务器发送版本升级请求;接收服务器发送的版本升级提醒。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取待升级软件版本,包括:与第一目标电子设备建立连接关系;通过连接关系从第一目标电子设备获取待升级软件版本。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取待升级软件版本之后,所述方法还包括:向第一目标电子设备发送下载完成提醒;检测预设时间未接收到第一目标电子设备广播的第一待升级消息。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取待升级软件版本之后,所述方法还包括:检测到第一电子设备无子节点;安装待升级软件版本,删除待升级软件版本的安装包。
在一些可能实现的方式中,删除待升级软件版本的安装包之前,所述方法还包括:向至少一个第二电子设备广播第二待升级消息;第二待升级消息包括第一电子设备的待升级软件版本;删除待升级软件版本的安装包之后,方法还包括:停止向至少一个第二电子设备广播第二待升级消息。
在一些可能实现的方式中,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树之前,所述方法还包括:
在一些可能实现的方式中,接收局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;第三待升级消息包括至少一个第三电子设备的待升级软件版本的信息,至少一个第三电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同。
在一些可能实现的方式中,第一电子设备从第一目标电子设备获取完整的待升级软件版本之前,第一目标电子设备离开局域网,所述方法还包括:向至少一个第二电子设备广播第二待升级消息;接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;第一待升级消息包括至少一个第二电子设备的待升级软件版本的信息;根据第一电子设备的待升级软件版本的信息和至少一个第二电子设备的待升级软件版本的信息,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树;检测到第一电子设备为第二目标电子设备的子节点,第一电子设备从第二目标电子设备获取待升级软件版本;第二目标电子设备包含于至少部分第二电子设备。
在一些可能实现的方式中,若第一电子设备从第一目标电子设备获取部分待升级软件版本,第一目标电子设备离开局域网,第一电子设备从第二目标电子设备获取待升级软件版本,包括:自获取部分继续从第二目标电子设备获取待升级软件版本。
在一些可能实现的方式中,所述方法还包括:接收至少一个第二电子设备广播的第一待升级消息和新加入局域网的第四电子设备广播的第四待升级消息;第四待升级消息包括第四电子设备的待升级软件版本的信息;当检测到第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号相同时,确定包含第一电子设备、至少一个第二电子设备、以及第四电子设备的至少一个完全二叉树;当第四电子设备的待升级软件版本的版本号与第一电子设备的待升级软件版本的版本号不同时,确定包含第一电子设备和至少一个第二电子设备的至少一个完全二叉树。
第四方面以及第四方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请提供一种软件升级系统,该软件升级系统包括第一方面或第二方面所述的电子设备中的第一电子设备和第二电子设备,所述第一电子设备用于执行如第一方面或第二方面所述的步骤。
第六方面,本申请提供一种芯片系统,包括:一个或多个接口电路,一个或多个处理器,存储器。接口电路用于从第二电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第三方面或者第四方面所述的第二电子设备执行的方法。
第七方面,本申请提供一种计算机可读存储介质,包括计算机程序,当所述计算机程序在第一电子设备上运行时,使得所述电子设备执行如第三方面或者第四方面所述的第一电子设备执行的方法。
第八方面,本申请提供一种计算机程序,该计算机程序包括用于执行第三方面或第四方面的任意可能的实现方式中的方法的指令。
附图说明
图1为本申请实施例提供的一种待升级软件系统的一个场景示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种电子设备的软件结构框图;
图4为本申请实施例提供的终端A1与服务器和终端A2~B14交互时的一个流程示意图;
图5a为申请实施例提供的终端A1与服务器交互时的场景示意图;
图5b为申请实施例提供的终端A1与终端A2~B14交互时的场景示意图;
图6为申请实施例提供的版本更新表的信息;
图7为本申请实施例提供的一个终端A1~A11和终端B1~B14的界面图;
图8为本申请实施例提供的建立完全二叉树的过程示意图;
图9为本申请实施例提供的终端A1与终端A2建立session的示意图;
图10为本申请实施例提供的终端A1与终端A2建立session的流程示意图;
图11为本申请实施例提供的终端A1与终端A2和终端A5交互时的流程示意图;
图12为本申请实施例提供的一种待升级软件系统的另一个场景示意图;
图13为本申请实施例提供的终端A1~A12的广播场景示意图;
图14为本申请实施例提供的一个完全二叉树的示意图;
图15为本申请实施例提供的一种待升级软件系统的又一个场景示意图;
图16为本申请实施例提供的另一个完全二叉树的示意图;
图17为本申请实施例提供的一种待升级软件系统的又一个场景示意图;
图18为本申请实施例提供的又一个完全二叉树的示意图;
图19为本申请实施例提供的一种待升级软件系统的又一个场景示意图;
图20为本申请实施例提供的又一个完全二叉树的示意图;
图21为本申请实施例提供的另一个终端A1~A11和终端B1~B14的界面图;
图22为本申请实施例提供的又一个完全二叉树的示意图;
图23为本申请实施例的一种装置的连接框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
图1为以局域网为例示出的应用场景示意图。示例性的,该局域网可以应用在学校或咖啡厅等场合。图1示出的应用场景中例如可以包括11个手机(终端A1~A11)和14个平板电脑(终端B1~B14),11个手机和14个平板电脑均可以与路由器建立通信,示例性的,手机和平板电脑通过无线连接方式与路由器建立通信,也可以通过有线连接方式与路由器建立通信,本申请实施例对此不作限定。
需要说明的是,图1所示的应用场景仅为示例,该应用场景中手机和平板电脑的数量可以增加或减少;并且,本申请的应用场景不限于手机和平板电脑,还可以包括其他电子设备,例如电脑、个人数字助理(Personal Digital Assistant,简称PDA)、智能穿戴式设备、智能家居设备等其他电子设备,本申请实施例对此不作限定。下面结合图1的应用场景,以手机为例,对电子设备的结构进行说明。
图2示出了手机100的结构示意图,应该理解的是,图2所示的手机100仅是手机的一个范例,并且手机100可以具有比图2中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图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可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了手机100的效率。在本申请实施例中,手机100可以通过处理器110产生与服务器或局域网内的其他电子设备交互的操作指令。例如,手机100的处理器110可以产生向服务器发送版本升级请求的操作指令。
此处需要说明的是,本申请实施例不对服务器的个数及类型进行限定。服务器的个数可以为一个,服务器的个数也可以是多个(即服务器集群)。局域网中的终端可以通过网络与服务器连接,终端与服务器连接后可以向服务器发起各种请求。服务器接收到终端的请求后,可以对请求内容进行处理,并应答终端的请求,将处理结果返回至终端。完成一系列请求和应答操作,终端还可以与服务器断开连接。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机100的结构限定。在本申请另一些实施例中,手机100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过手机100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为手机100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池142的容量,电池142的循环次数,电池142的健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在手机100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。
无线通信模块160可以提供应用在手机100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。在本申请实施例中,手机100可以通过通过无线通信模块160与服务器进行交互,也可以通过通过无线通信模块160与局域网内的其他电子设备进行交互。例如,手机100可以通过无线通信模块160向服务器发送版本升级请求;又例如,手机100也可以通过无线通信模块160从局域网内的其他电子设备处获取待升级软件版本。
在一些实施例中,手机100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
手机100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机100可以包括1个或N个显示屏194,N为大于1的正整数。
手机100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,手机100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110通过运行存储在内部存储器121的指令,可以使手机100向服务器发送版本升级请求。
内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
手机100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。手机100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,手机100根据压力传感器180A检测所述触摸操作强度。手机100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
指纹传感器180H用于采集指纹。手机100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。例如,在本申请实施例中,指纹传感器180H可采集用户触摸触摸屏时的指纹,并将采集到的指纹传输至处理器110。示例性的,处理器110可以基于指纹传感器180H输入的指纹信息,对手机100进行解锁。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于手机100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机100可以接收按键输入,产生与手机100的用户设置以及功能控制有关的键信号输入。示例性的,在本申请实施例中,若手机100从服务器或局域网内的其他电子设备处下载最新软件版本的过程中熄屏,则手机100接收到用户点击开机键的操作后,可以进入亮屏模式。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
手机100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明手机100的软件结构。
图3是本申请实施例的手机100的软件结构框图。
手机100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、升级模块、壁纸(也可以称为桌面和壁纸)等应用程序。例如,在本申请实施例中,升级模块可以使手机100具有与局域网内其他电子设备进行交互,以从局域网内的其他电子设备处获取待升级软件版本、并正常安装待升级软件版本的功能。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供手机100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,手机振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
可以理解的是,图3示出的系统框架层、系统库与运行时层包含的部件,并不构成对手机100的具体限定。在本申请另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
前文以手机100为例,介绍了各个终端的具体结构,例如,各个终端都可以包括摄像头193、Wi-Fi、内核、蓝牙等需要软件支持的硬件模块以及系统软件。为了优化软件性能、增加新的功能,系统软件、硬件模块的软件版本就需要升级。在一些可能实现的方式中,部分移动终端还具有应用程序,应用程序的软件版本也需要升级。基于此,本申请实施例提供了一种升级软件版本的方法,通过在应用程序层增加升级模块,利用升级模块使终端具有与局域网内其他终端进行交互,从其他终端获取待升级软件版本、并正常安装待升级软件版本的功能,以对上述硬件模块的软件版本、系统软件、以及应用程序的软件版本进行升级。当然,升级模块的功能也可以在软件系统的其他层实现,本申请实施例对此不作限定。例如,升级模块的功能也可以在系统层实现。
在本申请实施例中,终端A1~A11和终端B1~B14可以分别通过处理器产生与服务器或局域网内其他终端交互的操作指令。进一步的,终端A1~A11和终端B1~B14可以根据操作指令,通过无线通信模块160与服务器进行交互,搜索待升级软件版本。其中,一部分终端可以根据操作指令通过无线通信模块160进一步与服务器交互,以从服务器获取待升级软件版本,一部分终端可以根据操作指令通过无线通信模块160与局域网内的其他终端进行交互,以从局域网内的其他终端处获取待升级软件版本。从而避免局域网内的所有终端都从服务器获取待升级软件版本,占用较大的服务器资源,且各个终端的下载速度较慢。
需要说明的是,对于部分终端从其他终端获取待升级软件版本的前提条件,以第一终端从第二终端获取待升级软件版本为例,第一终端从第二终端获取待升级软件版本的前提条件为:第一终端与第二终端的型号相同或相似,以使第一终端待升级的待升级软件版本与第二终端已经下载的软件版本相同,且第二终端未删除该软件版本的安装包。示例性的,终端A2待升级的待升级软件版本为版本a,终端A1已经下载了版本a,且未删除版本a的安装包,则终端A2可以从A1下载版本a。
结合图1的应用场景,下面对终端A1~A11和终端B1~B14从服务器搜索待升级软件版本的过程进行说明。
结合图1,图4为示例性示出的终端A1~A11和终端B1~B14从服务器搜索待升级软件版本的流程示意图,具体包括:
S401,终端A1~A11和终端B1~B14向服务器发送版本升级请求。
示例性的,终端A1~A11和终端B1~B14可以周期性地或者在用户触发的情况下,通过路由器向服务器发送版本升级请求,以检测是否有待升级软件版本。例如,终端A1~A11和终端B1~B14可以每间隔10分钟(间隔时间可以根据实际需要设置),分别通过路由器向服务器发送版本升级请求。图5a为示例性示出的终端A1通过路由器向服务器发送版本升级请求的场景示意图,局域网内的终端A2~A11和终端B1~B14也可以如图5a所示向服务器发送版本升级请求。
示例性的,终端A1~A11和终端B1~B14向服务器发送的版本升级请求中,可以携带各自当前的软件版本信息,以便服务器根据终端A1~A11和终端B1~B14当前的软件版本信息,确定服务器是否包括待升级软件版本供终端A1~A11和终端B1~B14升级。
示例性的,终端可以直接向服务器发送版本升级请求。或者,服务器可以将所有软件版本信息分配给各地的内容分发网络(content delivery network,CDN),终端A1~A11和终端B1~B14可以向其所在地的CDN发送版本升级请求。例如,终端A1~A11和终端B1~B14都位于X市,终端A1~A11和终端B1~B14可以向X市的CDN发送版本升级请求。
S402,服务器向终端A1~A11和终端B1~B14发送版本升级提醒。
示例性的,服务器接收到终端A1~A11和终端B1~B14发送的版本升级请求后,也可以搜索适用于终端A1~A11和终端B1~B14的所有软件版本信息,并将搜索到的所有软件版本信息与当前的软件版本信息进行比对。当服务器确定有相较于当前的软件版本信息更新的软件版本信息时,服务器确定比当前的软件版本信息中最新的软件版本信息作为待升级软件版本,供终端A1~A11和终端B1~B14升级。之后,服务器可以通过路由器向终端A1~A11和终端B1~B14发送版本升级提醒,提醒终端A1~A11和终端B1~B14服务器具有待升级软件版本可以供其升级。
图5a为服务器通过路由器向终端A1发送版本升级提醒的场景示意图,服务器也可以以图5a所示的方式向终端A2~A11和终端B1~B14发送版本升级提醒。本申请实施例以终端A1~A11和终端B1~B14都需要升级待升级软件版本举例。因此,服务器需分别向终端A1~A11和终端B1~B14发送版本升级提醒。当然,在一些可能实现的方式中,也可以是终端A1~A11和终端B1~B14中的部分终端需要升级待升级软件版本。此情况下,服务器仅需向需要升级待升级软件版本的终端发送版本升级提醒即可。文中除另外说明,均以终端A1~A11和终端B1~B14都需要升级待升级软件版本举例说明。
示例性的,在一些可能实现的方式中,若服务器强制对局域网内的终端进行升级,则终端A1~A11和终端B1~B14无需向服务器发送版本升级请求(也可以说,终端A1~A11和终端B1~B14无需执行步骤S401),服务器即可直接向终端A1~A11和终端B1~B14发送版本升级提醒,以提醒终端A1~A11和终端B1~B14升级待升级软件版本。
S403,每个终端向局域网内的其他终端广播待升级消息。
示例性的,局域网内的各个终端可以周期性(例如每间隔5分钟)地将各自的待升级消息发送至路由器,由路由器向局域网内的其他终端设备广播各自的待升级消息,以使局域网内的每个终端都可以获知除局域网内其他终端的待升级消息。例如,图5b为终端A1通过路由器向局域网内的终端A2~A11和终端B1~B14广播待升级消息的场景示意图,终端A1通过路由器广播待升级消息后,终端A2~A11和终端B1~B14均可以收到终端A1广播的待升级消息。终端A2~A11和终端B1~B14也可以分别如图5b所示向局域网内的其他终端广播待升级消息,以让局域网内除本端以外的其他终端接收到本端广播的待升级消息。
示例性的,每个终端广播的待升级消息可以包括但不限于终端待升级的待升级软件版本的版本号、下载状态、以及终端在局域网中的地址信息。其中,下载状态包括终端开始从服务器下载待升级软件版本或终端未从服务器下载待升级软件版本。可以理解的是,每个终端向局域网内的其他终端广播待升级消息,实际可以是将该终端待升级的待升级软件版本的版本号、是否开始从服务器下载待升级软件版本、以及在局域网中的地址信息等信息,广播至局域网内的其他终端。例如,终端A1将其待升级的待升级软件版本的版本号为版本a、已经开始从服务器下载版本a、以及其在局域网中的网际互连协议(internetprotocol,IP)地址(例如192.168.0.20)等信息广播至终端A2~A11和终端B1~B14。
示例性的,本申请实施例不对终端A1~A11和终端B1~B14广播待升级消息的次数进行限定。仍以终端A1向局域网内的其他终端广播待升级消息为例,在一些可能实现的方式中,终端A1在接收到服务器发送的版本升级提醒后,可以仅向局域网内的其他终端广播一次待升级消息。或者,终端A1也可以周期性地(例如每间隔5分钟)向局域网内的其他终端多次广播待升级消息。当然,终端A1也可以以其他规律向局域网内的其他终端广播待升级消息,本申请对此不作限定。此外,终端A2~A11和终端B1~B14也可以如终端A1仅广播一次待升级消息,或者周期性地多次广播待升级消息,或者以其他规律广播待升级消息,本申请对此不作限定。
S404,每个终端接收到局域网内的其他终端广播的待升级消息后,创建版本更新表。
示例性的,以终端A1~A11和终端B1~B14都需要升级待升级软件版本为例,终端每接收到局域网内其他终端广播的待升级消息后,都可以创建如表1所示的版本更新表。
另一个示例中,以终端A1~A11和终端B1~B14都需要升级待升级软件版本为例,终端每接收到局域网内其他终端广播的预设次数的待升级消息后,可以确定局域网内的其他终端在局域网内且需要升级待升级软件版本。因此,可以创建如表1所示的版本更新表。例如,终端每接收到局域网内其他终端三次(次数可以根据实际需要设置)广播的待升级消息后,可以确定局域网内的其他终端在局域网内且需要升级待升级软件版本,并创建版本更新表。
参考表1,版本更新表包括各个终端待升级软件版本的版本号、各个终端是否开始从服务器下载待升级软件版本、以及各个终端在局域网中的地址信息。其中,对于各个终端是否开始从服务器下载待升级软件版本,表1中以“TRUE”表示终端已经开始从服务器下载待升级软件版本,以“FALSE”表示终端暂未从服务器下载待升级软件版本。
请同时参考图6和表1,终端A1~A11待升级的待升级软件版本的版本号为版本a。请同时参考图6和表1,终端B1~B14待升级的待升级软件版本的版本号为版本b。请同时参考图7的(1)和表1,终端A1、终端A10、以及终端A11在收到服务器发送的版本升级提醒后,开始从服务器下载待升级软件版本(版本a)。请同时参考图7的(2)和表1,终端A2~A9在收到服务器发送的版本升级提醒后,暂不从服务器下载待升级软件版本(版本a)。请同时参考图7的(3)和表1,终端B1~B14在收到服务器发送的版本升级提醒后,暂不从服务器下载待升级软件版本(版本b)。
示例性的,如图7所示,终端A1~A11和终端B1~B14收到服务器发送的版本升级提醒后,可以显示提示框,提示框中包括提示信息,用于询问用户是否下载待升级软件版本。例如,请参考图7的(1),终端A1、终端A10、以及终端A11可以显示“是否下载版本a”的提示框,用户选择“是”后,终端A1、终端A10、以及终端A11可以通过路由器从服务器下载版本a;请参考图7的(2),终端A2~A9可以显示“是否下载版本a”的提示框,用户选择“否”后,终端A2~A9暂不下载版本a;请参考图7的(3),终端B1~B14可以显示“是否下载版本b”的提示框,用户选择“否”后,终端B1~B14暂不下载版本b。
当然,用户也可以预先开启终端A1、终端A10、以及终端A11自动从服务器下载的功能,关闭终端A2~A9和终端B1~B14自动从服务器下载的功能。相应的,终端A1、终端A10、以及终端A11在收到服务器发送的版本升级提醒后,无需显示提示框,即可自动下载版本a。终端A2~A9和终端B1~B14即使收到服务器发送的版本升级提醒,也暂不下载各自的待升级软件版本。
表1
上述终端B1~B14均需升级版本b、但均暂未从服务器下载版本b。因此,终端B1~B14既不从服务器下载版本b,也不能从局域网内的其他终端处下载版本b。
上述终端A2~A9虽然暂未从服务器下载版本a,但同一局域网内的终端A1、终端A10、以及终端A11已经开始从服务器下载版本a。因此,在终端A、终端A10、以及终端A11下载完版本a后,终端A2~A9可以从终端A1、终端A10、以及终端A11处获取版本a。本申请可以通过建立完全二叉树,使终端A2~A9从终端A1、终端A10、以及终端A11处获取版本a。
对于完全二叉树,其包括N个节点,若N=0,则该完全二叉树为空树;若N为大于或等于1的正整数,则按照从上到下、从左到右的顺序依次形成除根节点以外的其他节点。其中,第一个节点为根节点,是完全二叉树的首个节点。完全二叉树还可以包括叶子节点,叶子节点是完全二叉树的末端节点,即,按照从上到下的顺序,位于完全二叉树最后一层的节点为完全二叉树的叶子节点。完全二叉树还可以包括连接于根节点与叶子节点之间的其他层节点,任意一层节点的节点深度为该层节点到根节点的路径长度,其中,叶子节点到根节点的路径最长,其到根节点的路径为完全二叉树的树高。
在完全二叉树中,根节点只有子节点,没有父节点,即,根节点只可以作为父节点,不可以作为子节点。叶子节点只有父节点,没有子节点,即,叶子节点只可以作为子节点,不可以作为父节点。N个节点中,除根节点和叶子节点以外的其他节点,既可以作为父节点,也可以作为子节点。其中,以一个完全二叉树为例,编号为i的节点是编号为2i的节点和编号为2i+1的节点的父节点,即,编号为2i的节点和编号为2i+1的节点均是编号为i的节点的子节点,也即,编号为2i的节点是编号为i的节点的第一子节点(也可以说左子节点),编号为2i+1的节点是编号为i的节点的第二子节点(也可以说右子节点)。例如,根节点的编号为1,根节点的第一子节点的编号为2,第二子节点的编号为3。
如图8所示,本申请可以以终端A1、终端A10、以及终端A11作为完全二叉树的根节点,将终端A1、终端A10、以及终端A11的编号排在最前面。并基于各个终端在局域网中的地址信息的最后一个字节大小,按照从小到大的顺序,对终端A2~A9进行编号。根据终端A1~A11的编号顺序,按照从上到下、从左到右的顺序,建立三个完全二叉树。
在第一个完全二叉树中,终端A2、终端A5作为终端A1的子节点(也可称终端A1为终端A2和终端A5的父节点),从终端A1处获取版本a。终端A8作为终端A2的子节点(也可称终端A2为终端A8的父节点),从终端A2处获取版本a。
在第二个完全二叉树中,终端A3和终端A6作为终端A10的子节点(也可称终端A10为终端A3和终端A6的父节点),从终端A10获取版本a。终端A9作为终端A3的子节点(也可称终端A3为终端A9的父节点),从终端A3处获取版本a。
在第三个完全二叉树中,终端A4和终端A7作为终端A11的子节点(也可称终端A11为终端A4和终端A7的父节点),从终端A11获取版本a。
下面结合图8介绍三个完全二叉树的建立过程。
首先,请参考图8的(1),由于终端A1、终端A10、以及终端A11已经开始从服务器下载版本a,因此,可以使终端A1、终端A10、以及终端A11分别作为三个完全二叉树的根节点。
之后,图8的(2)和图8的(3)示出了增加三个完全二叉树的第一层子节点的示意图。请参考图8的(2),先增加第一层子节点的第一子节点,具体包括:依次增加终端A1的第一子节点终端A2、终端A10的第一子节点终端A3、以及终端A11的第一子节点终端A4。之后,请参考图8的(3),再增加第一层子节点的第二子节点,具体包括:依次增加终端A1的第二子节点终端A5、终端A10的第二子节点终端A6、以及终端A11的第二子节点终端A7。至此,三个完全二叉树的第一层子节点填满。
最后,图8的(4)示出了增加三个完全二叉树的第二层子节点的示意图。请参考图8的(4),增加第二层子节点的第一子节点,具体包括:依次增加终端A2的第一子节点A8和终端A3的第一子节点A9。由于待升级版本号为版本a的终端已全部连接在三个完全二叉树上,因此,不再增加终端A4、终端A5、终端A6、以及终端A7的子节点。当然,在一些可能实现的方式中,若仍有待升级版本号为版本a的终端未连接在三个完全二叉树上,则仍然按照终端在局域网中的地址信息的最后一个字节,对这些终端进行编号,将这些终端排在终端A2~A9之后,并按照编号顺序,依次增加终端A4、终端A5、终端A6、终端A7的第一子节点,甚至第二层子节点的第二子节点、以及第三层节点的第一子节点和第二子节点等。
需要说明的是,上述举例为根据终端在局域网中的地址信息的最后一个字节大小,按照从小到大的顺序对终端A2~A9进行编号。当然,本申请实施例也可以按照其他顺序对终端A2~A9进行编号,本申请对此不作限定,下文重新建立完全二叉树时,也可以参考此规则,下文不再赘述。此外,上述示例是以终端A1~A11首次建立三个完全二叉树举例,在另一些可能实现的方式中,终端下一次接收到局域网内的其他终端广播的待升级消息后,或者,终端再接收到局域网内其他终端广播的预设次数的待升级消息后,还可以创建版本更新表,并重新建立完全二叉树。重新建立的完全二叉树的个数,以及重新建立的完全二叉树内各个终端的连接关系,可以与图8所示的三个完全二叉树相同,也可以与图8所示的三个完全二叉树不相同,本申请实施例对此不作限定。
如图8的(4)所示,建立完三个完全二叉树后,子节点即可在其父节点下载完版本a的情况下,从其父节点获取版本a。以终端A1、终端A2、终端A5、以及终端A8建成的第一个完全二叉树为例,终端A1为终端A2和终端A5的父节点,终端A2和终端A5可将终端A1在局域网中的地址信息作为其下载版本a的服务器地址,以从终端A1获取版本a。进一步的,终端A2为终端A8的父节点,终端A8可将终端A2在局域网中的地址信息作为其下载版本a的服务器地址,以在终端A2下载完版本a后,终端A8从终端A2获取版本a。
请继续参考图8的(4),以终端A10、终端A3、终端A6、以及终端A9建成的第二个完全二叉树为例,终端A10为终端A3和终端A6的父节点,终端A3和终端A6可将终端A10在局域网中的地址信息作为其下载版本a的服务器地址,以从终端A10获取版本a。进一步的,终端A3为终端A9的父节点,终端A9可将终端A3在局域网中的地址信息作为其下载版本a的服务器地址,以在终端A3下载完版本a后,终端A9从终端A3获取版本a。
请继续参考图8的(4),以终端A11、终端A4、以及终端A7建成的第三个完全二叉树为例,终端A11为终端A4和终端A7的父节点,终端A4和终端A7可将终端A11在局域网中的地址信息作为其下载版本a的服务器地址,以从终端A11获取版本a。
此外,在另一些可能实现的方式中,在建立三个完全二叉树之前,由于终端A1~A11已经确定各自的父节点或子节点是哪些终端。因此,也可以边建立三个完全二叉树,子节点边从已下载版本a的父节点处获取版本a。例如,终端A2和终端A5增加在完全二叉树中、终端A8暂未增加在完全二叉树中的情况下,终端A2和终端A5可以从终端A1获取版本a。
对于上述实施例描述的终端A1~终端A11获取版本a的途径,可以理解的是,本申请仅终端A1、终端A10、以及终端A11从服务器下载版本a,终端A2~A9均不从服务器获取版本a。相较于终端A1~A11都从服务器下载版本a的方案,本申请可以在终端A1~A11均可升级待升级软件版本的情况下,占用较小的服务器资源,且从服务器下载待升级软件版本的终端,从服务器下载待升级软件版本的速度较快。
上述实施例以建立完全二叉树为例,描述终端A2~A9从终端A1、终端A10、以及终端A11获取版本a。在一些可能实现的方式中,例如,局域网的网络带宽足够宽、或者待升级软件版本的安装包所占内存较小、或者上述应用场景为夜间的情况下,也可以以终端A1、终端A10、以及终端A11为根节点,建立四叉树、六叉树等。
请参考图9,终端A1从服务器下载版本a的过程中,或者终端A1下载完版本a、且终端A2和终端A5从终端A1下载版本a之前,终端A2和终端A5先与终端A1建立连接关系,例如,终端A2和终端A5先与终端A1建立会话(session),以实现与终端A1传输数据。具体的,图10示出了终端A2与终端A1建立session的详细过程,参考图10,终端A2作为终端A1的子节点,知道终端A1在局域网内的地址信息,可先向终端A1发送通信请求,等待终端A1确认。终端A1收到终端A2发送的通信请求后,响应终端A2的通信请求,并向终端A2发送通信请求。终端A2收到终端A1发送的通信请求后,确认与终端A1建立session,之后便可以从终端A1获取版本a。终端A5与终端A1建立session的过程和终端A2与终端A1建立session的过程相同,在此不再赘述。
图11为示例性示出的终端A2和终端A5从终端A1获取版本a的流程示意图,具体包括:
S1101,终端A2向终端A1发送下载版本a的请求。
示例性的,终端A2与终端A1建立session后,终端A1可以向终端A2发送下载完成提醒,终端A2收到下载完成提醒后,请求从终端A1下载版本a。
S1102,终端A1向终端A2发送版本a。
示例性的,终端A2向终端A1发送下载版本a的请求后,终端A1确认向终端A2发送版本a,以使终端A2从其父节点终端A1下载版本a,直至终端A2将版本a下载完成。从而使终端A2从终端A1下载版本a,而非从服务器下载版本a,避免局域网内的所有终端都从服务器下载,可以提高其他终端从服务器下载待升级软件版本的下载速度。
示例性的,终端A2从终端A1处下载版本a的过程中,即使终端A2接收到其他终端广播的待升级消息,可能需要建立新的完全二叉树,在新的完全二叉树中,终端A2可以仍然与终端A1保持session连接状态,继续从终端A1处下载版本a。
S1103,终端A2向终端A1发送下载完成提醒。
示例性的,在终端A2完成下载版本a后,终端A2还可以向终端A1发送下载完成提醒,告知终端A1本端已经完成版本a的下载。
S1104,终端A5向终端A1发送下载版本a的请求。
示例性的,终端A5与终端A1建立session后,终端A1可以向终端A5发送下载完成提醒,终端A5收到下载完成提醒后,请求从终端A1下载版本a。
S1105,终端A1向终端A5发送版本a。
示例性的,终端A5向终端A1发送下载版本a的请求后,终端A1确认向终端A5发送版本a,以使终端A5从其父节点终端A1下载版本a,直至终端A5将版本a下载完成。从而使终端A5从终端A1下载版本a,而非从服务器下载版本a,避免局域网内的所有终端都从服务器下载,可以提高其他终端从服务器下载待升级软件版本的下载速度。
示例性的,终端A5从终端A1处下载版本a的过程中,即使终端A5接收到其他终端广播的待升级消息,可能需要建立新的完全二叉树,在新的完全二叉树中,终端A5可以仍然与终端A1保持session连接状态,继续从终端A1处下载版本a。
S1106,终端A5向终端A1发送下载完成提醒。
示例性的,在终端A5完成下载版本a后,终端A5还可以向终端A1发送下载完成提醒,告知终端A1本端已经完成版本a的下载。
S1107,终端A1重启并安装版本a,删除版本a的安装包。
示例性的,终端A1接收到其所有子节点(终端A2和终端A5)发送的下载完成提醒后,得知其所有子节点都已下载完版本a,且本端不用再向其他终端发送版本a。此情况下,终端A1可以重启并安装版本a,删除版本a的安装包,以节省终端A1的存储空间。
示例性的,由于终端A2是终端A8的父节点,后续在终端A8从终端A2获取版本a时,终端A2需向终端A8发送版本a。因此,终端A2下载完版本a后,暂不删除版本a的安装包。
示例性的,由于终端A5无需作为父节点,向其他终端发送版本a,因此,终端A5下载完版本a后,也可以重启并安装版本a,删除版本a的安装包。
需要说明的是,本申请不对终端A2和终端A5从终端A1获取版本a的先后顺序进行限定,可以是终端A2先从终端A1获取版本a,终端A5后从终端A1获取版本a。即,先执行步骤S1101,后执行步骤S1104;先执行步骤S1102,后执行步骤S1105;先执行S1103,后执行S1106。例如,先执行步骤S1101~S1103,后执行步骤S1104~S1106。
也可以是终端A5先从终端A1获取版本a,终端A2后从终端A1获取版本a。即,先执行步骤S1104,后执行步骤S1101;先执行步骤S1105,后执行步骤S1102;先执行S1106,后执行S1103。例如,先执行步骤S1104~S1106,后执行步骤S1101~S1101。
也可以是终端A2和终端A5同时从终端A1获取版本a。即,同时执行步骤S1101和S1104,同时执行步骤S1102和S1105,同时执行S1103和S1106。
上述步骤S1101~S1107仅以终端A2和终端A5从终端A1获取版本a作为示例,其他作为子节点的终端也可以如步骤S1101~S1107从其父节点获取版本a,本申请实施例对此不再赘述。
图12示出了另一场景示意图,在应用场景包括终端A1~A11和终端B1~B14的情况下,有一新的终端A12加入局域网。下面结合图12的应用场景,介绍有新的终端加入局域网时,新的终端获取待升级软件版本的过程。
参考前述步骤S401和S402,当终端A12加入局域网时,可以向服务器发送版本升级请求,版本升级请求中可以携带终端A12当前的软件版本信息。服务器接收到终端A12发送的版本升级请求后,可以搜索终端A12可下载的软件版本,基于终端A12当前的软件版本信息,若服务器确定搜索到的软件版本中具有待升级软件版本供终端A12升级,则可以向终端A12发送版本升级提醒。下面以终端A12的待升级软件版本的版本号为版本a为例,说明终端A12下载版本a的详细过程。
参考图13以及前述步骤S501和S502,终端A12接收服务器发送的版本升级提醒后,可以将待升级消息发送至路由器,并通过路由器向局域网内的其他终端广播待升级消息,以使其他终端接收终端A12待升级的软件版本号为版本a和终端A12在局域网中的地址信息。同时,局域网内的其他终端可以以步骤AS403的方式周期性地广播待升级消息。以局域网内的终端周期性地广播待升级消息为例,终端A12接收到局域网内的其他终端三次(次数可以根据实际需要设置)广播的待升级消息后,可以确定局域网内的其他终端在局域网内且需要升级待升级软件版本。之后,局域网内的各个终端重新创建新的版本更新表。表2以终端A4已经下载完版本a,且删除版本a的安装包为例,示例性的示出了终端A12创建的版本更新表。
表2
以终端A4已经删除了版本a的安装包为例,参考表2和图13,由于版本终端A4已经删除了版本a的安装包,因此,终端A4不再广播待升级消息,表2所示的版本更新表不再罗列终端A4的待升级消息。
同时,以终端A2~A3和终端A5~A9未从服务器和局域网中的其他终端处下载版本a为例,终端A1、终端A10~A11已经从服务器下载版本a,而终端A2~A3和终端A5~A9暂未开始下载版本a。参考图14,根据表2所示的版本更新表,仍以终端A1、终端A10、以及终端A11为根节点,将终端A1、终端A10、以及终端A11的编号排在最前面。并根据各个终端在局域网中的地址信息的最后一个字节大小,按照从小到大的顺序,对终端A2~A3和终端A5~A9进行编号。根据终端A2~A3和终端A5~A9的编号顺序,按照从上到下、从左到右的顺序,建立三个新的完全二叉树。
首先,请继续参考图14,由于终端A1、终端A10、以及终端A11已经开始从服务器下载版本a,因此,可以使终端A1、终端A10、以及终端A11分别作为三个完全二叉树的根节点。
之后,请继续参考图14,先增加第一层子节点的第一子节点,具体包括:依次增加终端A1的第一子节点终端A2、终端A10的第一子节点终端A3、以及终端A11的第一子节点终端A5。之后,再增加第一层子节点的第二子节点,具体包括:依次增加终端A1的第二子节点终端A6、终端A10的第二子节点终端A7、以及终端A11的第二子节点终端A8。至此,三个完全二叉树的第一层子节点填满。
最后,请继续参考图14,增加第二层子节点的第一子节点,具体包括:依次增加终端A2的第一子节点A9和终端A3的第一子节点A12。
进一步的,作为子节点的终端可以将其父节点在局域网中的地址信息作为其下载版本a的服务器地址,从其父节点处下载版本a。其中,新加入局域网的终端A12可将终端A3在局域网中的地址信息作为其下载版本a的服务器地址,以从终端A3获取版本a。从而使新加入局域网的终端A12无需从服务器下载版本a,避免占用服务器资源。
此处需要说明的是,终端A12从终端A3处下载版本a的详细过程,与前述实施例终端A2和终端A5从终端A1处下载版本a的过程相同,在此不再赘述。此外,终端A12触发局域网内的其他终端通过路由器广播当前的软件版本信息时,终端B1~B14也会通过路由器广播当前的软件版本。由于终端B1~B14待升级的软件版本号(版本b)与终端A12待升级的软件版本号(版本a)不同,因此,图13未示出终端B1~B14通过路由器广播当前的软件版本信息,对终端A12获取版本a的过程无影响。
此外,对于新加入的终端A12,在一些可能实现的方式中,终端A12待升级的待升级软件版本的版本号也可以是版本a,且终端A12已经下载版本a,此情况下,终端A12不再向局域网内的其他终端广播待升级消息,并从局域网内的其他终端处获取版本a。在另一些可能实现的方式中,终端A12待升级的软件版本号也可以是版本b,且终端A12未从服务器直接下载版本b,此情况下,由于局域网内的所有终端均未下载升级版本b,因此,终端A12不能从局域网内的其他终端处获取版本b。在另一些可能实现的方式中,终端A12待升级的软件版本号也可以是版本b,且终端A12已经下载版本b,此情况下,终端A12向服务器发送版本升级请求后,服务器无需向终端A12回复版本升级提醒。
图15示出了又一场景示意图,在应用场景包括终端A1~A11和终端B1~B14的情况下,作为父节点的终端可能离开局域网,例如根节点终端A1离开局域网。下面结合图15的应用场景,介绍根节点A1离开局域网时,与该根节点连接的子节点获取待升级软件版本的过程。
图16为示例性示出的终端A2和终端A5下载版本a至50%时,终端A1离开局域网的示意图。终端A1离开局域网,终端A2和终端A5断开与终端A1的连接,不能再从终端A1处获取版本a,导致下载中断。终端A8作为终端A2的子节点,暂未开始从终端A2获取版本a。
由于终端A1为第一个完全二叉树的根节点、且终端A1已经离开局域网,因此,第一个完全二叉树被销毁,终端A2、终端A5、以及终端A8若要继续下载版本a,需从局域网内其他终端处下载。此时,终端A2和终端A5可以标记当前的下载进度,并与局域网内的其他终端一起,以步骤S403的方式周期性地广播待升级消息。或者,如图17所示,在下一次周期性地广播待升级消息之前,终端A2和终端A5检测到与终端A1断开连接超过一定时间,则终端A2和终端A5可以向局域网内的其他终端广播连接超时的消息,以触发局域网内的所有终端广播待升级消息。
以局域网内的终端周期性地广播待升级消息为例,每个终端接收到局域网内的其他终端三次(次数可以根据实际需要设置)广播的待升级消息后,可以确定局域网内的其他终端在局域网内及其版本信息。之后,局域网内的各个终端重新创建新的版本更新表。表3示例性的示出了终端A2~A11创建的版本更新表。
表3
参考图8的(4)和图17,在终端A1离开局域网时,假设终端A2和终端A5下载版本a至50%,终端A3和终端A6正在从终端A10获取版本a,终端A4和终端A7正在从终端A11获取版本a,终端A8暂未开始从终端A2获取版本a,终端A9暂未从终端A3获取版本a。
参考图18,根据表3的版本更新表,以终端A10和终端A11作为根节点,将终端A10和终端A11的编号排在最前面。并根据各个终端在局域网中的地址信息的最后一个字节大小,按照从小到大的顺序,对终端A2~A9进行编号。根据终端A2~终端A11的编号顺序,按照从上到下、从左到右的顺序,建立两个新的完全二叉树。
下面结合图18介绍两个完全二叉树的建立过程。
首先,由于终端A10和终端A11已经开始从服务器下载版本a,因此,终端A10和终端A11分别作为两个完全二叉树的根节点。
之后,先增加第一层子节点的第一子节点,具体包括:依次增加终端A10的第一子节点终端A2和终端A11的第一子节点终端A3。之后,增加第一层子节点的第二子节点,具体包括:依次增加终端A10的第二子节点终端A4和终端A11的第二子节点终端A5。至此,两个完全二叉树的第一层子节点填满。
最后,增加第二层子节点,包括:以第一层子节点的第一子节点作为父节点,增加第一层子节点中第一子节点的子节点,具体包括:先增加终端A2的第一子节点终端A6和终端A3的第一子节点终端A7,之后增加终端A2的第二子节点终端A8和终端A3的第二子节点终端A9。
进一步的,终端A2和终端A4作为终端A10的子节点,可以从终端A10获取版本a。终端A5作为终端A11的子节点,可以从终端A11获取版本。终端A8作为终端A2的子节点,可以从终端A2获取版本a。终端A9作为终端A3的子节点,可以从终端A3获取版本a。其中,终端A2和终端A5可以从50%开始继续获取版本a,以实现断点续传。
而由于终端A1离开局域网时,终端A3和终端A6正在从终端A10获取版本a,终端A4和终端A7正在从终端A11获取版本a。因此,终端A3和终端A6可以选择与其原来的父节点终端A10保持连接关系(例如保持session连接状态),并继续从终端A10获取版本a,也可以选择从其新的父节点继续下载版本a。终端A4和终端A7可以选择与其原来的父节点终端A11保持连接关系(例如保持session连接状态),并继续从终端A11获取版本a,也可以选择从其新的父节点继续下载版本a。此处需要说明的是,可以在各个终端中预先设置获取规则,以使终端A3~A4和终端A6~A7选择从原来的父节点或者新的父节点继续获取版本a,本申请实施例对此不作限定。
示例性的,请继续参考图18,终端A3与其原来的父节点终端A10保持连接关系(例如保持session连接状态),并继续从终端A10获取版本a。终端A6与原来的父节点终端A10断开session连接,并继续从新的父节点终端A2获取版本a,实现断点续传。终端A4与原来的父节点终端A11断开连接关系(例如断开session),并继续从新的父节点终端A10获取版本a,实现断点续传。终端A7与其原来的父节点终端A11保持连接关系(例如保持session连接状态),并继续从终端A11获取版本a。
示例性的,以终端A6继续从新的父节点终端A2获取版本a为例,终端A6可以先与终端A2建立连接关系(例如建立session),再以终端A2在局域网内的地址信息作为其服务器地址,从终端A2继续获取版本a。以终端A4继续从新的父节点终端A10获取版本a为例,终端A4可以先与终端A10建立连接关系(例如建立session),再以终端A10在局域网内的地址信息作为其服务器地址,从终端A10继续获取版本a。
此处需要说明的是,终端A2~A4从终端A10下载版本a,终端A5和终端A7从终端A11下载版本a、终端A6和终端A8从终端A2下载版本a、以及终端A9从终端A3下载版本a的具体过程,与终端A2和终端A5从终端A1获取版本a的具体过程相同,在此不再赘述。
图19示出了又一场景示意图,在应用场景包括终端A1~A11和终端B1~B14的情况下,有一子节点终端A4离开局域网。下面结合图19的应用场景,介绍子节点A4离开局域网时,终端A4所在的第三个完全二叉树中其他终端的工作过程。
图20为示例性示出的终端A4从终端A11获取版本a的过程中,终端A4离开局域网的示意图。终端A4离开局域网,终端A4与终端A11断开连接,终端A4停止从终端A11处获取版本a。终端A7继续正常从终端A11获取版本a,直至下载完版本a后,向终端A11发送下载完成提醒。终端A11可以与局域网内的其他终端一起,以步骤S403的方式周期性地广播待升级消息,若终端A11没有收到终端A4的待升级消息,则终端A11在接收到终端A7发送的下载完成提醒后,即可重启并安装版本a,并删除版本a的安装包;或者,在下一次周期性地广播待升级消息之前,终端A11检测到与终端A4断开连接超过一定时间,终端A11可以向局域网内的其他终端广播连接超时的消息,并在接收到终端A7发送的下载完成提醒后,即可重启并安装版本a,删除版本a的安装包。
当然,也可以是终端A4和终端A7都离开局域网,此情况下,终端A11也可以如上述方式重启并安装版本a,删除版本a的安装包。或者,假设终端A11只有终端A4一个子节点,且终端A4离开局域网,此情况下,终端A11也可以如上述方式重启并安装版本a,删除版本a的安装包。
图21示出了又一场景示意图,在应用场景包括终端A1~A11和终端B1~B14的情况下,仅终端A1从服务器下载版本a。下面结合图21的应用场景,介绍终端A2~A9从终端A1处获取版本a的详细过程。
参考前述实施例,终端A1~A11和终端B1~B14向服务器发送版本升级请求,服务器确认终端A1~A11和终端B1~B14均需要升级待升级软件版本,并分别向终端A1~A11和终端B1~B14发送版本升级提醒;之后,终端A1~A11和终端B1~B14分别通过路由器向局域网内的其他终端广播版本升级消息,告知其他终端本端待升级的软件版本号、是否开始从服务器开始下载待升级软件版本、以及本端在局域网中的地址信息等,其中,如图22的(1)所示,仅终端A1开始从服务器下载待升级软件版本(版本a),如图22的(2)所示,终端A2~A11暂不下载待升级软件版本(版本a),如图22的(3)所示,终端B1~B14暂不下载待升级软件版本(版本b);每个终端接收到其他终端广播的待升级消息后,可以创建版本更新表,终端A2~A11虽然未从服务器下载版本a,但在同一局域网内的终端A1下载了版本a已经开始从服务器下载版本a,因此,在终端A1下载完版本a后,终端A2~A11可以从终端A1处获取版本a。
参考图22,可以以终端A1作为根节点,将终端A1的编号排在最前面。并基于各个终端在局域网中的地址信息的最后一个字节大小,按照从小到大的顺序,对终端A2~A11进行编号。根据终端A1~A11的编号顺序,按照从上到下、从左到右的顺序,建立一个完全二叉树,以使终端A2~A11从终端A1处获取版本a。下面结合图22介绍三个完全二叉树的建立过程:
首先,由于终端A1已经开始从服务器下载版本a,因此,可以将终端A1作为完全二叉树的根节点。
之后,增加完全二叉树的第一层子节点,可以先增加第一层子节点的第一子节点终端A2,再增加第一层子节点的第二子节点终端A3。至此,完全二叉树的第一层子节点填满。
之后,增加完全二叉树的第二层子节点,可以先增加第二层子节点的第一子节点,再增加第二层子节点的第二子节点。增加第二层子节点具体包括:依次增加终端A2的第一子节点A4和终端A2的第二子节点终端A5;之后,依次增加终端A3的第一子节点A6和终端A3的第二子节点终端A7。至此,完全二叉树的第二层子节点填满。
最后,增加完全二叉树的第三层子节点,具体包括:依次增加终端A4的第一子节点终端A8和终端A4的第二子节点终端A9。之后,依次增加终端A5的第一子节点终端A10和终端A4的第二子节点终端A11。由于待升级版本号为版本a的终端已全部连接在上述完全二叉树上,因此,不再增加终端A6和终端A7的第一子节点和第二子节点。当然,在一些可能实现的方式中,若仍有待升级版本号为版本a的终端未连接在上述完全二叉树上,则仍然按照终端在局域网中的地址信息的最后一个字节,对这些终端进行编号,将这些终端排在终端A2~A9之后,并按照编号顺序,依次增加A6和终端A7的第一子节点和第二子节点,甚至第四层子节点、第五层子节点等。
请继续参考图22,建立完上述完全二叉树后,各个子节点即可在其父节点下载完版本a后,从其父节点获取版本a。本申请实施例中各个子节点从其父节点下载版本a的详细过程与前述实施例终端A2和终端A5从终端A1下载版本a的详细过程相同,在此不再赘述。
此外,在另一些可能实现的方式中,在建立完全二叉树之前,各个终端已经确定各自的父节点或子节点是哪些终端,因此,也可以边建立完全二叉树,子节点边从已下载版本a的父节点处获取版本a。例如,终端A1~A7增加在完全二叉树中、A8~A11暂未增加在完全二叉树中的情况下,终端A4从终端A2处获取版本a。
对于上述实施例描述的终端A1~终端A11获取版本a的途径,可以理解的是,本申请仅终端A1从服务器下载版本a,终端A2~A11均不从服务器获取版本a。相较于终端A1~A11都从服务器下载版本a的方案,本申请可以在终端A1~A11均可升级待升级软件版本的情况下,占用较小的服务器资源,且从服务器下载待升级软件版本的终端,从服务器下载待升级软件版本的速度较快。
上述实施例以建立完全二叉树为例,描述终端A2~A11从终端A1获取版本a,在一些可能实现的方式中,例如局域网的网络带宽足够宽、或者待升级软件版本的安装包所占内存较小、或者上述应用场景为夜间的情况下,也可以以终端A1为根节点,建立四叉树、六叉树等。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
一个示例中,图23示出了本申请实施例的一种装置2300的示意性框图装置2300可包括:处理器2301和收发器/收发管脚2302,可选地,还包括存储器2303。
装置2300的各个组件通过总线2304耦合在一起,其中总线2304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线2304。
可选地,存储器2303可以用于前述方法实施例中的指令。该处理器2301可用于执行存储器2303中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置2300可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的音箱唤醒电视的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的音箱唤醒电视的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的音箱唤醒电视的方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (54)
1.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得第一电子设备执行以下步骤:
从服务器获取所述第一电子设备的待升级软件版本的信息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;所述至少一个第二电子设备与所述第一电子设备在同一局域网;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为目标电子设备的父节点,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备;所述目标电子设备包含于所述至少一个第二电子设备。
2.根据权利要求1所述的电子设备,其特征在于,所述版本更新表包括所述第一电子设备和所述至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,所述第一电子设备和所述至少一个第二电子设备的下载状态包括所述第一电子设备和所述至少一个第二电子设备开始从所述服务器下载所述待升级软件版本或未从所述服务器下载所述待升级软件版本。
3.根据权利要求2所述的电子设备,其特征在于,根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树时,所述计算机程序使得所述第一电子设备执行如下步骤:
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;
根据所述版本更新表,确定所述第一电子设备的待升级软件版本的版本号与所述至少一个第二电子设备的待升级软件版本的版本号相同;
根据所述版本更新表,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
4.根据权利要求2或3所述的电子设备,其特征在于,所述第一电子设备和所述至少一个第二电子设备中开始从所述服务器下载所述待升级软件版本的数量,与所述至少一个完全二叉树的数量相同。
5.根据权利要求1-4任一项所述的电子设备,其特征在于,从服务器获取所述第一电子设备的待升级软件版本的信息时,所述计算机程序使得所述第一电子设备执行如下步骤:
向所述服务器发送版本升级请求;
接收所述服务器发送的版本升级提醒。
6.根据权利要求1-5任一项所述的电子设备,其特征在于,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备时,所述计算机程序使得所述第一电子设备执行如下步骤:
与所述目标电子设备建立连接关系;
通过所述连接关系向所述目标电子设备发送所述待升级软件版本。
7.根据权利要求1-6任一项所述的电子设备,其特征在于,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备之后,所述计算机程序还使得所述第一电子设备执行如下步骤:
接收所述目标电子设备发送的下载完成提醒;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
8.根据权利要求7所述的电子设备,其特征在于,当所述目标电子设备包括第一目标电子设备和第二目标电子设备,且所述第一子目标电子设备离开所述局域网时,所述计算机程序还使得所述第一电子设备执行如下步骤:
检测预设时间未接收到所述目标电子设备广播的所述第一待升级消息;
接收所述第二目标电子设备发送的下载完成提醒;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
9.根据权利要求7所述的电子设备,其特征在于,当所述目标电子设备离开所述局域网时,所述计算机程序还使得所述第一电子设备执行如下步骤:
检测预设时间未接收到所述目标电子设备广播的第一待升级消息;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
10.根据权利要求7-9任一项所述的电子设备,其特征在于,安装所述待升级软件版本,删除所述待升级软件版本的安装包之前,所述计算机程序还使得所述第一电子设备执行如下步骤:
向所述至少一个第二电子设备广播第二待升级消息;所述第二待升级消息包括所述第一电子设备的待升级软件版本;
删除所述待升级软件版本的安装包之后,所述计算机程序还使得所述第一电子设备执行如下步骤:
停止向所述至少一个第二电子设备广播所述第二待升级消息。
11.根据权利要求1-10任一项所述的电子设备,其特征在于,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树之前,所述计算机程序还使得所述第一电子设备执行如下步骤:
接收所述局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;所述第三待升级消息包括所述至少一个第三电子设备的待升级软件版本的信息,所述至少一个第三电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同。
12.根据权利要求1-11任一项所述的电子设备,其特征在于,所述计算机程序还使得所述第一电子设备执行如下步骤:
接收所述至少一个第二电子设备广播的所述第一待升级消息和新加入所述局域网的第四电子设备广播的第四待升级消息;所述第四待升级消息包括所述第四电子设备的待升级软件版本的信息;
当检测到所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号相同时,确定包含所述第一电子设备、所述至少一个第二电子设备、以及所述第四电子设备的至少一个完全二叉树;
当所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同时,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得第一电子设备执行以下步骤:
从服务器获取所述第一电子设备的待升级软件版本的信息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;所述至少一个第二电子设备与所述第一电子设备在同一局域网;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为第一目标电子设备的子节点,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本;所述第一目标电子设备包含于所述至少一个第二电子设备。
14.根据权利要求13所述的电子设备,其特征在于,所述版本更新表包括所述第一电子设备和所述至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,所述第一电子设备和所述至少一个第二电子设备的下载状态包括所述第一电子设备和所述至少一个第二电子设备开始从所述服务器下载所述待升级软件版本或未从所述服务器下载所述待升级软件版本。
15.根据权利要求14所述的电子设备,其特征在于,根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树时,所述计算机程序使得所述第一电子设备执行如下步骤:
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;
根据所述版本更新表,确定所述第一电子设备的待升级软件版本的版本号与所述至少一个第二电子设备的待升级软件版本的版本号相同;
根据所述版本更新表,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
16.根据权利要求14或15所述的电子设备,其特征在于,所述第一电子设备和所述至少一个第二电子设备中开始从所述服务器下载所述待升级软件版本的数量,与所述至少一个完全二叉树的数量相同。
17.根据权利要求13-16任一项所述的电子设备,其特征在于,从服务器获取所述第一电子设备的待升级软件版本的信息时,所述计算机程序使得所述第一电子设备执行如下步骤:
向所述服务器发送版本升级请求;
接收所述服务器发送的版本升级提醒。
18.根据权利要求13-17任一项所述的电子设备,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本时,所述计算机程序使得所述第一电子设备执行如下步骤:
与所述第一目标电子设备建立连接关系;
通过所述连接关系从所述第一目标电子设备获取所述待升级软件版本。
19.根据权利要求13-18任一项所述的电子设备,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本之后,所述计算机程序还使得所述第一电子设备执行如下步骤:
向所述第一目标电子设备发送下载完成提醒;
检测预设时间未接收到所述第一目标电子设备广播的所述第一待升级消息。
20.根据权利要求13-19任一项所述的电子设备,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本之后,所述计算机程序还使得所述第一电子设备执行如下步骤:
检测到所述第一电子设备无子节点;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
21.根据权利要求20所述的电子设备,其特征在于,删除所述待升级软件版本的安装包之前,所述计算机程序还使得所述第一电子设备执行如下步骤:
向所述至少一个第二电子设备广播第二待升级消息;所述第二待升级消息包括所述第一电子设备的待升级软件版本;
删除所述待升级软件版本的安装包之后,所述计算机程序还使得所述第一电子设备执行如下步骤:
停止向所述至少一个第二电子设备广播所述第二待升级消息。
22.根据权利要求13-21任一项所述的电子设备,其特征在于,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树之前,所述计算机程序还使得所述第一电子设备执行如下步骤:
接收所述局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;所述第三待升级消息包括所述至少一个第三电子设备的待升级软件版本的信息,所述至少一个第三电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同。
23.根据权利要求22所述的电子设备,其特征在于,所述第一电子设备从所述第一目标电子设备获取完整的所述待升级软件版本之前,所述第一目标电子设备离开所述局域网,所述计算机程序还使得所述第一电子设备执行如下步骤:
向所述至少一个第二电子设备广播第二待升级消息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为第二目标电子设备的子节点,所述第一电子设备从所述第二目标电子设备获取所述待升级软件版本;所述第二目标电子设备包含于所述至少部分第二电子设备。
24.根据权利要求23所述的电子设备,其特征在于,若所述第一电子设备从所述第一目标电子设备获取部分所述待升级软件版本,所述第一目标电子设备离开所述局域网,所述第一电子设备从所述第二目标电子设备获取所述待升级软件版本时,所述计算机程序还使得所述第一电子设备执行如下步骤:
自获取部分继续从所述第二目标电子设备获取所述待升级软件版本。
25.根据权利要求13-24任一项所述的电子设备,其特征在于,所述计算机程序还使得所述第一电子设备执行如下步骤:
接收所述至少一个第二电子设备广播的所述第一待升级消息和新加入所述局域网的第四电子设备广播的第四待升级消息;所述第四待升级消息包括所述第四电子设备的待升级软件版本的信息;
当检测到所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号相同时,确定包含所述第一电子设备、所述至少一个第二电子设备、以及所述第四电子设备的至少一个完全二叉树;
当所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同时,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
26.一种软件升级方法,其特征在于,包括:
从服务器获取所述第一电子设备的待升级软件版本的信息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;所述至少一个第二电子设备与所述第一电子设备在同一局域网;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为目标电子设备的父节点,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备;所述目标电子设备包含于所述至少一个第二电子设备。
27.根据权利要求26所述的方法,其特征在于,所述版本更新表包括所述第一电子设备和所述至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,所述第一电子设备和所述至少一个第二电子设备的下载状态包括所述第一电子设备和所述至少一个第二电子设备开始从所述服务器下载所述待升级软件版本或未从所述服务器下载所述待升级软件版本。
28.根据权利要求27所述的方法,其特征在于,所述根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树,包括:
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;
根据所述版本更新表,确定所述第一电子设备的待升级软件版本的版本号与所述至少一个第二电子设备的待升级软件版本的版本号相同;
根据所述版本更新表,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
29.根据权利要求27或28所述的方法,其特征在于,所述第一电子设备和所述至少一个第二电子设备中开始从所述服务器下载所述待升级软件版本的数量,与所述至少一个完全二叉树的数量相同。
30.根据权利要求26-29任一项所述的方法,其特征在于,所述从服务器获取所述第一电子设备的待升级软件版本的信息,包括:
向所述服务器发送版本升级请求;
接收所述服务器发送的版本升级提醒。
31.根据权利要求26-30任一项所述的方法,其特征在于,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备,包括:
与所述目标电子设备建立连接关系;
通过所述连接关系向所述目标电子设备发送所述待升级软件版本。
32.根据权利要求26-31任一项所述的方法,其特征在于,所述第一电子设备将所述待升级软件版本发送至所述目标电子设备之后,所述方法还包括:
接收所述目标电子设备发送的下载完成提醒;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
33.根据权利要求32所述的方法,其特征在于,当所述目标电子设备包括第一目标电子设备和第二目标电子设备,且所述第一子目标电子设备离开所述局域网时,所述方法还包括:
检测预设时间未接收到所述目标电子设备广播的所述第一待升级消息;
接收所述第二目标电子设备发送的下载完成提醒;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
34.根据权利要求33所述的方法,其特征在于,当所述目标电子设备离开所述局域网时,所述方法还包括:
检测预设时间未接收到所述目标电子设备广播的第一待升级消息;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
35.根据权利要求32-34任一项所述的方法,其特征在于,安装所述待升级软件版本,删除所述待升级软件版本的安装包之前,所述方法还包括:
向所述至少一个第二电子设备广播第二待升级消息;所述第二待升级消息包括所述第一电子设备的待升级软件版本;
删除所述待升级软件版本的安装包之后,所述方法还包括:
停止向所述至少一个第二电子设备广播所述第二待升级消息。
36.根据权利要求26-35任一项所述的方法,其特征在于,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树之前,所述方法还包括:
接收所述局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;所述第三待升级消息包括所述至少一个第三电子设备的待升级软件版本的信息,所述至少一个第三电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同。
37.根据权利要求26-36任一项所述的方法,其特征在于,所述方法还包括:
接收所述至少一个第二电子设备广播的所述第一待升级消息和新加入所述局域网的第四电子设备广播的第四待升级消息;所述第四待升级消息包括所述第四电子设备的待升级软件版本的信息;
当检测到所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号相同时,确定包含所述第一电子设备、所述至少一个第二电子设备、以及所述第四电子设备的至少一个完全二叉树;
当所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同时,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
38.一种软件升级方法,应用于第一电子设备,其特征在于,包括:
从服务器获取所述第一电子设备的待升级软件版本的信息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;所述至少一个第二电子设备与所述第一电子设备在同一局域网;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为第一目标电子设备的子节点,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本;所述第一目标电子设备包含于所述至少一个第二电子设备。
39.根据权利要求38所述的方法,其特征在于,所述版本更新表包括所述第一电子设备和所述至少一个第二电子设备的待升级软件版本的版本号、下载状态、以及地址信息;其中,所述第一电子设备和所述至少一个第二电子设备的下载状态包括所述第一电子设备和所述至少一个第二电子设备开始从所述服务器下载所述待升级软件版本或未从所述服务器下载所述待升级软件版本。
40.根据权利要求39所述的方法,其特征在于,所述根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树,包括:
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,创建版本更新表;
根据所述版本更新表,确定所述第一电子设备的待升级软件版本的版本号与所述至少一个第二电子设备的待升级软件版本的版本号相同;
根据所述版本更新表,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
41.根据权利要求39或40所述的方法,其特征在于,所述第一电子设备和所述至少一个第二电子设备中开始从所述服务器下载所述待升级软件版本的数量,与所述至少一个完全二叉树的数量相同。
42.根据权利要求38-41任一项所述的方法,其特征在于,所述从服务器获取所述第一电子设备的待升级软件版本的信息,包括:
向所述服务器发送版本升级请求;
接收所述服务器发送的版本升级提醒。
43.根据权利要求38-42任一项所述的方法,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本,包括:
与所述第一目标电子设备建立连接关系;
通过所述连接关系从所述第一目标电子设备获取所述待升级软件版本。
44.根据权利要求38-43任一项所述的方法,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本之后,所述方法还包括:
向所述第一目标电子设备发送下载完成提醒;
检测预设时间未接收到所述第一目标电子设备广播的所述第一待升级消息。
45.根据权利要求38-44任一项所述的方法,其特征在于,所述第一电子设备从所述第一目标电子设备获取所述待升级软件版本之后,所述方法还包括:
检测到所述第一电子设备无子节点;
安装所述待升级软件版本,删除所述待升级软件版本的安装包。
46.根据权利要求45所述的方法,其特征在于,删除所述待升级软件版本的安装包之前,所述方法还包括:
向所述至少一个第二电子设备广播第二待升级消息;所述第二待升级消息包括所述第一电子设备的待升级软件版本;
删除所述待升级软件版本的安装包之后,所述方法还包括:
停止向所述至少一个第二电子设备广播所述第二待升级消息。
47.根据权利要求38-46任一项所述的方法,其特征在于,所述确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树之前,所述方法还包括:
接收所述局域网内的至少一个第三电子设备中的每个第三电子设备发送的第三待升级消息;所述第三待升级消息包括所述至少一个第三电子设备的待升级软件版本的信息,所述至少一个第三电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同。
48.根据权利要求47所述的方法,其特征在于,所述第一电子设备从所述第一目标电子设备获取完整的所述待升级软件版本之前,所述第一目标电子设备离开所述局域网,所述方法还包括:
向所述至少一个第二电子设备广播第二待升级消息;
接收至少一个第二电子设备中的每个第二电子设备广播的第一待升级消息;所述第一待升级消息包括所述至少一个第二电子设备的待升级软件版本的信息;
根据所述第一电子设备的待升级软件版本的信息和所述至少一个第二电子设备的待升级软件版本的信息,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树;
检测到所述第一电子设备为第二目标电子设备的子节点,所述第一电子设备从所述第二目标电子设备获取所述待升级软件版本;所述第二目标电子设备包含于所述至少部分第二电子设备。
49.根据权利要求48所述的方法,其特征在于,若所述第一电子设备从所述第一目标电子设备获取部分所述待升级软件版本,所述第一目标电子设备离开所述局域网,所述第一电子设备从所述第二目标电子设备获取所述待升级软件版本,包括:
自获取部分继续从所述第二目标电子设备获取所述待升级软件版本。
50.根据权利要求38-49任一项所述的方法,其特征在于,所述方法还包括:
接收所述至少一个第二电子设备广播的所述第一待升级消息和新加入所述局域网的第四电子设备广播的第四待升级消息;所述第四待升级消息包括所述第四电子设备的待升级软件版本的信息;
当检测到所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号相同时,确定包含所述第一电子设备、所述至少一个第二电子设备、以及所述第四电子设备的至少一个完全二叉树;
当所述第四电子设备的待升级软件版本的版本号与所述第一电子设备的待升级软件版本的版本号不同时,确定包含所述第一电子设备和所述至少一个第二电子设备的至少一个完全二叉树。
51.一种芯片系统,其特征在于,包括:
一个或多个接口电路;
一个或多个处理器;
存储器;
所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求26-37任一项中第一电子设备执行的方法。
52.一种芯片系统,其特征在于,包括:
一个或多个接口电路;
一个或多个处理器;
存储器;
所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求38-50任一项中第一电子设备执行的方法。
53.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求26-37任一项中第一电子设备执行的方法。
54.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求38-50任一项中第一电子设备执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745678.2A CN114461240B (zh) | 2021-06-30 | 2021-06-30 | 软件升级方法、软件升级系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745678.2A CN114461240B (zh) | 2021-06-30 | 2021-06-30 | 软件升级方法、软件升级系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114461240A true CN114461240A (zh) | 2022-05-10 |
CN114461240B CN114461240B (zh) | 2023-04-14 |
Family
ID=81405117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110745678.2A Active CN114461240B (zh) | 2021-06-30 | 2021-06-30 | 软件升级方法、软件升级系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461240B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048563A (zh) * | 2022-08-05 | 2023-05-02 | 荣耀终端有限公司 | 一种系统升级方法、电子设备以及存储介质 |
CN116048594A (zh) * | 2022-07-01 | 2023-05-02 | 荣耀终端有限公司 | 软件升级方法及相关装置 |
CN116302454A (zh) * | 2023-05-22 | 2023-06-23 | 荣耀终端有限公司 | 申请网络资源的方法及电子设备 |
CN116719556A (zh) * | 2022-09-26 | 2023-09-08 | 荣耀终端有限公司 | 系统升级的方法和电子设备 |
CN116841593A (zh) * | 2023-09-01 | 2023-10-03 | 荣耀终端有限公司 | 软件升级方法、设备和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007089059A (ja) * | 2005-09-26 | 2007-04-05 | Ntt Docomo Inc | 通信端末、更新サーバ、放送局サーバ、通信端末制御方法、通信端末制御プログラム |
CN107395428A (zh) * | 2017-08-11 | 2017-11-24 | 杭州迪普科技股份有限公司 | 版本文件升级方法、装置、服务器及客户端设备 |
WO2019083440A2 (zh) * | 2017-10-24 | 2019-05-02 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
CN110221856A (zh) * | 2019-06-25 | 2019-09-10 | 努比亚技术有限公司 | 一种可穿戴设备升级方法、可穿戴设备及存储介质 |
US20190354363A1 (en) * | 2016-12-27 | 2019-11-21 | Clarion Co., Ltd. | Software Update Device and Software Update System |
CN111158727A (zh) * | 2019-12-31 | 2020-05-15 | 上海能塔智能科技有限公司 | Ota升级的处理方法、装置、电子设备与存储介质 |
CN111459521A (zh) * | 2020-03-31 | 2020-07-28 | 上海依图网络科技有限公司 | 集群升级方法及装置 |
CN111510323A (zh) * | 2020-03-24 | 2020-08-07 | 中国科学院上海微系统与信息技术研究所 | 一种物联网设备的固件升级方法、装置、系统及存储介质 |
CN112740172A (zh) * | 2019-12-31 | 2021-04-30 | 华为技术有限公司 | 管理车辆中电子设备软件版本的方法及相关设备 |
CN112764783A (zh) * | 2021-02-02 | 2021-05-07 | 杭州雅观科技有限公司 | 一种智慧家居设备的升级方法 |
CN112771497A (zh) * | 2020-04-09 | 2021-05-07 | 深圳市大疆创新科技有限公司 | 设备升级的方法、装置及存储介质 |
-
2021
- 2021-06-30 CN CN202110745678.2A patent/CN114461240B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007089059A (ja) * | 2005-09-26 | 2007-04-05 | Ntt Docomo Inc | 通信端末、更新サーバ、放送局サーバ、通信端末制御方法、通信端末制御プログラム |
US20190354363A1 (en) * | 2016-12-27 | 2019-11-21 | Clarion Co., Ltd. | Software Update Device and Software Update System |
CN107395428A (zh) * | 2017-08-11 | 2017-11-24 | 杭州迪普科技股份有限公司 | 版本文件升级方法、装置、服务器及客户端设备 |
WO2019083440A2 (zh) * | 2017-10-24 | 2019-05-02 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
CN110221856A (zh) * | 2019-06-25 | 2019-09-10 | 努比亚技术有限公司 | 一种可穿戴设备升级方法、可穿戴设备及存储介质 |
CN111158727A (zh) * | 2019-12-31 | 2020-05-15 | 上海能塔智能科技有限公司 | Ota升级的处理方法、装置、电子设备与存储介质 |
CN112740172A (zh) * | 2019-12-31 | 2021-04-30 | 华为技术有限公司 | 管理车辆中电子设备软件版本的方法及相关设备 |
CN111510323A (zh) * | 2020-03-24 | 2020-08-07 | 中国科学院上海微系统与信息技术研究所 | 一种物联网设备的固件升级方法、装置、系统及存储介质 |
CN111459521A (zh) * | 2020-03-31 | 2020-07-28 | 上海依图网络科技有限公司 | 集群升级方法及装置 |
CN112771497A (zh) * | 2020-04-09 | 2021-05-07 | 深圳市大疆创新科技有限公司 | 设备升级的方法、装置及存储介质 |
CN112764783A (zh) * | 2021-02-02 | 2021-05-07 | 杭州雅观科技有限公司 | 一种智慧家居设备的升级方法 |
Non-Patent Citations (2)
Title |
---|
严红: "PB10.0实现C/S模式下客户端软件自动升级", 《铜业工程》 * |
沈江等: "多传感器自适应控制网络平台构建及其硬件设计", 《制造技术与机床》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048594A (zh) * | 2022-07-01 | 2023-05-02 | 荣耀终端有限公司 | 软件升级方法及相关装置 |
CN116048594B (zh) * | 2022-07-01 | 2023-10-10 | 荣耀终端有限公司 | 软件升级方法及相关装置 |
CN116048563A (zh) * | 2022-08-05 | 2023-05-02 | 荣耀终端有限公司 | 一种系统升级方法、电子设备以及存储介质 |
CN116048563B (zh) * | 2022-08-05 | 2023-10-13 | 荣耀终端有限公司 | 一种系统升级方法、电子设备以及存储介质 |
CN116719556A (zh) * | 2022-09-26 | 2023-09-08 | 荣耀终端有限公司 | 系统升级的方法和电子设备 |
CN116719556B (zh) * | 2022-09-26 | 2024-05-24 | 荣耀终端有限公司 | 系统升级的方法和电子设备 |
CN116302454A (zh) * | 2023-05-22 | 2023-06-23 | 荣耀终端有限公司 | 申请网络资源的方法及电子设备 |
CN116841593A (zh) * | 2023-09-01 | 2023-10-03 | 荣耀终端有限公司 | 软件升级方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114461240B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114461240B (zh) | 软件升级方法、软件升级系统及电子设备 | |
WO2020177622A1 (zh) | Ui组件显示的方法及电子设备 | |
CN114461239B (zh) | 软件升级系统和软件升级方法 | |
CN110795179B (zh) | 一种显示方法及电子设备 | |
CN116360725B (zh) | 显示交互系统、显示方法及设备 | |
CN114356258A (zh) | 电子设备及其投屏方法和介质 | |
CN112237031B (zh) | 智能家居设备接入网络的方法及相关设备 | |
CN114124980B (zh) | 一种启动应用的方法、设备、系统、终端及存储介质 | |
CN112543447A (zh) | 基于通讯录的设备发现方法、音视频通信方法及电子设备 | |
WO2022156535A1 (zh) | 分布式应用的处理方法和装置 | |
CN113918110A (zh) | 投屏交互方法、设备、系统、存储介质和产品 | |
CN114143906B (zh) | 一种电子设备连接方法及电子设备 | |
CN113703849B (zh) | 投屏应用打开方法和装置 | |
CN113835802A (zh) | 设备交互方法、系统、设备及计算机可读存储介质 | |
CN113608753A (zh) | 应用卸载方法、应用恢复方法、电子设备以及存储介质 | |
CN114172925B (zh) | 配网方法及设备 | |
CN114168160A (zh) | 应用模块启动方法和电子设备 | |
CN116541188B (zh) | 通知显示方法、终端设备及存储介质 | |
CN112840680A (zh) | 位置信息处理方法及相关装置 | |
CN115942253B (zh) | 一种提示方法及相关装置 | |
WO2024188190A1 (zh) | 一种卡片显示方法及电子设备 | |
CN117729561B (zh) | 系统升级方法、终端及存储介质 | |
CN116719556B (zh) | 系统升级的方法和电子设备 | |
JP7404389B2 (ja) | 運動軌跡記録方法及び関連デバイス | |
WO2024078251A1 (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 |