CN115562696A - 软件升级方法、控制设备及智慧屏 - Google Patents
软件升级方法、控制设备及智慧屏 Download PDFInfo
- Publication number
- CN115562696A CN115562696A CN202210177754.9A CN202210177754A CN115562696A CN 115562696 A CN115562696 A CN 115562696A CN 202210177754 A CN202210177754 A CN 202210177754A CN 115562696 A CN115562696 A CN 115562696A
- Authority
- CN
- China
- Prior art keywords
- screen
- upgrading
- smart screen
- upgrade
- software
- 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)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种软件升级方法、控制设备及智慧屏,涉及软件测试技术领域。在本申请方案中,通过在控制设备与智慧屏之间建立连接,控制设备可以先后向智慧屏发送具备非root权限的系统升级包、具备root权限的系统升级包,使得智慧屏可以先基于具备非root权限的系统升级包升级系统,再基于具备root权限的系统升级包升级系统。如此在系统升级的中途不需要人工介入,简化了人工操作步骤,并提高了升级效率。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种软件升级方法、控制设备及智慧屏。
背景技术
智慧屏,也称为智屏或智慧大屏,是一种搭载操作系统,支持影音娱乐、多设备交互、信息共享、控制管理和视频通话等多种功能的大屏设备。
在将智慧屏投入市场之前,研发人员通常会对智慧屏的操作系统的版本软件进行多轮升级。每轮升级过程均需要下述操作:如图1所示,在获取到版本软件的非超级用户权限(root)包(也称为基础包)和root包后,研发人员先将基础包拷贝到通用串行总线(universal serial bus,USB)闪存盘(简称U盘),再将U盘插入智慧屏的USB接口,从而智慧屏可以识别到基础包以及启动自动升级。然后,研发人员再将root包拷贝到U盘,再次将U盘插入智慧屏的USB接口,从而智慧屏可以识别到root包以及再次启动自动升级。在完成两次升级之后,人工连接安卓测试网桥(android debug bridge,ADB)并挂载测试用例。
由于上述每轮升级过程,均需要全程人工介入,因此导致升级步骤繁琐,效率低下。
发明内容
本申请提供一种软件升级方法、控制设备及智慧屏,解决了采用人工方式对智慧屏的操作系统进行升级,存在效率低下的技术问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供一种软件升级方法。该方法包括:
在第一升级包的软件版本与智慧屏的系统的软件版本不同,且控制设备与智慧屏建立连接的情况下,向智慧屏发送第一升级包,第一升级包为具备非root权限的、用于系统升级的软件程序;
向智慧屏发送第一升级指令,第一升级指令用于指示智慧屏基于第一升级包对智慧屏的系统进行软件升级;
在控制设备与智慧屏重新建立连接的情况下,向智慧屏发送第二升级包,第二升级包为具备root权限的、用于系统升级的软件程序,第二升级包与第一升级包的软件版本相同;
向智慧屏发送第二升级指令,第二升级指令用于指示智慧屏基于第二升级包对智慧屏的系统进行软件升级。
通过上述方案,由于在控制设备与智慧屏之间建立了连接,因此控制设备可以先后向智慧屏发送具备非root权限的系统升级包、第一升级指令、具备root权限的系统升级包和第二升级指令,从而使得智慧屏可以先基于具备非root权限的系统升级包和第一升级指令进行第一次系统升级,再基于具备非root权限的系统升级包和第二升级指令进行第二次系统升级。如此在系统升级的中途不需要拷贝升级包和插拔U盘等人工操作,即不需要人工介入,从而简化了升级步骤,并提高了升级效率。
在一些实施例中,控制设备与智慧屏之间的连接方式为ADB连接,控制设备和智慧屏通过ADB连接传输升级包和升级指令。
在一些实施例中,第一升级包和第二升级包均包含除目标镜像文件外的文件,即,第一升级包和第二升级包均不包含目标镜像文件。其中,该目标镜像文件用于擦除ADB授权信息,该ADB授权信息用于允许建立ADB连接。
在一些实施例中,在向智慧屏发送第一升级包之前,该方法还包括:
获取第一初始升级包和第二初始升级包,该第一初始升级包为包含目标镜像文件的、具备非root权限的用于系统升级的软件程序,该第二初始升级包为包含目标镜像文件的、具备root权限的用于系统升级的软件程序;
从该第一初始升级包中删除该目标镜像文件,得到第一升级包;
从该第二初始升级包中删除该目标镜像文件,得到第二升级包。
在一些实施例中,在向智慧屏发送第一升级指令之后,在向智慧屏发送第二升级包之前,该方法还包括:
在控制设备与智慧屏断开连接的情况下,向智慧屏发送第一请求消息,该第一请求消息用于请求智慧屏与控制设备重新建立连接;
接收来自智慧屏的第一响应消息,该第一响应消息用于指示控制设备与智慧屏已重新建立连接。
在一些实施例中,向智慧屏发送第一请求消息,包括:
在从第一时刻开始的计时时长达到第一时长之后,按照预设周期向智慧屏发送第一请求消息;
其中,该第一时刻为向智慧屏发送第一升级指令的时刻;或者,该第一时刻为在向智慧屏发送第一升级指令之后,控制设备与智慧屏断开连接的时刻。
在一些实施例中,第一时长小于或等于第一预估时长,或者,第一时长与第一预估时长的差值的绝对值小于或等于预设值;
其中,该第一预估时长为智慧屏基于第一升级包对系统进行软件升级的预估耗时时长。
在一些实施例中,在向智慧屏发送第二升级指令之后,该方法还包括:
向智慧屏发送第二请求消息,该第二请求消息用于请求智慧屏与控制设备重新建立连接;
接收来自智慧屏的第二响应消息,该第二响应消息用于指示控制设备与智慧屏已重新建立连接。
在一些实施例中,向智慧屏发送第二请求消息,包括:
在从第二时刻开始的计时时长达到第二时长之后,按照预设周期向智慧屏发送第二请求消息;
其中,该第二时刻为向智慧屏发送第二升级指令的时刻;或者,该第二时刻为在向智慧屏发送第二升级指令之后,控制设备与智慧屏断开连接的时刻。
在一些实施例中,第二时长小于或等于第二预估时长,或者,第二时长与第二预估时长的差值的绝对值小于或等于预设值;
其中,该第二预估时长为智慧屏基于第二升级包对系统进行软件升级的预估耗时时长。
在一些实施例中,接收来自智慧屏的第二响应消息之后,该方法还包括:
对智慧屏进行基础测试。
在一些实施例中,第一升级指令和第二升级指令为恢复recovery指令。
在一些实施例中,向与控制设备连接的智慧屏发送第一升级包之前,该方法还包括:
获取第一升级包和第二升级包。
第二方面,本申请实施例提供一种软件升级方法。该方法包括:
在智慧屏与控制设备建立连接的情况下,接收来自控制设备的第一升级包,并在智慧屏的目标存储区域存储第一升级包,第一升级包为具备非root权限的、用于系统升级的软件程序,第一升级包的软件版本与智慧屏的系统的软件版本不同;
接收来自控制设备的第一升级指令,并响应于第一升级指令,根据第一升级包对智慧屏的系统进行软件升级;
在智慧屏与控制设备重新建立连接的情况下,接收来自控制设备的第二升级包,并在目标存储区域存储第二升级包,第二升级包为具备root权限的、用于系统升级的软件程序,第二升级包与第一升级包的软件版本相同;
接收来自控制设备的第二升级指令,并响应于第二升级指令,根据第二升级包对智慧屏的系统进行软件升级。
通过上述方案,由于在控制设备与智慧屏之间建立了连接,因此智慧屏可以先接收到控制设备发送的具备非root权限的系统升级包和第一升级指令,并基于具备非root权限的系统升级包和第一升级指令进行第一次系统升级;再接收到控制设备发送的具备非root权限的系统升级包和第二升级指令,并基于具备非root权限的系统升级包和第二升级指令进行第二次系统升级。如此整个系统升级过程不需要插拔U盘等人工操作,即不需要人工介入,从而简化了升级步骤,并提高了升级效率。
在一些实施例中,智慧屏与控制设备之间的连接方式为ADB连接,控制设备和智慧屏通过ADB连接传输升级包和升级指令。
在一些实施例中,第一升级包和第二升级包均包含除目标镜像文件外的文件,即,第一升级包和第二升级包均不包含目标镜像文件。其中,该目标镜像文件用于擦除ADB授权信息,该ADB授权信息用于允许建立ADB连接。
在一些实施例中,该方法还包括:
在根据第一升级包对智慧屏的系统进行软件升级的过程中,关闭智慧屏的端口,以断开智慧屏与控制设备的连接;
在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接。
在一些实施例中,在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接,包括:
在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口;
接收来自控制设备的第一请求消息,第一请求消息用于请求智慧屏与控制设备重新建立连接;
向控制设备发送第一响应消息,第一响应消息用于指示控制设备与智慧屏已重新建立连接。
在一些实施例中,该方法还包括:
在根据第二升级包对智慧屏的系统进行软件升级的过程中,关闭智慧屏的端口,以断开智慧屏与控制设备的连接;
在根据第二升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接。
在一些实施例中,在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接,包括:
在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口;
接收来自控制设备的第一请求消息,第一请求消息用于请求智慧屏与控制设备重新建立连接;
向控制设备发送第一响应消息,第一响应消息用于指示控制设备与智慧屏已重新建立连接。
在一些实施例中,该方法还包括:
在根据第二升级包完成系统的软件升级,并重新建立智慧屏与控制设备的连接之后,接收来自控制设备的测试任务;
根据测试任务,对智慧屏的系统进行基础测试,得到测试结果;
向控制设备发送测试结果。
在一些实施例中,第一升级指令和第二升级指令为recovery指令。
在一些实施例中,目标存储区域为板载U盘的存储区域。
第三方面,本申请实施例提供一种调试装置,该装置包括用于执行上述第一方面的方法的模块。该装置可对应于执行上述第一方面描述的方法,该装置中的模块的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
第四方面,本申请实施例提供一种被调试装置,该装置包括用于执行上述第二方面的方法的模块。该装置可对应于执行上述第二方面描述的方法,该装置中的模块的相关描述请参照上述第二方面的描述,为了简洁,在此不再赘述。
第五方面,本申请实施例提供一种控制设备,包括处理器和通信接口,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得控制设备实现如上述第一方面描述的软件升级方法。
第六方面,本申请实施例提供一种智慧屏,包括处理器和通信接口,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得智慧屏实现如上述第二方面描述的软件升级方法。
第七方面,本申请提供一种芯片系统,该芯片系统与存储器耦合,该芯片系统用于读取并执行存储器中存储的计算机程序,以实现如第一方面或者第二方面描述的软件升级方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当计算机程序在控制设备上运行时,使得控制设备执行如第一方面描述的软件升级方法,或者,当计算机程序在智慧屏上运行时,使得智慧屏执行如第二方面描述的软件升级方法。
第九方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或者第二方面描述的软件升级方法。
可以理解的是,上述第三方面至第九方面的有益效果可以参见上述第一方面和第二方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的人工升级软件版本的流程示意图;
图2为本申请一实施例提供的通信系统的结构示意图;
图3为本申请另一实施例提供的通信系统的结构示意图;
图4为本申请又一实施例提供的通信系统的结构示意图;
图5为本申请一实施例提供的软件升级方法的流程示意图;
图6为本申请另一实施例提供的软件升级方法的流程示意图;
图7为本申请再一实施例提供的通信系统的结构示意图;
图8为本申请又一实施例提供的软件升级方法的流程示意图;
图9为本申请还一实施例提供的通信系统的结构示意图;
图10为本申请实施例提供的获取升级包的流程示意图;
图11为本申请实施例提供的控制设备的结构示意图;
图12为本申请实施例提供的智慧屏的结构示意图;
图13为本申请实施例提供的调试装置的结构示意图;
图14为本申请实施例提供的被调试装置的结构示意图。
具体实施方式
在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,本申请实施例中的“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
下面对本申请中涉及的名词或者术语进行解释说明。
root称为根或超级用户。具备root权限的用户是Unix系统、类UNIX系统(如Linux、QNX等)、Android系统和iOS移动设备系统等操作系统中唯一的超级用户,其具有操作系统中的最高权限,可完全掌控系统底层及系统文件,对根目录执行读写和执行操作,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件,新建文件、修改文件或删除所有文件等。
ADB是安卓软件开发工具包(software development kit,SDK)中的一个工具,采用这个工具可以直接通过控制设备操作管理安卓模拟器或者真实的安卓设备。具体地,ADB是一种客户端-服务器端程序,包括以下三个组件:
客户端:用于发送ADB指令,其主要在控制设备上运行。
守护程序:用于运行指令,其在安卓设备上作为后台进程运行。
服务器:用于管理客户端与守护程序之间的通信,其在控制设备上作为后台进程运行。
通常,ADB的主要功能可以包括但不限于下述几项:
1)运行安卓设备的壳(shell)管理模拟器或安卓设备的端口映射。
2)在控制设备和安卓设备之间上传或下载文件。
3)将安卓安装包(android package,APK)安装至安卓模拟器或者安卓设备。
需要说明的是,上述控制设备也可以称为开发机、开发机器、测试设备、测试机器、测试装置、调试设备或调试装置等。上述安卓设备也可以称为被测试设备、被测试机器、被测试装置、被调试设备或被调试装置等。具体到本申请实施例,控制设备可以为计算机设备,安卓设备可以为智慧屏。在将计算机设备与智慧屏建立ADB连接之后,研发人员或测试人员可以采用计算机设备的ADB工具操作管理智慧屏,例如通过计算机设备的ADB工具控制智慧屏升级系统。
上述计算机设备,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备。计算机设备可以包括处理器、存储器和通信接口等。由处理器执行在存储器中预存的指令来执行预定处理过程,或是由专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array FPGA)或数字信号处理(digital signal processing,DSP)等硬件执行预定处理过程,或是由上述二者组合来实现。由通信接口与智慧屏传递消息。具体到本申请实施例,计算机设备可以包括但不限于个人计算机(personal computer,PC)、笔记本电脑、平板电脑、智能手机或服务器等任意可能的设备。
上述智慧屏,也可以称为智屏、智屏设备或智慧大屏,是区别于传统电视和显示屏等,突破了大屏品类限制,重新定义的一种搭载操作系统的新品类。在一些场景中,智慧屏可以成为家庭情感中心,承担家庭中的更多角色。智慧屏不仅是家庭的影音娱乐中心,更是信息共享中心、控制管理中心和多设备交互中心。在另一些场景中,智慧屏可以成为一款高效的办公设备,支持多终端实时预约会议室、会后一键生成会议记录、会后自动关闭电源等多种功能,优化了会议协同体验,满足了不同场景的沟通需求。
需要说明的是,本申请实施例对智慧屏的屏幕尺寸、屏幕类型以及支持功能等不作具体限定。例如,屏幕尺寸可以为45英寸、55英寸、65英寸或75英寸等,屏幕类型可以为液晶显示器(liquid crystal display,LCD)、发光二极管(light emitting diode,LED)或数字光处理(digital light processing,DLP)等,支持功能可以包括影视播放、多设备交互、跨屏互动、远程会议、开机无广告、智能联控和语音交互等。
如果采用如图1所示的常规测试方法对智慧屏的操作系统的版本软件进行多轮升级,那么在每轮升级过程中,研发人员或测试人员需要先将拷贝了基础包的U盘插入智慧屏的USB接口,从而智慧屏可以识别到基础包以及启动升级。然后,将拷贝了root包的U盘插入智慧屏的USB接口,从而智慧屏可以识别到root包以及再次启动升级。在完成对软件版本的两次升级之后,研发人员或测试人员可以使用连接线(如网线)连接控制设备和安卓设备,并在两者之间建立ADB连接,从而可以挂载测试用例以完成基础测试。据统计数据表明,完成每轮升级过程大约需要20分钟左右,因此导致软件升级效率较低。
鉴于上述问题,本申请实施例提出一种软件升级方案:预先在控制设备与智慧屏之间建立ADB连接。在具备非root权限的系统升级包(简称为基础包)和具备root权限的系统升级包(简称为root包)的版本相同,且基础包、root包的软件版本与智慧屏的系统的软件版本不同的情况下,如果控制设备与智慧屏已经建立了ADB连接,那么控制设备可以先通过ADB连接向智慧屏发送基础包,再通过ADB连接向智慧屏发送第一升级指令,从而智慧屏可以基于基础包和第一升级指令进行第一次系统升级;然后,在控制设备与智慧屏重新建立ADB连接的情况下,控制设备可以向智慧屏发送root包,再通过ADB连接向智慧屏发送第二升级指令,从而智慧屏可以基于root包和第二升级指令进行第二次系统升级。由于在系统升级的中途,不需要拷贝升级包和插拔U盘等人工操作,即不需要人工介入,因此简化了人工操作步骤,并提高了升级效率。
下面以控制设备通过ADB连接对智慧屏的操作系统进行升级为例,结合图2至图14,对本申请实施例涉及的通信系统及软件升级方法等进行说明。
首先对本申请实施例提供的通信系统进行说明。该通信系统可以包括控制设备和智慧屏。控制设备和智慧屏可以通过下述三种方式建立ADB连接。
(1)控制设备和智慧屏通过有线通信技术建立ADB连接。
图2为本申请一实施例提供的通信系统的结构示意图。如图2所示,该通信系统可以包括通过有线通信技术连接的控制设备11和智慧屏12。
示例性地,研发人员可以使用一根连接线13将控制设备11和智慧屏12物理连接起来。该连接线可以是网线(如双绞线、同轴电缆或光缆等),也可以是数据线(如USB数据线等)。以网线为例,研发人员可以将网线的网口分别与控制设备11、智慧屏12的网口连接,并设置控制设备11和智慧屏12的互联网协议(internet protocol,IP)地址,从而使得控制设备11和智慧屏12处于同一局域网内,并建立有线通信连接。
假设智慧屏12预先安装了ADB的守护程序组件,在控制设备11预先安装了ADB的客户端组件及服务器组件。研发人员可以分别开启控制设备11和智慧屏12,从而使得两台设备处于正常工作状态。在控制设备11和智慧屏12建立有线通信连接的前提条件下,研发人员可以对控制设备11和智慧屏12建立ADB连接。例如,研发人员可以通过对智慧屏12中开发者选项界面的“开启开发者选项”121和“调试选项”122的操作,触发开启智慧屏12的调试功能。然后,研发人员可以在控制设备11的指令提示符(command prompt,CMD)窗口输入“cdD:\Android\sdk\platform-tools”并进行回车操作,之后在CMD窗口输入“adb devices”指令,即查看设备指令。此时,若CMD窗口输出“192.168.31.109device”,则表示控制设备11与智慧屏12已成功建立ADB连接。其中,192.168.31.109为智慧屏12的IP地址。
需要说明的是,上述图2是以控制设备输出智慧屏的IP地址,用来代表控制设备与智慧屏已成功建立ADB连接为例进行示例说明的,其并不对本申请实施例形成限定。在实际实现时,控制设备也可以输出智慧屏的媒体接入控制(media access control,MAC)地址或智慧屏设备码等,用来代表控制设备与智慧屏已成功建立ADB连接,可以根据实际使用需求确定。
另外,在控制设备11和智慧屏12之间还可以设置路由器、网桥或交换机等网络设备,本申请实施例不作限定。
(2)控制设备和智慧屏通过无线通信技术建立ADB连接。
上述无线通信技术可以是无线保真(wireless-fidelity,wifi)技术或蓝牙技术等,本申请实施例不作限定。
图3为本申请另一实施例提供的通信系统的结构示意图。如图3所示,该通信系统可以包括通过wifi技术连接的控制设备11、智慧屏12和路由器14,从而使得控制设备11和智慧屏12接入同一局域网中。
假设智慧屏12预先安装了ADB的守护程序组件,在控制设备11预先安装了ADB的客户端组件及服务器组件。研发人员可以分别开启控制设备11和智慧屏12,从而使得两台设备处于正常工作状态。然后,在控制设备11和智慧屏12建立wifi连接的前提条件下,研发人员可以打开智慧屏12中状态信息界面,以查看智慧屏12的IP地址。例如,智慧屏12的状态信息界面包括了智慧屏12的IP地址“192.168.31.109”123。基于该IP地址,研发人员可以在控制设备11的CMD窗口输入“adb connect 192.168.31.109”,即连接设备指令。若CMD窗口输出“connected to 192.168.31.109:5555”,则表示控制设备11与智慧屏12已成功建立ADB连接。
(3)控制设备和智慧屏通过有线和无线通信技术建立ADB连接。
图4为本申请又一实施例提供的通信系统的结构示意图。如图4所示,该通信系统可以包括控制设备11、智慧屏12和路由器14。具体地,控制设备11与路由器14可以通过数据线连接,智慧屏12与路由器14可以通过wifi连接,从而使得控制设备11和智慧屏12接入同一局域网中,进而在控制设备11和智慧屏12之间建立ADB连接。需要说明的是,对于这种通过有线通信技术和无线通信技术建立ADB连接的具体实现方式,可以结合上述实施例分别对通过有线通信技术、无线通信技术建立ADB连接的方案描述,此处不再赘述。
在上述实施例中,可以采用(1)至(3)中的任意一种方式在控制设备11和智慧屏12之间建立ADB连接。在控制设备11与智慧屏12之间建立ADB连接的前提条件下,控制设备11可以继续通过下述方式控制智慧屏12进行操作系统升级:
控制设备11,可以用于在获取基础包和root包之后,先通过ADB连接向智慧屏12发送该基础包。智慧屏12,可以用于通过ADB连接接收该基础包,并在目标存储区域存储该基础包。
控制设备11,还可以用于通过ADB连接向智慧屏12发送第一升级指令。智慧屏12,还可以用于响应于第一升级指令,读取基础包,并根据基础包进行第一次系统升级。
在一些实施例中,在第一次系统升级过程中,智慧屏12会关闭系统,进而会导致关闭智慧屏12的端口(也称网口或接口等)。此时,控制设备11与智慧屏12的端口无法交互数据,即控制设备11和智慧屏12之间断开ADB连接。在第一次系统升级完成之后,智慧屏12会重启系统,进而会重新打开该端口。此时,控制设备11可以从智慧屏12的端口读取数据,即在控制设备11和智慧屏12之间重新建立了ADB连接。
控制设备11,还可以用于在与智慧屏12之间重新建立ADB连接之后,通过ADB连接向智慧屏12发送root包。智慧屏12,还可以用于通过ADB连接接收该root包,并在目标存储区域存储该root包。
控制设备11,还可以用于通过ADB连接向智慧屏12发送第二升级指令。智慧屏12,还可以用于响应于第二升级指令,读取root包,并根据该root包进行第二次系统升级。
在一些实施例中,在第二次系统升级过程中,智慧屏12会再次关闭系统,进而会导致再次关闭端口。此时,控制设备11与智慧屏12的端口无法交互数据,即控制设备11和智慧屏12之间再次断开ADB连接。在第二次系统升级完成之后,智慧屏12会再次重启系统,进而会重新打开该端口。此时,控制设备11可以从智慧屏12的端口读取数据,即控制设备11和智慧屏12之间再次重新建立ADB连接。
控制设备11,还可以用于在与智慧屏12之间再次重新建立ADB连接之后,向智慧屏12发送测试信息或测试任务,以对智慧屏12的系统进行基础测试。例如,控制设备11可以对在系统中安装的视频播放应用程序、日历应用程序、天气应用程序及游戏应用程序等进行基础测试。
需要说明的是,上述实施例是以控制设备作为一个独立设备来实现对智慧屏的软件版升级的。在另一些实施例中,控制设备也可以通过与网络中的其他计算机设备的交互操作来实现对智慧屏的软件版升级,例如如图9和图10所示,控制设备可以从服务器获取基础包和root包,具体过程将在下文中结合图9和图10进行详细描述,此处不予赘述。其中,控制设备所处的网络包括但不限于互联网、广域网、城域网、局域网或虚拟专用网络(virtualprivate network,VPN)网络等。其他计算机设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量计算机或网络服务器构成的云。
图5为本申请实施例提供的软件升级方法的流程示意图。该方法可以应用于在将智慧屏投入市场之前,由研发人员或测试人员对智慧屏的操作系统的版本软件进行自动升级的场景中。该方法的执行主体可以为控制设备和智慧屏。例如,该方法的执行主体可以为如图2、图3或图4中任意一项提供的控制设备和智慧屏;或为控制设备中的功能模块和智慧屏中的功能模块。如图5所示,该方法可以包括下述的S201至S210。
S201、控制设备与智慧屏建立ADB连接。
在控制设备与智慧屏均处于正常工作状态的情况下,可以采用有线通信技术和/或无线通信技术在控制设备与智慧屏之间建立ADB连接。对于在控制设备与智慧屏之间建立ADB连接的具体实现方式,可以参照上述实施例中的描述,此处不再赘述。
本申请实施例提供了一个用于专门用于控制智慧屏进行软件升级的程序main.exe,该程序可以称为主程序。该主程序是按照脚本(script)编写的可执行文件。研发人员或测试人员可以预先将该主程序存储并安装在控制设备中。在研发人员或测试人员触发控制设备启动主程序之后,若主程序与智慧屏已建立ADB连接,则可以自动执行主程序中的脚本,即执行下述实施例的各个步骤。
由于控制设备会通过ADB连接控制智慧屏的操作系统(简称为智慧屏的系统)进行软件升级,因此本申请实施例还提供了主程序与ADB工具的关系:一种方式为,主程序可以包括ADB工具,例如在主程序中写入与ADB工具的客户端组件及服务器组件相关的代码;另一种方式为,主程序可以调用ADB工具,例如,在主程序自动运行的过程中,主程序可以调用ADB工具向智慧屏发送版本软件的升级包和升级指令。
需要说明的是,本申请实施例对控制设备与智慧屏建立ADB连接、控制设备启动主程序的执行顺序不作限定。例如,研发人员或测试人员可以先采用控制设备中的ADB工具,使控制设备与智慧屏建立ADB连接;再触发控制设备启动主程序;之后主程序可以自动执行升级步骤。再例如,研发人员或测试人员可以先触发控制设备启动主程序;再通过主程序调用控制设备的ADB工具,以使得控制设备与智慧屏建立ADB连接;之后主程序可以自动执行升级步骤。
在一些实施例中,用于对智慧屏的操作系统进行软件升级的每个升级包,可以分别对应唯一的版本号。在控制设备获取具备非root权限的系统升级包(称为第一升级包或基础包)和具备root权限的系统升级包(称为第二升级包或root包)后,控制设备可以通过比较第一升级包、第二升级包的软件版本与智慧屏的系统的软件版本是否相同,以确定是否控制智慧屏的操作系统进行软件升级。其中,第一升级包和第二升级包为用于系统升级的软件程序。
示例性地,在控制设备中预先创建一个目标文件,该目标文件可以用于存储升级包,以及与升级包对应的版本号。每当控制设备获取到新增的升级包时,控制设备会在目标文件存储该新增的升级包,以及与该新增升级包对应的版本号。在控制设备已启动主程序,且控制设备与智慧屏已建立ADB连接的前提条件下,主程序可以每隔一段时间遍历该目标文件的目录,通过比较本次的版本号是否与上次遍历的版本号相同,以确定是否有新增的系统升级包。假设在前i次遍历过程中版本号均为pack_Magic UI 4.0,则确定没有新增的系统升级包,不需要对智慧屏的操作系统的版本软件进行升级;假设在第i+1次遍历过程中有新增加的版本号pack_Magic UI 5.0,则确定有新增的系统升级包,需要对智慧屏的操作系统的版本软件进行升级,即执行下述实施例的各个步骤。其中,i为正整数。可以理解,由于当获取到新增的系统升级包时,主程序可以自动执行下述实施例中的升级步骤,而无需人工参与,从而自动完成了智慧屏的操作系统的版本软件的升级工作。
在一些实施例中,在对操作系统的版本软件进行每次升级时,第一升级包和第二升级包是成对获取的。示例性地,以第i+1次遍历过程为例,主程序会获取到两个版本号均为pack_Magic UI 5.0的系统升级包。这两个系统升级包包含的升级文件大致相同,两者的区别在于:第一升级包不具备root权限,如第一升级包的版本号具体为pack_Magic UI5.0-1,后缀-1表示不具备root权限;第二升级包具备root权限,如第二升级包的版本号具体为pack_Magic UI 5.0-2,后缀-2表示具备root权限。
在一些实施例中,在传统的基础包和root包中,可能会包含一个用于擦除ADB授权信息的目标镜像文件userdata.img,该ADB授权信息用于允许建立ADB连接。以传统的基础包为例,在智慧屏根据传统的基础包进行第一次系统升级时,会根据目标镜像文件userdata.img擦除在智慧屏中存储的ADB授权信息。其中,该ADB授权信息可以为由ADB工具生成的公钥ADB key,或者为该公钥的哈希(hash)值。由于在智慧屏中存储的ADB授权信息已经被擦除,因此,如果智慧屏在进行第一次系统升级时断开与控制设备的ADB连接,那么在智慧屏完成第一次系统升级之后,控制设备与智慧屏不会再次建立并保持ADB连接。
与传统方案有所不同,本申请实施例的控制设备在获取包含目标镜像文件userdata.img的基础包和root包之后,在不影响基础包和root包的功能的情况下,会将基础包和root包中的目标镜像文件userdata.img丢弃,即,分别删除基础包和root包中的目标镜像文件userdata.img,从而得到不包含目标镜像文件userdata.img的第一升级包和第二升级包。由于第一升级包和第二升级包均不包含目标镜像文件userdata.img,因此,在智慧屏获取第一升级包和第二升级包后,不会擦除ADB授权信息。如果智慧屏在进行第一次系统升级和第二次系统升级时断开与控制设备的ADB连接,那么在智慧屏完成系统升级之后,由于智慧屏仍存储有ADB授权信息,因此控制设备与智慧屏可以再次建立并保持ADB连接,从而可以继续系统升级任务和测试任务等。
上述实施例是以控制设备获取包含目标镜像文件userdata.img的基础包和root包,并由控制设备删除目标镜像文件userdata.img为例进行说明的,其并不对本申请实施例形成限定。本申请实施例还提供了其他方式:一种方式为,在软件版本开发人员编译基础包和root包时,将基础包和root包的目标镜像文件userdata.img丢弃,之后在服务器发布不包含目标镜像文件userdata.img的基础包和root包。另一种方式为:软件版本开发人员在服务器存储包含目标镜像文件userdata.img的基础包和root包,之后由服务器将基础包和root包的目标镜像文件userdata.img丢弃,之后服务器发布不包含目标镜像文件userdata.img的基础包和root包。由于这两种方式中,服务器发布的基础包和root包均不包含目标镜像文件userdata.img,因此在智慧屏根据基础包和root包完成系统升级之后,仍存储有ADB授权信息,从而能够与控制设备再次建立并保持ADB连接。
需要说明的是,根据版本软件的现有升级规范,第一升级包和第二升级包不能同时存储至智慧屏,否则将影响智慧屏的正常升级。因此,在下述实施例中,控制设备可以先通过ADB连接向智慧屏发送第一升级包,以使得智慧屏基于第一升级包进行第一次系统升级;控制设备再通过ADB连接向智慧屏发送第二升级包。如此,第二升级包会自动覆盖第一升级包,从而使得智慧屏可以基于第二升级包进行第二次系统升级。
S202、控制设备通过ADB连接向智慧屏发送第一升级包。
相应地,智慧屏通过ADB连接接收该第一升级包。
上述第一升级包的软件版本与智慧屏的系统的软件版本不同。具体地,第一升级包的软件版本高于智慧屏的系统的软件版本。
上述第一升级包为具备非root权限的系统升级包。即,第一升级包不具备root权限,相当于一个纯净版或内核版的系统包,因此,第一升级包也称为基础包或底包等。
根据上述实施例描述,由于第一升级包不包含目标镜像文件userdata.img,因此,在智慧屏根据基础包进行第一次系统升级时,不会擦除ADB授权信息。如果智慧屏在进行第一次系统升级时断开与控制设备的ADB连接,那么在智慧屏完成系统升级之后,由于智慧屏仍存储有ADB授权信息,因此控制设备与智慧屏可以再次建立并保持ADB连接,从而可以继续系统升级任务和测试任务。
S203、智慧屏在目标存储区域存储该第一升级包。
上述目标存储区域可以为板载存储介质的存储区域。其中,板载存储介质是指搭载在智慧屏的主板上的存储介质,即,存储介质跟主板集成在一起。
例如,板载存储介质为板载U盘。相应地,目标存储区域可以为板载U盘的存储区域。与智慧屏的内部存储器相比,采用板载U盘存储升级包,使得升级包不易受系统升级的影响,从而提高系统升级的安全性。
示例性地,假设控制设备中的第一升级包的路径为“c:\a.txt”,智慧屏的板载U盘的路径为“sd card”。主程序可以执行脚本“adb push c:\a.txt/sd card”,从而可以将第一升级包推送至智慧屏的板载U盘,进而在板载U盘存储该第一升级包。其中,“adb push”为推送文件到设备的指令。
S204、控制设备通过ADB连接向智慧屏发送第一升级指令。
相应地,智慧屏通过ADB连接接收该第一升级指令。
上述第一升级指令可以用于指示智慧屏基于第一升级包对智慧屏的系统进行软件升级。
示例性地,第一升级指令为“adb shell reboot sdupdate”。
在一些实施例中,第一升级指令为恢复recovery指令,该recovery指令包括第一升级包的路径。假设第一升级包存储在智慧屏的板载U盘,那么该recovery指令可以包括板载U盘的路径。
S205、智慧屏响应于该第一升级指令,根据该第一升级包对智慧屏的系统进行软件升级。
智慧屏可以根据接收到的第一升级指令,从目标存储区域获取/读取第一升级包。然后,基于第一升级包,以非root权限的形式进行第一次系统升级。在进行第一次系统升级的过程中,智慧屏会断开ADB连接并关闭系统等。
S206、在控制设备与智慧屏重新建立ADB连接的情况下,向智慧屏发送第二升级包。
相应地,智慧屏通过ADB连接接收该第二升级包。
上述第二升级包为具备root权限的系统升级包,因此第二升级包也称为root包。
上述第二升级包与第一升级包的软件版本相同。第二升级包的软件版本与智慧屏的系统的软件版本不同。具体地,第二升级包的软件版本高于智慧屏的系统的软件版本。例如,第一升级包与第二升级包的软件版本均为pack_Magic UI 5.0,智慧屏的系统的软件版本为pack_Magic UI 4.0,即第一升级包与第二升级包的软件版本高于智慧屏的系统的软件版本。
根据上述实施例描述,由于第一升级包不包括目标镜像文件userdata.img,因此,在智慧屏根据基础包进行第一次系统升级时,不会擦除ADB授权信息。如果智慧屏进行第一次系统升级时断开了与控制设备的ADB连接,那么在智慧屏完成系统升级之后,由于智慧屏仍存储有ADB授权信息,因此控制设备与智慧屏可以再次建立并保持ADB连接。如此,控制设备可以通过ADB连接向智慧屏发送第二升级包。
S207、智慧屏在目标存储区域存储该第二升级包。
对于目标存储区域可以参照上述S203的描述,此处不再赘述。
在目标存储区域存储第二升级包时,第二升级包会覆盖第一升级包。
示例性地,假设控制设备中第二升级包的路径为“c:\b.txt”,智慧屏的板载U盘的路径为“sd card”。主程序可以执行脚本“adb push c:\b.txt/sd card”,从而可以将第二升级包推送至板载U盘,进而在板载U盘中用该第二升级包覆盖第一升级包。其中,“adbpush”为推送文件到设备的指令。
S208、控制设备通过ADB连接向智慧屏发送第二升级指令。
相应地,智慧屏通过ADB连接接收该第二升级指令。
上述第二升级指令可以用于指示智慧屏基于第二升级包对智慧屏的系统进行软件升级。
在一些实施例中,第一升级指令和第二升级指令的指令内容可以相同。例如,第一升级指令和第二升级指令均为“adb shell reboot sdupdate”。
在一些实施例中,第二升级指令为恢复recovery指令,该recovery指令包括第二升级包的路径。由于第一升级包和第二升级包先后均存储在目标存储区域,因此当第一升级指令和第二升级指令的指令内容相同时,第一升级指令和第二升级指令包括的升级包的路径相同。
S209、智慧屏响应于该第二升级指令,根据该第二升级包对智慧屏的系统进行软件升级。
智慧屏可以根据接收到的第二升级指令,从目标存储区域获取第二升级包。然后,基于第二升级包,以root权限的形式进行第二次系统升级。在进行第二次系统升级的过程中,智慧屏仍会断开ADB连接,关闭系统以及重启系统等。
S210、在控制设备与智慧屏再次重新建立ADB连接的情况下,控制设备对智慧屏进行基础测试。
根据上述实施例描述,由于第二升级包也不包括目标镜像文件userdata.img,因此,在智慧屏响应于第二升级指令,根据该第二升级包完成系统升级之后,智慧屏仍存储有ADB授权信息,因此控制设备与智慧屏可以再次重新建立并保持ADB连接。之后,控制设备可以对智慧屏进行一些基础测试。示例性地,控制设备可以向智慧屏发送测试任务,该测试任务可以用于对智慧屏的系统进行基础测试。在智慧屏该测试任务后,智慧屏可以根据该测试任务,对智慧屏的系统进行基础测试,得到测试结果,并向控制设备发送测试结果。然后,控制设备接收并输出该测试结果。
例如,上述基础测试可以包括以下至少一项:
通过adb shell input模拟按键输入,如调节音量、移动光标、暂停播放、调节屏幕亮度、系统休眠和打开语音助手等;
通过adb shell pm list packages指令查看应用列表;
通过adb install指令安装应用;
通过adb uninstall[-k]<packagename>卸载应用;
通过adb shell pm clear<packagename>清除应用数据与缓存;
通过adb shell dumpsys activity services[<packagename>]查看正在运行的服务;
通过adb shell dumpsys battery查看电源信息;
通过adb logcat查看系统日志等。
通过上述方案,由于在控制设备与智慧屏之间建立了连接,因此控制设备可以先后向智慧屏发送具备非root权限的系统升级包、第一升级指令、具备root权限的系统升级包和第二升级指令,从而使得智慧屏可以先基于具备非root权限的系统升级包和第一升级指令进行第一次系统升级,再基于具备非root权限的系统升级包和第二升级指令进行第二次系统升级。如此在系统升级的中途不需要拷贝升级包和插拔U盘等人工操作,即不需要人工介入,从而简化了升级步骤,并提高了升级效率。
在一些实施例中,在智慧屏进行系统升级的过程中,智慧屏会关闭系统,并关闭端口,此时控制设备与智慧屏的端口无法交互数据,即控制设备和智慧屏之间会断开ADB连接。在智慧屏完成系统升级之后,智慧屏会重新启动系统,并打开该端口,此时控制设备与智慧屏的端口可以交互数据,即控制设备和智慧屏之间会重新建立ADB连接。
示例性地,结合图5,如图6所示,在S205之后,在S206之前,本申请实施例提供的种软件升级方法还可以包括下述的S211至S214;在S209之后,在S210之前,本申请实施例提供的种软件升级方法还可以包括下述的S215至S218。
S211、在根据第一升级包对智慧屏的系统进行软件升级的过程中,智慧屏关闭端口,以断开智慧屏与控制设备的连接。
本申请实施例中,智慧屏通过端口与控制设备交互数据。在响应于第一升级指令升级系统的过程中,智慧屏会关闭系统,从而导致端口关闭,从而控制设备与该端口无法交互数据,例如,控制设备无法从智慧屏读取数据,即控制设备和智慧屏之间断开ADB连接。在基于第一升级指令完成升级系统之后,智慧屏会重新启动系统,并重新打开该端口,以重新建立智慧屏与控制设备的连接,具体包括下述S212至S214。
S212、在根据第一升级包完成系统的软件升级之后,智慧屏重新打开端口。
需要说明的是,智慧屏关闭端口也称为设备下线,智慧屏重新打开端口也称为设备上线。
S213、控制设备向智慧屏发送第一请求消息。
相应地,智慧屏接收该第一请求消息。
上述第一请求消息可以用于请求智慧屏与控制设备重新建立ADB连接。
具体地,控制设备可以从第一时刻开始计时。其中,第一时刻为向智慧屏发送第一升级指令的时刻;或者,第一时刻为在向智慧屏发送第一升级指令之后,控制设备与智慧屏断开连接的时刻。如果从第一时刻开始的计时时长没有达到第一时长,那么智慧屏可能没有上线,因此控制设备的主程序可以处于睡眠状态。如果从第一时刻开始的计时时长达到第一时长,那么智慧屏可能重新上线,因此控制设备的主程序可以按照预设周期向智慧屏发送第一请求消息。例如,控制设备的主程序可以每隔5秒向智慧屏发送一次第一请求消息。
上述第一时长可以根据第一预估时长确定。其中,该第一预估时长为智慧屏基于第一升级包对系统进行软件升级的预估耗时时长。
方式1、第一时长小于或等于第一预估时长。
假设第一预估时长为250~300秒。一种可能为,第一时长小于或等于第一预估时长的最小值,例如第一时长为200秒或250秒。另一种可能为,第一时长小于或等于第一预估时长的最大值,例如第一时长为200秒、250秒或300秒。再一种可能为,第一时长大于或等于第一预估时长的最小值,且第一时长小于或等于第一预估时长的最大值,例如第一时长为250秒、275秒或300秒。
方式2、第一时长与第一预估时长的差值的绝对值小于或等于预设值。
假设第一预估时长为250~300秒。一种可能为,第一时长与第一预估时长中目标预估时长的差值的绝对值小于或等于预设值,例如目标预估时长为275秒,预设值为20,第一时长可以在[255,295]之间任意取值。第一时长与第一预估时长中任意一个预估时长的差值的绝对值小于或等于预设值,例如预设值为20,第一时长可以在[230,320]之间任意取值。
S214、智慧屏向控制设备发送第一响应消息。
相应地,控制设备接收该第一响应消息。
上述第一响应消息可以用于指示控制设备与智慧屏已重新建立ADB连接。
在一些实施例中,第一响应消息可以包含与智慧屏的端口对应的端口号,该端口号可以用于指示控制设备与智慧屏已重新建立连接。
示例性地,假设智慧屏的IP地址为“192.168.31.109”,与智慧屏的端口对应的端口号为5555,ADB授权信息为由ADB工具生成的公钥ADB key。控制设备的主程序可以执行脚本“adb connect 192.168.31.109”,向智慧屏发送请求建立ADB连接的第一请求消息,该第一请求消息包括了由ADB工具生成的公钥ADB key。智慧屏接收第一请求消息之后,可以根据已经存储的公钥ADB key,对接收的公钥ADB key进行认证。如果认证成功,那么智慧屏向控制设备发送第一响应消息,从而控制设备的主程序可以输出“connectedto192.168.31.109:5555”,用以表示控制设备与智慧屏已重新建立ADB连接。如果认证失败或控制设备没有接收到智慧屏的响应消息,那么控制设备的主程序可以输出“connectedto192.168.31.109:”,用以表示智慧屏没有上线或未建立ADB连接。
S215、在根据第二升级包对智慧屏的系统进行软件升级的过程中,智慧屏关闭端口,以断开智慧屏与控制设备的连接。
进一步地,在根据第二升级包完成系统的软件升级之后,智慧屏可以重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接,包括下述S216至S218。
S216、在根据第二升级包完成系统的软件升级之后,智慧屏重新打开端口。
S217、控制设备向智慧屏发送第二请求消息。
相应地,智慧屏接收该第二请求消息。
上述第二请求消息可以用于请求智慧屏与控制设备重新建立连接。
具体地,控制设备可以从第二时刻开始计时。其中,第二时刻为向智慧屏发送第二升级指令的时刻;或者,第二时刻为在向智慧屏发送第二升级指令之后,控制设备与智慧屏断开连接的时刻。如果从第二时刻开始的计时时长没有达到第二时长,那么智慧屏可能没有上线,因此控制设备的主程序可以处于睡眠状态。如果从第二时刻开始的计时时长达到第二时长,那么智慧屏可能重新上线,因此控制设备的主程序可以按照预设周期向智慧屏发送第二请求消息,例如控制设备的主程序每隔5秒向智慧屏发送一次第二请求消息。
上述第二时长可以根据第二预估时长确定。其中,该第二预估时长为智慧屏基于第二升级包对系统进行软件升级的预估耗时时长。一种方式为,第二时长小于或等于第二预估时长。另一种方式为,第二时长与第二预估时长的差值的绝对值小于或等于预设值。
S218、智慧屏向控制设备发送第二响应消息。
相应地,控制设备接收该第二响应消息。
上述第二响应消息可以用于指示控制设备与智慧屏已重新建立连接。
在一些实施例中,第二响应消息包含与智慧屏的端口对应的端口号,该端口号可以用于指示控制设备与智慧屏已重新建立连接。
对于上述S215至S218的实现方式,可以参照上述S211至S214的描述,此处不再赘述。
通过上述方案,在智慧屏基于具备非root权限的系统升级包和第一升级指令进行第一次系统升级之后,由于智慧屏会关闭端口导致断开ADB连接,因此控制设备通过监听该端口,使得重新建立ADB连接。在智慧屏基于具备root权限的系统升级包和第二升级指令进行第二次系统升级之后,由于智慧屏会再次关闭端口导致断开ADB连接,因此控制设备通过再次监听该端口,使得再次重新建立ADB连接,从而可以执行后续测试任务。
在一些实施例中,控制设备可以同时对至少两台智慧屏进行软件升级。下面以图7和图8为例,对一台控制设备控制多台智慧屏进行软件升级进行示例说明。
示例性地,图7为本申请再一实施例提供的通信系统的结构示意图。如图8所示,该通信系统可以包括控制设备11、交换机15、智慧屏12a、智慧屏12b、智慧屏12c、智慧屏12d、智慧屏12e、智慧屏12f、智慧屏12g、智慧屏12h和智慧屏12i。其中,控制设备11与交换机15可以通过1根网线连接,交换机15与9台智慧屏分别通过9根网线连接。通过设置控制设备11和这些智慧屏的IP地址,从而使得控制设备11和这些智慧屏接入到同一局域网中,进而在控制设备和这些智慧屏之间建立ADB连接。
需要说明的是,上述图7是以控制设备同时控制9台智慧屏为例进行示例说明的,本申请实施例对智慧屏的数量并不作具体限定。另外,控制设备与多台智慧屏可以采用有线通信技术和/或无线通信技术建立ADB连接,本申请实施例对控制设备与多台智慧屏的具体连接方式也不作具体限定。
示例性地,图8为本申请又一实施例提供的软件升级方法的流程示意图。该方法可以包括下述的S301至S318。
S301、控制设备与每个智慧屏建立ADB连接。
S302、控制设备通过ADB连接向每个智慧屏分别发送第一升级包。
相应地,每个智慧屏通过ADB连接接收该第一升级包。
上述第一升级包为具备非root权限的系统升级包。即,第一升级包不具备root权限,相当于一个纯净版或内核版的系统包,因此,第一升级包也称为基础包或底包等。
S303、每个智慧屏分别在每个智慧屏的目标存储区域存储该第一升级包。
上述目标存储区域可以为每个智慧屏的板载存储介质的存储区域。其中,板载存储介质指搭载在每个智慧屏的主板上的存储介质,即,存储介质跟主板集成在一起。例如,目标存储区域可以为板载U盘的存储区域。
S304、控制设备通过ADB连接向每个智慧屏分别发送第一升级指令。
相应地,每个智慧屏通过ADB连接接收该第一升级指令。
上述第一升级指令可以用于指示每个智慧屏基于第一升级包对智慧屏的系统进行软件升级。
S305、每个智慧屏分别响应于第一升级指令,根据第一升级包对每个智慧屏的系统进行软件升级。
S306、在根据第一升级包对每个智慧屏的系统进行软件升级的过程中,每个智慧屏关闭端口,以分别断开与控制设备的连接。
S307、在根据第一升级包完成系统的软件升级之后,每个智慧屏重新打开该端口,以重新建立与控制设备的连接。
S308、控制设备向每个智慧屏分别发送第一请求消息。
相应地,每个智慧屏分别接收该第一请求消息。
第一请求消息可以用于请求每个智慧屏与控制设备分别重新建立ADB连接。
S309、在每个智慧屏完成系统升级后,每个智慧屏分别向控制设备发送第一响应消息。
相应地,控制设备接收来自各个智慧屏的第一响应消息。其中,一个智慧屏发送的第一响应消息可以用于指示控制设备与该一个智慧屏已重新建立ADB连接。
S310、在控制设备与各个智慧屏重新建立ADB连接的情况下,控制设备向各个智慧屏分别发送第二升级包。
相应地,每个智慧屏通过ADB连接接收该第二升级包。
上述第二升级包为具备root权限的系统升级包,因此第二升级包也称为root包。
需要说明的是,本申请实施例对控制设备向各个智慧屏分别发送第二升级包的实现方式不作限定。例如,每当控制设备与一个智慧屏建立ADB连接,则控制设备立即向该一个智慧屏发送第二升级包。再例如,在控制设备与所有智慧屏均建立ADB连接之后,控制设备同时向各个智慧屏分别发送第二升级包。
S311、每个智慧屏在目标存储区域存储该第二升级包。
S312、控制设备通过ADB连接向每个智慧屏分别发送第二升级指令。
相应地,每个智慧屏通过ADB连接接收该第二升级指令。
上述第二升级指令可以用于指示每个智慧屏基于第二升级包对智慧屏的系统进行软件升级。
S313、每个智慧屏分别响应于第二升级指令,根据第二升级包对每个智慧屏的系统进行软件升级。
S314、在根据该第二升级包对每个智慧屏的系统进行软件升级的过程中,每个智慧屏关闭端口,以分别断开与控制设备的连接。
S315、在根据该第二升级包完成系统的软件升级之后,每个智慧屏重新打开该端口,以重新建立与控制设备的连接。
S316、控制设备向每个智慧屏分别发送第二请求消息。
相应地,每个智慧屏接收该第二请求消息。
第二请求消息可以用于请求每个智慧屏与控制设备分别重新建立ADB连接。
S317、在每个智慧屏完成系统升级后,每个智慧屏向控制设备发送第二响应消息。
相应地,控制设备接收来自各个智慧屏的第二响应消息。其中,一个智慧屏发送的第二响应消息可以用于指示控制设备与该一个智慧屏已重新建立ADB连接。
S318、在控制设备与各个智慧屏再次重新建立ADB连接的情况下,控制设备对各个智慧屏进行基础测试。
对于上述S301至S318的实现方式,可以参照上述S201至S218的描述,此处不再赘述。
需要说明的是,为了更清楚地示意软件升级方法,上述图8是以智慧屏1和智慧屏2为例进行说明的。可以理解,在实际实现时控制设备能够对更多的智慧屏进行控制。
此外,图5、图6以及图8是以控制设备与智慧屏之间通过有线通信技术和/或无线通信技术建立ADB连接,并通过ADB连接传输升级包和升级指令为例进行示例说明的,其并不对本申请实施例形成限定。应理解,当智慧屏的操作系统为基于安卓软件开发的操作系统时,控制设备与智慧屏可以通过ADB连接传输升级包和升级指令;当智慧屏的操作系统为基于其他软件开发的操作系统时,控制设备与智慧屏可以通过其他连接传输升级包和升级指令。
通过上述方案,由于控制设备与多台智慧屏均建立了ADB连接,因此在获取到新的软件版本的升级包时,控制设备可以向每台智慧屏先后发送具备非root权限的系统升级包、具备root权限的系统升级包,从而使得每台智慧屏可以先基于具备非root权限的系统升级包升级系统,再基于具备root权限的系统升级包升级系统。如此在对多台智慧屏的系统进行软件升级的中途,不需要人工介入,简化了人工操作步骤,并提高了升级效率。
在一些实施例中,控制设备中不但安装有主程序,还可以安装有用于获取升级包的升级程序。在控制设备与服务器建立通信连接的情况下,如果研发人员或测试人员启动主程序,那么主程序可以调用升级程序从服务器下载升级包。
示例性地,图9为本申请另一实施例提供的通信系统的结构示意图,图10为本申请实施例提供的采用如图9所示的通信系统获取升级包的流程示意图。
如图9所示,通信系统可以包括控制设备11、智慧屏12和服务器16。其中,控制设备11与智慧屏12可以采用有线通信技术和/或无线通信技术连接,控制设备11与服务器16可以采用有线通信技术和/或无线通信技术连接。软件版本开发人员在完成对系统软件的开发之后,对系统软件封包得到新增的升级包,并将该升级包发布在服务器16上。如果研发人员或测试人员启动控制设备11的主程序,那么主程序可以调用升级程序从服务器16下载该升级包,并将该升级包推送至智慧屏12。
如图10所示,在控制设备11与智慧屏12建立ADB连接的情况下,如果研发人员或测试人员启动控制设备11的主程序,那么主程序可以调用控制设备11的升级程序,从而运行升级程序。在升级程序初始化下载器和预设下载器之后,通过下载器从服务器16下载与智慧屏12的版本软件对应的升级包清单。然后,升级程序可以将该升级包清单的版本信息与在控制设备11的目标目录中存储的版本信息进行比较,例如比较两者的版本号,其中,目标目录用于存储已向智慧屏12推送的版本软件的版本信息。如果服务器16提供的升级包的版本高于控制设备11已存储的升级包的版本,例如服务器16提供的升级包的版本号为pack_Magic UI 5.0,控制设备11已存储的升级包的版本为pack_Magic UI 4.0,那么升级程序可以确定有新增的升级包,从而自动建立下载清单。在将升级包下载到临时目录的过程中,控制设备11的屏幕还可以显示升级包的下载进度。之后,升级程序将新下载的升级包复制到目标目录(或上述实施例中的目标文件),从而在升级程序完成了升级包下载任务的条件下,主程序继续运行。进一步地,在主程序确定有新增的系统升级包时,主程序可以自动执行上述图5、图6或者图8的升级步骤,从而完成了智慧屏12的版本软件的升级工作。
需要说明的是,图10是以若升级程序确定没有新增的升级包,则结束下载进程为例进行说明的。在另一些实施例中,若升级程序确定没有新增的升级包,则升级程序可以按照预设周期继续下载升级包清单,并将该升级包清单的版本信息与在控制设备的目标目录中存储的版本信息进行比较,直至确定有新增的升级包,则建立下载清单,并开始下载升级包。
本文描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案均属于本申请的保护范围中。可以理解的是,上述各个方法实施例中由控制设备或智慧屏实现的方法和操作,也可以由控制设备或智慧屏的部件(例如芯片或者电路)实现。
图11为本申请实施例提供的控制设备的硬件结构示意图。如图11所示,控制设备可以包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
处理器401可以是一个通用中央处理器(central processing unit,CPU),微处理器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线402可包括一通路,用于在处理器401、存储器403以及通信接口404之间传送信息。
通信接口404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN)或无线局域网(wireless local areanetworks,WLAN)等。本申请实施例,通信接口404主要用于与智慧屏及服务器通信。
存储器403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc readonly memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备,或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器403用于存储执行应用程序代码,例如主程序和升级程序,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,从而实现上述实施例中的软件升级方法。本申请实施例,存储器还可以用于存储目标目录或目标文件,该目标目录或目标文件存储了版本软件/升级包的版本信息。
作为一种实施例,处理器401可以包括一个或多个CPU。
作为一种实施例,控制设备可以包括多个处理器,例如图11中的两个处理器401。每个处理器可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。
作为一种实施例,控制设备还可以包括输出设备405和输入设备406。输出设备405和处理器401通信,可以以多种方式来显示信息,例如显示主程序的界面和软件测试结果等。其中,输出设备405可以是LCD显示设备,LED显示设备,阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。
输入设备406和处理器401通信,可以以多种方式接收用户的输入,例如接收研发人员或测试人员输入的触发运行主程序的输入/操作。其中,输入设备406可以是鼠标、键盘、触摸屏或传感设备等。
上述的控制设备可以是计算机设备,例如PC,本申请实施例不限定控制设备的具体类型。
图12为本申请实施例提供的智慧屏的硬件结构示意图。
如图12所示,智慧屏100可以包括:处理器110,外部存储器接口120,内部存储器130,通信接口140,电源模块150,无线通信模块160,音频模块170,扬声器170A,麦克风170B,摄像头180以及显示屏190等。
可以理解的是,本申请实施例示意的结构并不构成对智慧屏的具体限定。在本申请另一些实施例中,智慧屏可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
在一些实施例中,智慧屏还可以包括板载U盘(图未示出)。板载U盘可以用于存储来自控制设备的升级包,例如第一升级包和第二升级包。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括图像信号处理器(image signal processor,ISP),DSP,视频编解码器,神经网络处理器(neural-network processing unit,NPU),图形处理器(graphics processing unit,GPU),CPU,应用处理器(application processor,AP),调制解调处理器,和/或基带处理器等。在一些实施例中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,CPU是信息处理、程序运行的最终执行单元,其主要工作包括处理指令、执行操作、控制时间和处理数据等。CPU可以包括控制器、运算器、高速缓冲存储器,以及用于连接这些部件的总线。具体地,控制器是智慧屏的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。运算器是指进行各种算术和逻辑运算操作的部件。高速缓冲存储器可以保存处理器刚用过或循环使用的指令或数据。
在一些实施例中,处理器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)接口,和/或USB接口等。
在一些实施例中,处理器110可以用于基于来自控制设备的第一升级包和第一升级指令升级系统;并在基于第一升级指令升级系统的过程中,控制端口关闭;在完成第一次升级系统之后,控制端口重新打开。处理器110还可以用于基于第二升级包和第二升级指令升级系统,并在基于第二升级指令升级系统的过程中,控制端口关闭;在完成第二次升级系统之后,控制端口重新打开。
外部存储器接口120,可以用于连接外部存储卡,实现扩展智慧屏100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器130,可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器130的指令,从而执行智慧屏100的各种功能应用以及数据处理。内部存储器130可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储智慧屏100使用过程中所创建的数据(比如音频数据)等。此外,内部存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
通信接口140,可以用于与控制设备、机顶盒、路由器和U盘等外部设备通讯。通信接口140可以为网口或USB接口等任意可能的接口。
电源模块150,可以用于接收电源输入,并为处理器110、内部存储器130、无线通信模块160、摄像头180和显示屏190等供电。在一些实施例中,电源模块150也可以设置于处理器110中。
无线通信模块160可以提供应用在智慧屏100上的包括wifi、调频(frequencymodulation,FM)、蓝牙(bluetooth)或近场通信(near field communication,NFC)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频、放大,经天线转为电磁波辐射出去。
在一些实施例中,无线通信模块160可以为wifi和/或蓝牙芯片。智慧屏100可以通过该芯片,与手机等其他终端设备的芯片之间建立连接,以通过该连接实现智慧屏100和其他终端设备之间的无线通信和业务处理。其中,蓝牙芯片通常可以支持蓝牙低能耗(bluetooth low energy,BLE)。
本申请实施例中,智慧屏100的端口是指通信接口140或无线通信模块160等。智慧屏可以通过通信接口140或无线通信模块160,与控制设备交互数据。例如,智慧屏可以通过通信接口140接收来自控制设备的请求消息,该请求消息用于请求控制设备与智慧屏建立ADB连接。再例如,智慧屏可以通过通信接口140向控制设备发送响应消息,该响应消息用于指示控制设备与智慧屏已重新建立ADB连接。
音频模块170,可以用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。智慧屏100可以通过扬声器170A收听音乐,或进行视频会议等。
麦克风170B,也称“话筒”,用于将声音信号转换为电信号。当视频通话、视频会议或使用语音助手时,用户可以通过人嘴靠近麦克风170B发声,将声音信号输入到麦克风170B。智慧屏100可以设置至少一个麦克风170B。在另一些实施例中,智慧屏100可以设置两个麦克风170B,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,智慧屏100还可以设置三个,四个或更多麦克风170B,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
摄像头180,可以用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,智慧屏100可以包括1个或N个摄像头180,N为大于1的正整数。
在本申请实施例中,摄像头180可以为升降式摄像头。通常,升降式摄像头隐藏在智慧屏100的内部,对用户不可见。当用户使用智慧屏100与其他用户进行视频通话或视频会议时,升降式摄像头可以从智慧屏100的顶部弹出,从而升降式摄像头可以采集用户图像,并通过无线通信模块160和天线等将用户图像发送至其他用户的设备。
显示屏190,可以用于显示图像和视频等。显示屏190可以包括显示面板。显示面板可以采用LCD,OLED,有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在本申请实施例中,显示屏190可以用于显示如图2所示的开发者选项界面,以及如图3所示的状态信息界面等。
图13为本申请实施例提供的调试装置的结构示意图。该装置500可以用于执行上文方法实施例中控制设备所执行的动作。该装置500包括发送模块501和接收模块502。
发送模块501,可以用于向智慧屏发送第一升级包,该第一升级包为具备非root权限的、用于系统升级的软件程序;并向智慧屏发送第一升级指令,该第一升级指令用于指示智慧屏基于第一升级包对智慧屏的系统进行软件升级。
发送模块501,还可以用于在与智慧屏之间的连接断开的情况下,向智慧屏发送第一请求消息,该第一请求消息用于请求与智慧屏重新建立连接。接收模块502,可以用于接收来自智慧屏的第一响应消息,该第一响应消息用于指示已重新建立连接。
发送模块501,还可以用于在与智慧屏重新建立连接的情况下,向智慧屏发送第二升级包,该第二升级包为具备root权限的、用于系统升级的软件程序,第二升级包与第一升级包的软件版本相同;并向智慧屏发送第二升级指令,该第二升级指令用于指示智慧屏基于第二升级包对智慧屏的系统进行软件升级。
发送模块501,还可以用于在与智慧屏之间的连接再次断开的情况下,向智慧屏发送第二请求消息,该第二请求消息用于请求与智慧屏再次重新建立连接。接收模块502,可以用于接收来自智慧屏的第二响应消息,该第二响应消息用于指示已再次重新建立连接。
本申请实施例提供的调试装置,由于与智慧屏之间建立了连接,因此该装置可以先后向智慧屏发送具备非root权限的系统升级包、第一升级指令、具备root权限的系统升级包和第二升级指令,从而使得智慧屏可以先基于具备非root权限的系统升级包和第一升级指令进行第一次系统升级,再基于具备非root权限的系统升级包和第二升级指令进行第二次系统升级。如此在系统升级的中途不需要拷贝升级包和插拔U盘等人工操作,即不需要人工介入,从而简化了升级步骤,并提高了升级效率。
根据本申请实施例的调试装置可对应于执行本申请实施例中描述的方法,并且装置的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
应理解,图11所示的控制设备可对应于图13所示的调试装置。其中,图11所示的控制设备中的通信接口404,可以对应于图13中的调试装置中的发送模块501和接收模块502。
图14为本申请实施例提供的被调试装置的结构示意图。该装置600可以用于执行上文方法实施例中智慧屏所执行的动作。该装置600包括接收模块601、处理模块602和发送模块603。
接收模块601,可以用于在智慧屏与控制设备建立连接的情况下,接收来自控制设备的第一升级包。处理模块602,可以用于在目标存储区域存储该第一升级包。其中,该第一升级包为具备非root权限的、用于系统升级的软件程序,该第一升级包的软件版本与智慧屏的系统的软件版本不同。
接收模块601,还可以用于接收来自控制设备的第一升级指令。处理模块602,还可以用于响应于该第一升级指令,根据第一升级包对智慧屏的系统进行软件升级。
接收模块601,还可以用于在与控制设备重新建立连接的情况下,接收来自控制设备的第二升级包。处理模块602,还可以用于在目标存储区域存储该第二升级包。其中,该第二升级包为具备root权限的、用于系统升级的软件程序,该第二升级包与第一升级包的软件版本相同。
接收模块601,还可以用于接收来自控制设备的第二升级指令。处理模块602,还可以用于响应于第二升级指令,根据第二升级包对智慧屏的系统进行软件升级。
在一些实施例中,处理模块602,还可以用于在根据第一升级包对智慧屏的系统进行软件升级的过程中,关闭智慧屏的端口,以断开智慧屏与控制设备的连接;并在根据第一升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接。接收模块601,还可以用于接收来自控制设备的第一请求消息,该第一请求消息用于请求重新建立连接。发送模块603,可以用于向控制设备发送第一响应消息,该第一响应消息用于指示已重新建立连接。
在一些实施例中,处理模块602,还可以用于在根据第二升级包对智慧屏的系统进行软件升级的过程中,关闭智慧屏的端口,以断开智慧屏与控制设备的连接;并在根据第二升级包完成系统的软件升级之后,重新打开智慧屏的端口,以重新建立智慧屏与控制设备的连接。接收模块601,还可以用于接收来自控制设备的第二请求消息,该第二请求消息用于请求重新建立连接。发送模块603,可以用于向控制设备发送第二响应消息,该第二响应消息用于指示已重新建立连接。
本申请实施例提供的被调试装置,由于与控制设备建立了连接,因此该装置可以先接收到控制设备发送的具备非root权限的系统升级包和第一升级指令,并进行第一次系统升级;再接收到控制设备发送的具备非root权限的系统升级包和第二升级指令,并进行第二次系统升级。如此整个系统升级过程不需要插拔U盘等人工操作,即不需要人工介入,从而简化了升级步骤,并提高了升级效率。
根据本申请实施例的被调试装置可对应于执行本申请实施例中描述的方法,并且装置的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
应理解,图12所示的智慧屏可对应于图14所示的被调试装置。其中,图12所示的智慧屏中的处理器110,可以对应于图14中的被调试装置中的处理模块602;图12所示的智慧屏中的通信接口140或无线通信模块160,可以对应于图14中的被调试装置中的接收模块601和发送模块603。
本申请提供一种控制设备,包括处理器和通信接口,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得控制设备实现上述各实施例中的方法。
本申请提供一种智慧屏,包括处理器和通信接口,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得智慧屏实现上述各实施例中的方法。该通信接口也称为通信端口或端口。
本申请提供一种芯片系统,该芯片系统与存储器耦合,该芯片系统用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
在本申请实施例中,控制设备和智慧屏可以包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。其中,硬件层可以包括CPU、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等,本申请实施例主要涉及对智慧屏的操作系统层的操作系统进行软件升级。应用层可以包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于:无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、EEPROM或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM)。例如,RAM可以用作外部高速缓存。作为示例而非限定,RAM可以包括如下多种形式:静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上,或者说对现有技术做出贡献的部分,或者该技术方案的部分,可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,该计算机软件产品包括若干指令,该指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。前述的存储介质可以包括但不限于:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种软件升级方法,其特征在于,所述方法包括:
在第一升级包的软件版本与智慧屏的系统的软件版本不同,且控制设备与所述智慧屏建立连接的情况下,向所述智慧屏发送第一升级包,所述第一升级包为具备非超级用户权限的、用于系统升级的软件程序;
向所述智慧屏发送第一升级指令,所述第一升级指令用于指示所述智慧屏基于所述第一升级包对所述智慧屏的系统进行软件升级;
在所述控制设备与所述智慧屏重新建立连接的情况下,向所述智慧屏发送第二升级包,所述第二升级包为具备超级用户权限的、用于系统升级的软件程序,所述第二升级包与所述第一升级包的软件版本相同;
向所述智慧屏发送第二升级指令,所述第二升级指令用于指示所述智慧屏基于所述第二升级包对所述智慧屏的系统进行软件升级。
2.根据权利要求1所述的方法,其特征在于,所述控制设备与所述智慧屏之间的连接方式为安卓测试网桥连接,所述控制设备和所述智慧屏通过安卓测试网桥连接传输升级包和升级指令。
3.根据权利要求2所述的方法,其特征在于,所述第一升级包和所述第二升级包均包含除目标镜像文件外的文件,所述目标镜像文件用于擦除安卓测试网桥授权信息,所述安卓测试网桥授权信息用于允许建立安卓测试网桥连接。
4.根据权利要求3所述的方法,其特征在于,所述向所述智慧屏发送第一升级包之前,所述方法还包括:
获取第一初始升级包和第二初始升级包,所述第一初始升级包为包含所述目标镜像文件的、具备非超级用户权限的用于系统升级的软件程序,所述第二初始升级包为包含所述目标镜像文件的、具备超级用户权限的用于系统升级的软件程序;
从所述第一初始升级包中删除所述目标镜像文件,得到所述第一升级包;
从所述第二初始升级包中删除所述目标镜像文件,得到所述第二升级包。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述向所述智慧屏发送第一升级指令之后,所述向所述智慧屏发送第二升级包之前,所述方法还包括:
在所述控制设备与所述智慧屏断开连接的情况下,向所述智慧屏发送第一请求消息,所述第一请求消息用于请求所述智慧屏与所述控制设备重新建立连接;
接收来自所述智慧屏的第一响应消息,所述第一响应消息用于指示所述控制设备与所述智慧屏已重新建立连接。
6.根据权利要求5所述的方法,其特征在于,所述向所述智慧屏发送第一请求消息,包括:
在从第一时刻开始的计时时长达到第一时长之后,按照预设周期向所述智慧屏发送所述第一请求消息;
其中,所述第一时刻为向所述智慧屏发送所述第一升级指令的时刻;或者,所述第一时刻为在向所述智慧屏发送所述第一升级指令之后,所述控制设备与所述智慧屏断开连接的时刻。
7.根据权利要求6所述的方法,其特征在于,所述第一时长小于或等于第一预估时长,或者,所述第一时长与第一预估时长的差值的绝对值小于或等于预设值;
其中,所述第一预估时长为所述智慧屏基于所述第一升级包对系统进行软件升级的预估耗时时长。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述向所述智慧屏发送第二升级指令之后,所述方法还包括:
向所述智慧屏发送第二请求消息,所述第二请求消息用于请求所述智慧屏与所述控制设备重新建立连接;
接收来自所述智慧屏的第二响应消息,所述第二响应消息用于指示所述控制设备与所述智慧屏已重新建立连接。
9.根据权利要求8所述的方法,其特征在于,所述向所述智慧屏发送第二请求消息,包括:
在从第二时刻开始的计时时长达到第二时长之后,按照预设周期向所述智慧屏发送所述第二请求消息;
其中,所述第二时刻为向所述智慧屏发送所述第二升级指令的时刻;或者,所述第二时刻为在向所述智慧屏发送所述第二升级指令之后,所述控制设备与所述智慧屏断开连接的时刻。
10.根据权利要求9所述的方法,其特征在于,所述第二时长小于或等于第二预估时长,或者,所述第二时长与第二预估时长的差值的绝对值小于或等于预设值;
其中,所述第二预估时长为所述智慧屏基于所述第二升级包对系统进行软件升级的预估耗时时长。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述接收来自所述智慧屏的第二响应消息之后,所述方法还包括:
向所述智慧屏发送测试任务,所述测试任务用于对所述智慧屏的系统进行基础测试;
接收来自所述智慧屏的测试结果,所述测试结果为对所述智慧屏的系统进行基础测试的结果。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一升级指令和所述第二升级指令为恢复recovery指令。
13.一种软件升级方法,其特征在于,所述方法包括:
在智慧屏与控制设备建立连接的情况下,接收来自所述控制设备的第一升级包,并在所述智慧屏的目标存储区域存储所述第一升级包,所述第一升级包为具备非超级用户权限的、用于系统升级的软件程序,第一升级包的软件版本与所述智慧屏的系统的软件版本不同;
接收来自所述控制设备的第一升级指令,并响应于所述第一升级指令,根据所述第一升级包对所述智慧屏的系统进行软件升级;
在所述智慧屏与所述控制设备重新建立连接的情况下,接收来自所述控制设备的第二升级包,并在所述目标存储区域存储所述第二升级包,所述第二升级包为具备超级用户权限的、用于系统升级的软件程序,所述第二升级包与所述第一升级包的软件版本相同;
接收来自所述控制设备的第二升级指令,并响应于所述第二升级指令,根据所述第二升级包对所述智慧屏的系统进行软件升级。
14.根据权利要求13所述的方法,其特征在于,所述控制设备与所述智慧屏之间的连接方式为安卓测试网桥连接,所述控制设备和所述智慧屏通过安卓测试网桥连接传输升级包和升级指令。
15.根据权利要求14所述的方法,其特征在于,所述第一升级包和所述第二升级包均包含除目标镜像文件外的文件,所述目标镜像文件用于擦除安卓测试网桥授权信息,所述安卓测试网桥授权信息用于允许建立安卓测试网桥连接。
16.根据权利要求13至15中任一项所述的方法,其特征在于,所述方法还包括:
在根据所述第一升级包对所述智慧屏的系统进行软件升级的过程中,关闭所述智慧屏的端口,以断开所述智慧屏与所述控制设备的连接;
在根据所述第一升级包完成系统的软件升级之后,重新打开所述智慧屏的端口,以重新建立所述智慧屏与所述控制设备的连接。
17.根据权利要求16所述的方法,其特征在于,所述在根据所述第一升级包完成系统的软件升级之后,重新打开所述智慧屏的端口,以重新建立所述智慧屏与所述控制设备的连接,包括:
在根据所述第一升级包完成系统的软件升级之后,重新打开所述智慧屏的端口;
接收来自所述控制设备的第一请求消息,所述第一请求消息用于请求所述智慧屏与所述控制设备重新建立连接;
向所述控制设备发送第一响应消息,所述第一响应消息用于指示所述控制设备与所述智慧屏已重新建立连接。
18.根据权利要求13至17中任一项所述的方法,其特征在于,所述方法还包括:
在根据所述第二升级包对所述智慧屏的系统进行软件升级的过程中,关闭所述智慧屏的端口,以断开所述智慧屏与所述控制设备的连接;
在根据所述第二升级包完成系统的软件升级之后,重新打开所述智慧屏的端口,以重新建立所述智慧屏与所述控制设备的连接。
19.根据权利要求18所述的方法,其特征在于,所述在根据所述第二升级包完成系统的软件升级之后,重新打开所述智慧屏的端口,以重新建立所述智慧屏与所述控制设备的连接,包括:
在根据所述第二升级包完成系统的软件升级之后,重新打开所述智慧屏的端口;
接收来自所述控制设备的第二请求消息,所述第二请求消息用于请求所述智慧屏与所述控制设备重新建立连接;
向所述控制设备发送第二响应消息,所述第二响应消息用于指示所述控制设备与所述智慧屏已重新建立连接。
20.根据权利要求18或19所述的方法,其特征在于,所述方法还包括:
在根据所述第二升级包完成系统的软件升级,并重新建立所述智慧屏与所述控制设备的连接之后,接收来自所述控制设备的测试任务;
根据所述测试任务,对所述智慧屏的系统进行基础测试,得到测试结果;
向所述控制设备发送所述测试结果。
21.根据权利要求13至20中任一项所述的方法,其特征在于,所述第一升级指令和所述第二升级指令为recovery指令。
22.根据权利要求13至21中任一项所述的方法,其特征在于,所述目标存储区域为板载U盘的存储区域。
23.一种控制设备,其特征在于,包括处理器和通信接口,所述处理器与存储器耦合,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述控制设备实现如权利要求1至12中任一项所述的软件升级方法。
24.一种智慧屏,其特征在于,包括处理器和通信接口,所述处理器与存储器耦合,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述智慧屏实现如权利要求13至22中任一项所述的软件升级方法。
25.一种芯片系统,其特征在于,所述芯片系统与存储器耦合,所述芯片系统用于读取并执行所述存储器中存储的计算机程序,以实现如权利要求1至22中任一项所述的软件升级方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在控制设备上运行时,使得所述控制设备执行如权利要求1至12中任一项所述的软件升级方法;或者,当所述计算机程序在智慧屏上运行时,使得所述智慧屏执行如权利要求13至22中任一项所述的软件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210177754.9A CN115562696B (zh) | 2022-02-24 | 2022-02-24 | 软件升级方法、控制设备及智慧屏 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210177754.9A CN115562696B (zh) | 2022-02-24 | 2022-02-24 | 软件升级方法、控制设备及智慧屏 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115562696A true CN115562696A (zh) | 2023-01-03 |
CN115562696B CN115562696B (zh) | 2023-09-08 |
Family
ID=84736921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210177754.9A Active CN115562696B (zh) | 2022-02-24 | 2022-02-24 | 软件升级方法、控制设备及智慧屏 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562696B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634675A (zh) * | 2013-12-23 | 2014-03-12 | 乐视致新电子科技(天津)有限公司 | 智能电视中系统升级方法和装置 |
WO2015074536A1 (zh) * | 2013-11-21 | 2015-05-28 | 乐视致新电子科技(天津)有限公司 | 智能电视及其升级方法和升级装置 |
CN105577451A (zh) * | 2016-01-29 | 2016-05-11 | 贵阳海信电子有限公司 | 云电视系统的升级方法及装置 |
CN106162612A (zh) * | 2016-06-27 | 2016-11-23 | 北京小米移动软件有限公司 | 控制Root权限的方法及装置 |
CN107621941A (zh) * | 2017-09-22 | 2018-01-23 | 美的智慧家居科技有限公司 | 软件升级方法、系统及移动智能设备 |
CN112083939A (zh) * | 2019-12-31 | 2020-12-15 | 蓝桥赛维科技(北京)有限公司 | 批量升级方法、装置、系统及介质 |
CN112286547A (zh) * | 2020-09-25 | 2021-01-29 | 浪潮金融信息技术有限公司 | 一种智慧屏应用及固件远程升级方法及装置 |
CN112711430A (zh) * | 2020-12-29 | 2021-04-27 | 杭州当贝网络科技有限公司 | 基于adb的非网络设备升级方法、系统及可读存储介质 |
CN113992958A (zh) * | 2021-10-18 | 2022-01-28 | 深圳康佳电子科技有限公司 | 一种多窗口同屏互动方法、终端及存储介质 |
-
2022
- 2022-02-24 CN CN202210177754.9A patent/CN115562696B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015074536A1 (zh) * | 2013-11-21 | 2015-05-28 | 乐视致新电子科技(天津)有限公司 | 智能电视及其升级方法和升级装置 |
CN103634675A (zh) * | 2013-12-23 | 2014-03-12 | 乐视致新电子科技(天津)有限公司 | 智能电视中系统升级方法和装置 |
CN105577451A (zh) * | 2016-01-29 | 2016-05-11 | 贵阳海信电子有限公司 | 云电视系统的升级方法及装置 |
CN106162612A (zh) * | 2016-06-27 | 2016-11-23 | 北京小米移动软件有限公司 | 控制Root权限的方法及装置 |
CN107621941A (zh) * | 2017-09-22 | 2018-01-23 | 美的智慧家居科技有限公司 | 软件升级方法、系统及移动智能设备 |
CN112083939A (zh) * | 2019-12-31 | 2020-12-15 | 蓝桥赛维科技(北京)有限公司 | 批量升级方法、装置、系统及介质 |
CN112286547A (zh) * | 2020-09-25 | 2021-01-29 | 浪潮金融信息技术有限公司 | 一种智慧屏应用及固件远程升级方法及装置 |
CN112711430A (zh) * | 2020-12-29 | 2021-04-27 | 杭州当贝网络科技有限公司 | 基于adb的非网络设备升级方法、系统及可读存储介质 |
CN113992958A (zh) * | 2021-10-18 | 2022-01-28 | 深圳康佳电子科技有限公司 | 一种多窗口同屏互动方法、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115562696B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5380276B2 (ja) | 共用不揮発性メモリ・アーキテクチャ | |
WO2020221190A1 (zh) | 小程序状态同步方法、设备和计算机存储介质 | |
CN101408846B (zh) | 一种杀毒软件升级的方法及相应的终端和系统 | |
WO2018119904A1 (zh) | 一种实现安全操作系统切换的片上系统和方法 | |
CN111510780B (zh) | 视频直播控制、桥接、流控、播控方法及客户端 | |
CN101438266A (zh) | 按照离散的级引导操作系统 | |
US10038719B2 (en) | Single-step custom configuration of a cloud client device | |
US20120005390A1 (en) | Supporting system for remote control | |
WO2016029792A1 (zh) | 硬件设备的调试方法、装置和系统 | |
CN106445448A (zh) | 终端的音频设备控制方法、系统及移动终端 | |
JP7090095B2 (ja) | デバイスの相互運用及び同期化のためのシステム及び方法 | |
US20120179731A1 (en) | Method, Apparatus and System for Accessing Remote Files | |
WO2021022729A1 (zh) | root权限的分配方法、装置、存储介质及终端设备 | |
CN109005180B (zh) | 一种微型移动式取证黑匣子系统 | |
Grokhotkov | ESP8266 arduino core documentation | |
CN111373379A (zh) | 一种数据备份方法及终端 | |
WO2017185582A1 (zh) | 一种数据处理方法、访问方法及终端 | |
WO2017020458A1 (zh) | 一种插件调用方法及装置 | |
CN109032559A (zh) | 一种多应用共享同一录音设备的配置方法及系统 | |
WO2024078218A1 (zh) | 系统启动方法及电子设备 | |
WO2019047708A1 (zh) | 资源配置方法及相关产品 | |
JP6195465B2 (ja) | 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理 | |
CN112395096A (zh) | 远程函数调用的处理方法、装置、电子设备及存储介质 | |
CN115562696B (zh) | 软件升级方法、控制设备及智慧屏 | |
CN108804147A (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 |