一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

显示设备、播放器升级方法及存储介质与流程

2022-11-16 18:24:07 来源:中国专利 TAG:


1.本公开涉及播放器领域,尤其涉及一种显示设备、播放器升级方法及存储介质。


背景技术:

2.随着科学技术以及多媒体音视频行业的飞速发展,越来越多的人机交互以及娱乐功能出现在显示设备里,资源占用越来越大。同时随着媒体编解码技术的不断更新,需要软件增加对应的功能来适应新的编解码技术,以保证用户最佳的观看效果。在追求用户体验感的时代,频繁的应用升级已经不可避免。
3.在显示设备的系统中,系统播放器的稳定性以及功能性尤为重要。现有技术中,对系统播放器进行升级通常是显示设备接收到弹窗提示有新版本时,用户触发升级操作,然后进行空中下载(over-the-air,ota)升级,但是上述升级方法需要用户手动操作,无法达到用户无感知的升级,影响了用户的观看体验。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种显示设备、播放器升级方法及存储介质,可以准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够提升用户的观看体验。
5.第一方面,本公开提供了一种显示设备,该显示设备包括:
6.控制器,被配置为:确定播放器的版本发生更新,下载所述播放器的更新版本对应的升级包,并安装所述升级包;
7.若数据目录中播放器的第一库文件的版本号低于所述升级包中携带的播放器的第二库文件的版本号,且所述第二库文件完整,则将所述第二库文件存储至数据目录中;
8.比较系统目录和所述数据目录中所述播放器对应的第三库文件的版本号的大小,并加载版本号最大的所述第三库文件。
9.第二方面,本公开提供一种播放器升级方法,包括:
10.确定播放器的版本发生更新,下载所述播放器的更新版本对应的升级包,并安装所述升级包;
11.若数据目录中播放器的第一库文件的版本号低于所述升级包中携带的播放器的第二库文件的版本号,且所述第二库文件完整,则将所述第二库文件存储至数据目录中;
12.比较系统目录和所述数据目录中所述播放器对应的第三库文件的版本号的大小,并加载版本号最大的所述第三库文件。
13.第三方面,本公开提供了一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第二方面所示的播放器升级方法。
14.第四方面,本公开提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第二方面所示的播放器升级方法。
15.本公开实施例提供的技术方案与现有技术相比具有如下优点:显示设备的控制器
首先确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包,然后若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中,最后比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,通过上述过程能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
17.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1为根据本公开一个或多个实施例的显示设备与控制设备之间的操作场景示意图;
19.图2为根据本公开一个或多个实施例的控制设备100的硬件配置框图;
20.图3a为根据本公开一个或多个实施例的显示设备200的硬件配置框图;
21.图3b为根据本公开一个或多个实施例的显示设备200中软件配置示意图;
22.图3c为根据本公开一个或多个实施例的显示设备200中应用程序的图标控件界面显示示意图;
23.图4a为根据本公开一个或多个实施例进行播放器升级的系统框架图;
24.图4b为根据本公开一个或多个实施例进行播放器升级的架构图;
25.图5a为本公开实施例提供的一种播放器升级方法的流程示意图;
26.图5b为本公开实施例提供的一种播放器升级方法的原理示意图;
27.图6a为本公开实施例提供的一种播放器升级过程的结构示意图;
28.图6b为本公开实施例提供的一种播放器升级过程中升级服务模块的结构示意图;
29.图6c为本公开实施例提供的一种播放器升级过程中升级服务模块的处理流程示意图;
30.图6d为本公开实施例提供的一种播放器升级过程中播放器升级模块的结构示意图;
31.图6e为本公开实施例提供的一种播放器升级过程中播放器升级模块的处理流程示意图;
32.图6f为本公开实施例提供的一种播放器升级过程中媒体服务器模块的结构示意图;
33.图6g为本公开实施例提供的一种播放器升级过程中媒体服务器模块的处理流程示意图;
34.图7a为本公开实施例提供的一种播放器升级过程中服务器和显示设备的交互过程示意图;
35.图7b为本公开实施例提供的一种播放器升级过程的整体时序图;
36.图8a为本公开实施例提供的一种前台程序和后台程序占用的cpu时间片的示意图;
37.图8b为本公开实施例提供的一种播放器升级过程中对播放器升级模块对应的父线程进行优化前后,播放器线程和该父线程分别对应的cpu占用率的示意图。
具体实施方式
38.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
39.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
40.本公开中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一库文件和第二库文件等是用于区别不同的库文件,而不是用于描述库文件的特定顺序。
41.随着科学技术以及多媒体音视频行业的飞速发展,越来越多的人机交互以及娱乐功能出现在显示设备里,给用户的生活增添了很多乐趣。同时,随着媒体编解码技术的不断更新,需要软件增加对应的功能来适应新的编解码技术,以保证用户最佳的观看效果。在追求用户体验感的时代,频繁的应用升级已经不可避免。
42.在显示设备的系统中,为了满足用户更多的使用需求,播放器的升级是不可避免的。现有技术中,对播放器进行升级通常是显示设备接收到弹窗提示有新版本时,用户触发升级操作,然后进行ota升级,但是上述升级方法需要用户手动操作,无法达到用户无感知的升级,影响了用户的观看体验。
43.为了解决上述问题,本公开提出了一种新的播放器升级方法,显示设备的控制器首先确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包,然后若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中,最后比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,通过上述过程能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,能够达到用户无感知的升级,且有利于提升用户的观看体验。
44.需要说明的是:当显示设备的播放器有新的版本或者显示设备的系统有新的版本时,用户授权后台自动触发升级流程,即:允许后台下载播放器的更新版本对应的升级包,并安装该升级包,或者允许后台对显示设备的系统进行更新。显示设备的播放器可以为显示设备的系统播放器,在对显示设备的系统进行升级更新时,同时也会对该播放器进行升级更新。
45.图1为根据本公开一个或多个实施例的显示设备与控制设备之间的操作场景示意图。如图1所示,用户可通过智能设备300或控制设备100操作显示设备200,从而实现相应的控制。显示设备200中配置有对应的播放器,以播放相关的节目,例如电视剧、电影、综艺节目以及直播节目等。
46.在一些实施例中,控制设备100可以是遥控器,遥控器和显示设备200的通信可以包括红外协议通信、蓝牙协议通信、无线或其他有线方式等,通过上述通信方式能够控制显示设备200。用户可以通过遥控器上按键、语音输入以及控制面板输入等输入用户指令,来控制显示设备200。
47.在一些实施例中,也可以使用移动终端、平板电脑、计算机、笔记本电脑和其它智能设备来控制显示设备200。
48.在一些实施例中,显示设备200可以不使用上述的智能设备300或控制设备100接收指令,而是通过触摸或者手势等接收用户的控制。
49.在一些实施例中,显示设备200还可以采用除了控制设备100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。
50.在一些实施例中,移动终端可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。也可以将移动终端上显示音视频内容传输到显示设备200上,实现同步显示功能。显示设备200还可与服务器400通过多种通信方式进行数据通信,可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。服务器400可以向显示设备200提供各种内容和互动。显示设备200,可以为液晶显示器、oled显示器或者投影显示设备等。显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能。
51.图2为根据本公开一个或多个实施例的控制设备100的硬件配置框图。如图2所示,控制设备100包括控制器110、通信接口130、用户输入/输出接口140、存储器以及供电电源。控制设备100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。通信接口130用于和外部通信,包含wifi芯片,蓝牙模块,nfc或可替代模块中的至少一种。用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。
52.图3a为根据本公开一个或多个实施例的显示设备200的硬件配置框图。如图3a所示显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口(即用户输入接口)280中的至少一种。控制器250包括中央处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。显示器260可为液晶显示器、oled显示器、触控显示器以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制设备100或服务器400建立控制信号和数据信号的发送和接收。检测器230用于采集外部环境或与外部交互的信号。控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
用户接口280可用于接收控制设备(如:红外遥控器等)的控制信号。
53.在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。用户可在显示器260上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
54.在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphic user interface,简称gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口和控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素中的至少一种。
55.图3b为根据本公开一个或多个实施例的显示设备200中软件配置示意图,如图3b所示,将系统分为四层,从上至下分别为应用程序(applications)层(简称“应用层”),应用程序框架(application framework)层(简称“框架层”),安卓运行时(android runtime)和系统库层(简称“系统运行库层”),以及内核层。
56.在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包括但不限于以上举例。
57.在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的c/c 库以实现框架层要实现的功能。
58.在一些实施例中,内核层是硬件和软件之间的层,至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、wifi驱动、usb驱动、hdmi驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
59.图3c为根据本公开一个或多个实施例的显示设备200中应用程序的图标控件界面显示示意图,如图3c中所示,应用程序层包含至少一个应用程序可以在显示器中显示对应的图标控件,如:直播电视应用程序图标控件、视频点播应用程序图标控件、媒体中心应用程序图标控件、应用程序中心图标控件、游戏应用图标控件等。直播电视应用程序,可以通过不同的信号源提供直播电视。视频点播应用程序,可以提供来自不同存储源的视频。不同于直播电视应用程序,视频点播提供来自某些存储源的视频显示。媒体中心应用程序,可以提供各种多媒体内容播放的应用程序。应用程序中心,可以提供储存各种应用程序。
60.在一些实施例中,上述显示设备是具有显示功能的终端设备,例如电视机、手机、电脑、学习机等。该显示设备中:
61.输出接口(显示器260,和/或,音频输出接口270),被配置为输出用户交互信息;
62.通信器220,用于与服务器400进行通信;
63.控制器250,被配置为:确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包;
64.若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中;
65.比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件。
66.在一些实施例中,控制器250,具体被配置为:
67.若系统目录中第三库文件的版本号大于或等于数据目录中第三库文件的版本号,则加载系统目录中的第三库文件。
68.在一些实施例中,数据目录包括第一子数据目录和第二子数据目录;
69.控制器250,具体被配置为:
70.若数据目录中第三库文件的版本号大于系统目录中第三库文件的版本号,则根据第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,加载对应的第三库文件。
71.在一些实施例中,控制器250,具体被配置为:
72.若第一版本号大于或等于第二版本号,则加载第一子数据目录中的第三库文件;
73.若第二版本号大于第一版本号,则将第二子数据目录中第三库文件复制到第一子数据目录中,并加载第一子数据目录中复制的第三库文件。
74.在一些实施例中,数据目录包括第二子数据目录;
75.控制器250,具体被配置为:
76.若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至第二子数据目录中。
77.在一些实施例中,将执行若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中的线程确定为父线程,将执行将第二库文件存储至数据目录中的线程确定为子线程;
78.控制器250,还被配置为:
79.获取显示设备的系统对应的中央处理器的第一占用率;
80.基于第一占用率与不同的占用率范围的关系,将父线程的优先级降低第一预设个数的级别;
81.若父线程对应的中央处理器的第二占用率大于或者等于第一预设占用率,将子线程的优先级降低第二预设个数的级别。
82.在一些实施例中,控制器250,还被配置为:
83.若子线程对应的存储速率小于预设速率,且第一占用率和第二占用率之和大于或者等于第二预设占用率,则将子线程的优先级降低第三预设个数的级别,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第二预设占用率;
84.若子线程对应的存储速率等于预设速率,第二占用率小于第一预设占用率,且第一占用率和第二占用率之和大于或者等于第三预设占用率,则将子线程的优先级降低第三预设个数的级别,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第三预设占用率,其中,第一预设占用率小于第三预设占用率,第三预设占用率小于第二预设占用率。
85.在一些实施例中,控制器250,还被配置为:
86.向服务器发送检测播放器的版本是否更新的请求,以使服务器基于请求,对播放
器的版本进行检测,并在播放器的版本发生更新时,向控制器发送播放器的版本发生更新的消息;
87.接收服务器发送的播放器的版本发生更新的消息,并基于消息确定播放器的版本发生更新。
88.综上所述,本公开通过在显示设备上执行上述播放器升级方法,显示设备的控制器首先确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包,然后若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中,最后比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,通过上述过程能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。
89.图4a为根据本公开一个或多个实施例进行播放器升级的系统框架图,如图4a所示,该系统中可以包括下载安装模块401、存储模块402以及加载模块403。该系统在确定播放器的版本发生更新时,首先下载安装模块401下载播放器的更新版本对应的升级包,并对该升级包解压之后进行安装,安装完成之后,存储模块402对数据目录中播放器的第一库文件的版本号和升级包中携带的播放器的第二库文件的版本号进行比较,如果第一库文件的版本号低于第二库文件的版本号,说明播放器的当前库文件版本不是最新的,此时对第二库文件进行完整性校验,在第二库文件完整的情况下,将该第二库文件存储至数据目录中,最后加载模块403加载系统目录和数据目录中播放器对应的第三库文件,比较系统目录和数据目录中第三库文件的版本号的大小,并加载版本号最大的第三库文件,从而完成播放器的升级,上述技术方案中,通过加载版本号最大的第三库文件,能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。
90.图4b为根据本公开一个或多个实施例进行播放器升级的架构图。基于上述系统框架,本公开在安卓系统中的实现如图4b所示,安卓系统中主要包括应用层、框架层、系统运行库层以及内核层,实现逻辑主要在应用层体现,其中包括下载安装模块、存储模块402以及加载模块,各模块的作用已经在上述实施例中详细描述过,为了避免重复,此处不再赘述。
91.本公开实施例中提供的播放器升级方法,显示设备的控制器首先确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包,然后若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中,最后比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,通过上述过程能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。为了更加详细的说明本方案,以下将以示例性的方式结合图5a进行说明,可以理解的是,图5a中所涉及的步骤在实际实现时可以包括更多的步骤,或者更少的步骤,并且这些步骤之间的顺序也可以不同,以能够实现本公开实施例中提供的播放器升级方法为准,本公开实施例不做限定。
92.图5a为本公开实施例提供的一种播放器升级方法的流程示意图,图5b为本公开实施例提供的一种播放器升级方法的原理示意图。本实施例可适用于对显示设备中的播放器进行自动升级的情况。如图5a所示,该播放器升级方法具体包括如下步骤:
93.s510,确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包。
94.显示设备在启动后,可以通过自身的检测器对播放器的版本进行检测,确定播放器的版本发生更新,并将播放器的版本发生更新的消息发送至控制器;显示设备的控制器还可以通过与服务器的交互,确定播放器的版本发生更新,还可以是其他确定方式,本实施例对此不做限定。控制器在确定播放器的版本发生更新之后,可以从服务器或者对应的升级包平台中下载播放器的更新版本对应的升级包,在下载完升级包之后,解压该升级包,并安装该升级包。
95.s520,若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中。
96.具体的,在安装完升级包之后,对数据目录中播放器的第一库文件的版本号和升级包中携带的播放器的第二库文件的版本号进行比较,如果第一库文件的版本号低于第二库文件的版本号,说明播放器的当前库文件版本不是最新的,此时需要对第二库文件进行完整性校验,具体可以通过md5信息摘要算法(md5 message-digest algorithm)或者循环冗余校验(cyclic redundancy check,crc)等算法检查第二库文件的完整性,在第二库文件完整的情况下,将第二库文件存储至数据目录中,便于后续使用。
97.在一些实施例中,如果数据目录中播放器的第一库文件的版本号与升级包中携带的播放器的第二库文件的版本号相等,则说明播放器已经更新过。
98.在一些实施例中,如果第二库文件不完整,则删除该第二库文件,此时播放器升级失败,需要返回重新执行s510。
99.s530,比较系统目录和数据目录中所述播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件。
100.其中,系统目录可以为/system/lib,数据目录可以为/data/gstlib。
101.具体的,加载系统目录和数据目录中播放器对应的第三库文件,比较系统目录和数据目录中第三库文件的版本号的大小,版本号最大的第三库文件即为版本最新的库文件,因此,通过加载版本号最大的第三库文件,能够完成播放器的升级。
102.在一些实施例中,所述比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,可以具体包括:
103.若系统目录中第三库文件的版本号大于或等于数据目录中第三库文件的版本号,则加载系统目录中的第三库文件。
104.具体的,如果系统目录中第三库文件的版本号大于数据目录中第三库文件的版本号,则说明系统目录中第三库文件的版本号较新,此时就加载系统目录中的第三库文件,完成播放器的升级;如果系统目录中第三库文件的版本号等于数据目录中第三库文件的版本号,由于数据目录包括第一子数据目录和第二子数据目录,还需要比较第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,确定要加载的第三库文件,因此,此时优先加载系统目录中的第三库文件。
105.在一些实施例中,如果数据目录中不存在播放器对应的第三库文件,则说明可能是对显示设备的整个系统进行升级过,此时直接加载系统目录中的第三库文件即可。
106.本实施例中,通过加载系统目录中的第三库文件,能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。
107.在一些实施例中,数据目录包括第一子数据目录和第二子数据目录;
108.相应的,所述比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,还可以具体包括:
109.若数据目录中第三库文件的版本号大于系统目录中第三库文件的版本号,则根据第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,加载对应的第三库文件。
110.其中,第一子数据目录可以为/data/gstlib/master,第二子数据目录可以为/data/gstlib/salver,第二子数据目录为备份目录。
111.本实施例中,如果数据目录中第三库文件的版本号大于系统目录中第三库文件的版本号,则说明数据目录中第三库文件的版本号较新,此时,比较第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,加载对应的第三库文件,能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级。
112.在一些实施例中,所述根据第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,加载对应的第三库文件:
113.若第一版本号大于或等于第二版本号,则加载第一子数据目录中的第三库文件;
114.若第二版本号大于第一版本号,则将第二子数据目录中第三库文件复制到第一子数据目录中,并加载第一子数据目录中复制的第三库文件。
115.具体的,在数据目录中第三库文件的版本号较新的情况下,如果第一版本号大于或等于第二版本号,则说明第一子数据目录中第三库文件的版本号较新,此时加载第一子数据目录中的第三库文件;如果第二版本号大于第一版本号,则说明第二子数据目录中第三库文件的版本号较新,此时先将第二子数据目录中第三库文件复制到第一子数据目录中,再加载第一子数据目录中复制的第三库文件。
116.相应的,将第二子数据目录中第三库文件复制到第一子数据目录中之后,还可以删除第二子数据目录中的第三库文件和第一字数据目录中版本较低的第三库文件,从而能够节省内存空间,避免资源浪费。
117.本实施例中,通过比较第一版本号和第二版本号大小,加载对应的第三库文件,能够准确的升级播放器所需的库文件,避免升级失败。
118.在一些实施例中,数据目录包括第二子数据目录;
119.所述若数据目录中播放器的第一库文件的版本号低于所述升级包中携带的播放器的第二库文件的版本号,且所述第二库文件完整,则将所述第二库文件存储至数据目录中,可以具体包括:
120.若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至第二子数据目录中。
121.本实施例中,通过将第二库文件存储至第二子数据目录中,能够进行备份,便于后
续比较第一子数据目录中第三库文件的第一版本号和第二子数据目录中第三库文件的第二版本号的大小,从而加载对应的第三库文件。
122.示例性的,图6a为本公开实施例提供的一种播放器升级过程的结构示意图。如图6a所示,以安卓系统为例,播放器升级过程共包括三个模块,分别为:升级服务(update service)模块、播放器升级(player update)模块以及媒体服务器(mediaserver)模块,这三个模块可以部署在控制器中。
123.其中,升级服务模块的作用为:更新管理组件,主要是对播放器升级模块所需的升级包进行更新,即:s510,具体为:下载升级包、解压升级包、安装升级包以及唤醒播放器升级模块。播放器升级模块的作用为:升级播放器,即:s520,具体为:1)播放器的库文件的版本号比较、库文件解压;2)库文件的复制;3)库文件的删除;4)关闭挂起到内存(suspend to random access memory,str)服务。媒体服务器模块的作用为:负责播放器的启动以及播放器库文件的加载,即:s530,具体为:1)所有库文件的加载;2)库文件的版本比较;3)加载版本号最大的库文件。
124.需要说明的是:str服务打开时,若显示设备关机,除了内存模块不断电,其余模块皆断电关闭,内存模块会把工作状态的信息保留下来,当重新开机时,系统启动流程可以略过闪存载入到内存的过程,大部分的外设也不需重新配置,直接回到上次关机之前的状态。str服务关闭时,若显示设备关机,所有模块皆断电关闭,相应的就需要重新加载内存。
125.示例性的,图6b为本公开实施例提供的一种播放器升级过程中升级服务模块的结构示意图。如图6b所示,升级服务模块共包括四个部分,即:版本检测、升级、安装以及唤醒。其中,版本检测部分,用于:在升级服务模块启动之后,定时更新配置列表中的android应用程序包(android application package,apk)应用,从而确定播放器的版本是否发生更新;升级部分,用于确定播放器的版本发生更新,即有新的播放器版本之后,下载更新版本对应的升级包;安装部分,用于:解压升级包,并安装升级包;唤醒部分,用于唤醒播放器升级模块,使其发挥作用。
126.示例性的,图6c为本公开实施例提供的一种播放器升级过程中升级服务模块的处理流程示意图。图6c中所示的处理流程已经在上述实施例中描述过,为了避免重复,此处不再赘述。
127.示例性的,图6d为本公开实施例提供的一种播放器升级过程中播放器升级模块的结构示意图。如图6d所示,播放器升级模块共包括四个部分,即:版本管理、检查库文件、解压库文件以及关闭str服务。其中,版本管理部分,用于:确定数据目录中播放器的第一库文件的版本号和升级包中携带的播放器的第二库文件的版本号是否相同;检查库文件部分,用于若第一库文件的版本号低于第二库文件的版本号,对第二库文件的完整性进行检查;解压库文件部分,用于:在第二库文件完整时,清空第二子数据目录,对第二库文件进行解压,并将解压后的文件存储至第二子数据目录中;关闭str服务部分,用于:关闭str服务,以便下次显示设备启动的时候,能使媒体服务器模块重新加载准确的库文件。
128.示例性的,图6e为本公开实施例提供的一种播放器升级过程中播放器升级模块的处理流程示意图。图6e中所示的处理流程已经在上述实施例中描述过,为了避免重复,此处不再赘述。
129.示例性的,图6f为本公开实施例提供的一种播放器升级过程中媒体服务器模块的
结构示意图。如图6f所示,媒体服务器模块共包括四个部分,即:库文件版本号比较、库文件复制、库文件删除以及库文件加载。其中,库文件版本号比较部分,用于加载系统目录和数据目录中播放器对应的第三库文件,比较各第三库文件的版本号的大小;库文件复制部分用于:若数据目录中第三库文件的版本号大于系统目录中第三库文件的版本号,第一子数据目录中第三库文件的第一版本号小于第二子数据目录中第三库文件的第二版本号,则将第二子数据目录中第三库文件复制到第一子数据目录中;库文件删除部分,用于:删除第二子数据目录中的第三库文件;库文件加载部分用于:如果系统目录中第三库文件的版本大于或等于数据目录中第三库文件的版本号,则加载系统目录中的第三库文件;如果第一版本号大于或等于第二版本号,则加载第一子数据目录中的第三库文件;如果第一版本号小于第二版本号,则加载第一子数据目录中复制的第三库文件。
130.示例性的,图6g为本公开实施例提供的一种播放器升级过程中媒体服务器模块的处理流程示意图。图6g中所示的处理流程已经在上述实施例中描述过,为了避免重复,此处不再赘述。
131.在一些实施例中,所述确定播放器的版本发生更新,可以具体包括:
132.向服务器发送检测播放器的版本是否更新的请求,以使服务器基于请求,对播放器的版本进行检测,并在播放器的版本发生更新时,向控制器发送播放器的版本发生更新的消息;
133.接收服务器发送的播放器的版本发生更新的消息,并基于消息确定播放器的版本发生更新。
134.具体的,显示设备可以和服务器进行交互,因此,控制器向服务器发送检测播放器的版本是否更新的请求,服务器接收到控制器发送的检测播放器的版本是否更新的请求之后,能够基于该请求对播放器的版本进行检测,并在播放器的版本发生更新时,向控制器发送播放器的版本发生更新的消息。相应的,控制器接收到服务器发送的播放器的版本发生更新的消息之后,基于该消息能够确定播放器的版本发生更新。
135.本实施例中,通过上述方法确定播放器的版本发生更新,不易出错,能够提高准确性。
136.示例性的,图7a为本公开实施例提供的一种播放器升级过程中服务器和显示设备的交互过程示意图。如图7a所示的交互过程,已经在上述实施例中描述过,为了避免重复,此处不再赘述。
137.图7b为本公开实施例提供的一种播放器升级过程的整体时序图。如图7b所示的播放器升级过程,包括服务器、升级服务模块、播放器升级模块以及媒体服务器模块,各部分的作用已经在上述实施例中描述过,为了避免重复,此处不再赘述。
138.在显示设备的播放器升级过程中,如何保证该过程尽量少占用系统资源,防止对系统以及播放的影响,需要对多进程的中央处理器(central processing unit,cpu)进行优化,从而对系统cpu占用进行控制。
139.在安卓系统中,系统会根据当前运行的可见前台程序和不可见的后台程序进行归类,划分为:前台程序的线程大约会占用90%左右的cpu时间片,后台程序的线程占用10%左右的cpu时间片。这样设计的目的是:保证前台程序的优先级更高,得到更多的执行时间。
140.示例性的,图8a为本公开实施例提供的一种前台程序和后台程序占用的cpu时间
片的示意图。如图8a所示,假设前台进程中包括线程1和线程2,线程1和线程2均包含5个子线程,后台进程中包括线程3和线程4,线程3和线程均4均包含5个子线程。其中,前台进程占用的cpu时间片:90%,后台进程占用的cpu时间片:10%。
141.默认情况下,新创建的子线程的优先级,和它所属的父线程的优先级保持一致。如果一个前台程序创建了几十个子线程,其中,这些子线程中可能包含一些不需要立即执行的子线程和优先级不高的子线程,在正常情况下,这些子线程的优先级默认和它们所属的父线程一致,这样就可能会造成cpu资源的抢占,导致播放器在播放过程中出现卡顿的现象。此时,需要一套准确的cpu计算方案,把这些子线程的优先级进行降低处理,从而帮助cpu识别子线程的执行顺序,保证系统资源的合理使用。
142.本实施例中,在播放器升级过程中,播放器升级模块在唤醒之后,会进行版本管理、检查库文件、解压库文件以及关闭str服务等一系列的动作。尤其是在解压库文件过程中,包含将解压后的文件存储至第二子数据目录中,即:拷贝动作,如果此时不采用优化策略,播放器升级模块的这些动作,会占用大量的cpu,造成系统卡顿、影响影片的正常播放,导致用户在观看视频过程中出现卡顿或者马赛克等现象。因此,需要降低播放器升级模块对应的父线程的优先级,让cpu尽可能的缓慢调度到该父线程上,从而不影响用户的播放观看。
143.在一些实施例中,将执行若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中的线程确定为父线程,将执行将第二库文件存储至数据目录中的线程确定为子线程;
144.上述方法还可以具体包括:
145.获取显示设备的系统对应的中央处理器的第一占用率;
146.基于第一占用率与不同的占用率范围的关系,将父线程的优先级降低第一预设个数的级别;
147.若父线程对应的中央处理器的第二占用率大于或者等于第一预设占用率,将子线程的优先级降低第二预设个数的级别。
148.其中,占用率范围可以预先设定,也可以视具体情况而定,本实施例不做限定。第一预设个数和第二预设个数可以预先设定,也可以视具体情况而定,二者的数值可以相同,也可以不同,本实施例不做限定。第一预设占用率可以预先设定,例如10%,也可以视具体情况而定,本实施例不做限定。
149.具体的,将播放器升级模块对应的线程确定为父线程,那么播放器升级模块中包括的其他部分均为该父线程包括的子线程,但是由于拷贝工作会占用cpu,因此本实施例中主要考虑解压库文件部分,将执行将第二库文件存储至数据目录中的线程确定为子线程。
150.在播放器升级过程中,播放器升级模块启动后,可以通过top命令获取显示设备的系统对应的cpu的第一占用率,然后比较第一占用率与不同的占用率范围的关系,从而确定将父线程的优先级进行降低的策略。
151.示例性的,可以采取以下的优先级降低策略:
152.(1)第一占用率处于(50%,65%]范围内,将父线程的优先级降低1个级别;
153.(2)第二占用率处于(65%,70%]范围内,将父线程的优先级降低2个级别;
154.(3)第二占用率处于(65%,100%]范围内,将父线程的优先级降低3个级别。
155.通过strace-cp pid命令可以实时监控父线程对应的cpu的第二占用率,以及父线程对应的子线程的占用率,如果第二占用率大于或者等于第一预设占用率,将子线程的优先级降低第二预设个数的级别,例如,可以降低1个级别。
156.本实施例中,通过降低父线程的优先级,能够避免抢占cpu资源,保证各线程能够正常运行。
157.在一些实施例中,上述方法还可以具体包括:
158.若子线程对应的存储速率小于预设速率,且第一占用率和第二占用率之和大于或者等于第二预设占用率,则将子线程的优先级降低第三预设个数的级别,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第二预设占用率;
159.若子线程对应的存储速率等于预设速率,第二占用率小于第一预设占用率,且第一占用率和第二占用率之和大于或者等于第三预设占用率,则将子线程的优先级降低第三预设个数的级别,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第三预设占用率,其中,第一预设占用率小于第三预设占用率,第三预设占用率小于第二预设占用率。
160.其中,预设速率可以预先设定,例如10mbps,也可以视具体情况而定,本实施例不做限定。第二预设占用率和第三预设占用率,可以预先设定,例如第二预设占用率为95%,第三预设占用率为80%,也可以视具体情况而定,本实施例不做限定。第三预设个数可以预先设定,也可以视具体情况而定,第三预设个数、第一预设个数和第二预设个数对应的数值可以相同,也可以不同,本实施例不做限定。
161.在本实施例中,子线程中包含了拷贝动作,因此,可以间隔预设时间(如五秒)检测子线程的动作是否执行完成和对应的存储速率,实时调整子线程的优先级,具体可以包括:
162.1)子线程对应的存储速率小于预设速率(在子线程无干扰的情况下,存储速率通常是10mbps)时,查看此时的cpu占用率,即:第一占用率和第二占用率之和,若第一占用率和第二占用率之和大于或者等于第二预设占用率,则将子线程的优先级降低1个级别,同时继续监控第一占用率和第二占用率之和,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第二预设占用率;
163.(2)若子线程对应的存储速率等于预设速率,第二占用率小于第一预设占用率,且第一占用率和第二占用率之和大于或者等于第三预设占用率,此时为了不影响系统其它应用的稳定运行,将子线程的优先级降低1个级别,直至子线程的优先级降低至最低,或者第一占用率和第二占用率之和小于第三预设占用率。
164.本实施例中,通过上述优化过程,在线程个数较多时采用该方案,可以有效降低优先级低的线程的cpu占用率,防止因为cpu抢占带来的资源紧缺问题,通过cpu优化,可以有效保证各个线程的正常运行,特别是在cpu性能较差的显示设备中,效果尤为明显。
165.示例性的,图8b为本公开实施例提供的一种播放器升级过程中对播放器升级模块对应的父线程进行优化前后,播放器线程和该父线程分别对应的cpu占用率的示意图。由图8b可知,未采用多线程cpu优化时,播放器升级模块对应的父线程的cpu占用率为53%,而采用cpu优化方案之后,播放器升级模块对应的父线程的cpu占用率为18%。由此可见,采用优化方案后,可以有效保证各个线程的正常运行,防止因为cpu抢占带来的资源紧缺问题。
166.综上所述,本公开通过在显示设备上执行上述播放器升级方法,显示设备的控制器首先确定播放器的版本发生更新,下载播放器的更新版本对应的升级包,并安装升级包,然后若数据目录中播放器的第一库文件的版本号低于升级包中携带的播放器的第二库文件的版本号,且第二库文件完整,则将第二库文件存储至数据目录中,最后比较系统目录和数据目录中播放器对应的第三库文件的版本号的大小,并加载版本号最大的第三库文件,通过上述过程能够准确的升级播放器所需的库文件,不需要用户手动操作和整包升级,减少ota升级带来的操作复杂度,能够达到用户无感知的升级,且有利于提升用户的观看体验。
167.本公开实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述播放器升级方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
168.其中,该计算机可读存储介质可以为只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
169.本公开提供一种计算机程序产品,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述的播放器升级方法。
170.为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述在一些实施例中讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献