CN116340680A - 一种显示设备及插件对象生命周期管理的控制方法 - Google Patents
一种显示设备及插件对象生命周期管理的控制方法 Download PDFInfo
- Publication number
- CN116340680A CN116340680A CN202111601740.7A CN202111601740A CN116340680A CN 116340680 A CN116340680 A CN 116340680A CN 202111601740 A CN202111601740 A CN 202111601740A CN 116340680 A CN116340680 A CN 116340680A
- Authority
- CN
- China
- Prior art keywords
- plug
- instance
- plugin
- page
- display
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及显示设备技术领域,特别地,涉及一种显示设备及插件对象生命周期管理的控制方法,一定程度上可以解决显示设备浏览器页面中插件层叠样式表属性设置、及插件与DOM树耦合关系形成的插件创建、释放时机不适当,造成浏览器页面显示不正常的问题。显示设备包括:显示器;控制器,被配置为:添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则包含第一插件对象的第一页面,第一插件对象包含第一插件、及第一插件实例;从系统移除第一插件对象时,控制系统不释放第一插件对象对应的第一插件实例,以使第一插件对象再次添加到系统时可直接使用第一插件实例,以控制用户界面显示包含第一插件对象的第一页面。
Description
技术领域
本申请涉及显示设备技术领域,特别地,涉及一种显示设备及插件对象生命周期管理的控制方法。
背景技术
智能电视、智能手机、PC设备、平板电脑等终端搭载的浏览器自身功能有限,往往不能满足终端网络应用功能需求,因此终端浏览器可通过加载插件(Plugin)来扩展自身所能实现的功能,例如,通过JavaScript(JavaScript脚本语言)插件获取终端的型号、调用终端底层的底层功能等。
在一些浏览器插件管理的实现中,通常浏览器加载插件的方式包括以下步骤:首先启动终端浏览器,然后浏览器根据配置文件确定终端中的网络应用需要借助浏览器实现网络功能所需的全部插件,之后浏览器加载网络应用需要借助浏览器实现网络功能所需的全部插件。
然而,浏览器在显示HBBTV(Hybrid Broadcast/Broadband TV混合广播宽带电视)类型页面时,如果插件的CSS(Cascading Style Sheets:层叠样式表)属性配置为不排版显示则其页面无法正常显示插件对象;并且基于页面操作,如果插件对象从DOM(DocumentObject Model:文档对象模型)树移除后再次加载时,浏览器会发生页面崩溃不能正常显示的问题。
发明内容
为了解决显示设备浏览器页面中插件层叠样式表属性设置、及插件与DOM树耦合关系形成的插件创建、释放时机不适当,造成浏览器页面显示不正常的问题,本申请提供了一种显示设备及视频应用的播放控制方法。
本申请的实施例是这样实现的:
本申请实施例的第一方面提供一种显示设备,包括:显示器,用于显示包含浏览器页面的用户界面,所述浏览器页面包含插件对象;控制器,被配置为:添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则控制用户界面显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例;从系统移除所述第一插件对象时,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以控制用户界面显示包含第一插件对象的第一页面。
本申请实施例的第二方面提供一种插件对象生命周期管理的控制方法,所述方法包括:添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例;从系统移除所述第一插件对象时,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以显示包含第一插件对象的第一页面。
本申请的有益效果:通过创建不排版插件对应的插件对象和插件实例,可实现该插件在混合广播宽带电视页面的正常显示;进一步通过在移除插件过程中保留其对应插件实例,可实现再次加载插件时直接调用该插件实例;进一步在页面跳转过程中及时析构插件、释放对应插件实例,可实现内存资源的及时释放、实现插件元素和DOM元素的解耦使得DOM树元素移除后对应插件可正常使用、可优化插件创建与释放机制、避免插件频繁创建与释放、提升插件运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例的显示设备的使用场景;
图2示出了根据一些实施例的控制装置100的硬件配置框图;
图3示出了根据一些实施例的显示设备200的硬件配置框图;
图4示出了根据一些实施例的显示设备200中软件配置图;
图5示出了根据一些实施例的显示设备200中应用程序的图标控件界面显示图;
图6A示出了本申请一实施例显示设备浏览器页面插件对象的创建流程示意图;
图6B示出了本申请另一实施例显示设备浏览器页面插件对象的创建流程示意图;
图6C示出了本申请另一实施例插件对象从DOM树上移除后再次添加的流程示意图;
图6D示出了本申请另一实施例插件对象从DOM树上移除后再次添加的流程示意图;
图6E示出了本申请另一实施显示设备浏览器页面中插件对象实施析构的流程示意图;
图6F示出了本申请另一实施显示设备浏览器页面中插件对象实施析构的流程示意图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语″第一″、″第二″、″第三″等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语″包括″和″具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语″模块″是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
图1为根据实施例中显示设备与控制装置之间操作场景的示意图。如图1所示,用户可通过智能设备300或控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。
在一些实施例中,也可以使用智能设备300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。
在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。
在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
图2示例性示出了根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
图3示出了根据示例性实施例中显示设备200的硬件配置框图。
在一些实施例中,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
在一些实施例中控制器包括处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面。
在一些实施例中,显示器260可为液晶显示器、OLED显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与外部控制设备100或服务器400建立控制信号和数据信号的发送和接收。
在一些实施例中,用户接口,可用于接收控制装置100(如:红外遥控器等)的控制信号。
在一些实施例中,检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。
在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM RanDOM AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
CPU处理器。用于执行存储在存储器中操作系统和应用程序指令,以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。CPU处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。
在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等。其中,解复用模块,用于对输入音视频数据流进行解复用处理。视频解码模块,用于对解复用后的视频信号进行处理,包括解码和缩放处理等。图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。帧率转换模块,用于对转换输入视频帧率。显示格式化模块,用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,音频处理器,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理,得到可以在扬声器中播放的声音信号。
在一些实施例中,用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
在一些实施例中,″用户界面″,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在一些实施例中,显示设备的系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。
参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用程序(Applications)层(简称″应用层″),应用程序框架(Application Framework)层(简称″框架层″),安卓运行时(Android runtime)和系统库层(简称″系统运行库层″),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包不限于以上举例。
框架层为应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务。
如图4所示,本申请实施例中应用程序框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(NotificationManager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
在一些实施例中,显示设备启动后可以直接进入预置的视频点播程序的界面,视频点播程序的界面可以如图5中所示,至少包括导航栏510和位于导航栏510下方的内容显示区,内容显示区中显示的内容会随导航栏中被选中控件的变化而变化。应用程序层中的程序可以被集成在视频点播程序中通过导航栏的一个控件进行展示,也可以在导航栏中的应用控件被选中后进行进一步显示。
在一些实施例中,显示设备启动后可以直接进入上次选择的信号源的显示界面,或者信号源选择界面,其中信号源可以是预置的视频点播程序,还可以是HDMI接口,直播电视接口等中的至少一种,用户选择不同的信号源后,显示器可以显示从不同信号源获得的内容。
本申请实施例可应用于各种类型显示设备,下文中将以智能电视显示浏览器页面过程中的插件管理控制方案、及方法进行阐述。
图6A示出了本申请一实施例显示设备浏览器页面插件对象的创建流程示意图。
PPAPI(Pepper Plugin Application Interface:插件应用程序接口),在Chrome浏览器中PPAPI组件分为两种存在形式,分别是可信组件和不可信组件。
可信PPAPI组件可以通过平台动态库的形式由浏览器直接加载,Windows环境下可实施为dll文件,Linux环境下可实施为so文件;内置Flash组件、Pdf组件,或者通过指定命令行参数--register-pepper-Plugins来加载,例如:
chrome--register-pepper-Plugins=″D:\\ppapi\\ppapi_example_gles2.dll;application/x-ppapi-example-gles2″D:\\ppapi\\gles2.html;
这种方案常用于调试,可信PPAPI组件以平台动态库的形式存在,所以一般Chrome沙箱内允许的API,例如CreateThread(创建线程)函数都可以进行调用。
不可信PPAPI组件需要使用Native Client(本地客户端)机制发布,以本地客户端的形式发布到Chrome Web Store(Chrome网上应用商店)、或以Portable Native Client(便携式原生客户端)的形式发布于网络服务器上。
在一些实施例中,电视浏览器页面启动后,控制器创建浏览器页面所包含的各种Object标签(对象标签),在对象标签创建完成后,对其进行排版显示;控制器判定对象标签是否包含PPAPI(插件应用程序接口)的插件类型,为了便于描述,本申请将其简称为插件。
对于插件类型的对象标签,控制器需要获取其CSS(Cascading Style Sheets:层叠样式表)属性,在插件的层叠样式表属性为参与排版时,控制器创建插件对象和其对应的插件进程,完成插件对象的创建,以使得浏览器页面可正常显示插件对象内容。
其中,CSS层叠样式表属性是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
可以理解,CSS属性能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
图6B示出了本申请另一实施例显示设备浏览器页面插件对象的创建流程示意图。
本申请提供的显示设备包含显示器,可显示包含浏览器页面的用户界面,所述浏览器页面包含插件对象,所述插件对象可实施为不同的种类、及数量。
在一些实施例中,电视浏览器页面启动后,控制器创建浏览器页面所包含的各种Object标签(对象标签),在对象标签创建完成后,对其进行排版显示;控制器判定对象标签是否包含PPAPI(插件应用程序接口)的插件类型。对于插件类型的对象标签,控制器需要获取其CSS(Cascading Style Sheets:层叠样式表)属性,在插件的层叠样式表属性为参与排版时,控制器创建插件对象和其对应的插件实例,完成插件对象的创建,以使得浏览器页面可正常显示插件对象内容。
用户界面浏览器页面显示过程中,添加属性为不排版的第一插件至系统时,如判定第一插件为HBBTV(Hybrid Broadcast/Broadband TV:混合广播宽带电视)对象,则控制用户界面显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例。
例如,第一页面在显示过程中,其页面包含第一插件,其层叠样式表属性为参与排版时,通常控制器会创建相应的插件对象和其对应的插件实例,以完成插件对象的创建;
当第一插件的层叠样式表属性为不排版,即不参与啊排版显示时,控制器将判定第一插件是否为混合广播宽带电视对象;如果控制器判定第一插件为混合广播宽带电视对象,控制器将基于该第一插件生产其对应的第一插件实例(Instance),以完成第一页面中第一插件对象的创建,使之可以正常显示。
可以理解,对于非HBBTV页面的显示过程中,插件的层叠样式表属性为不排版,即使不创建相应的插件实例和插件对象,页面仍然可以正常显示;但是对于HBBTV页面的显示,若对层叠样式表属性为不排版的插件不创建其对应的插件实例和插件对象时,浏览器页面可能会出现无法正常显示的情况。
即对于HBBTV页面的显示实现过程中,插件对象CSS属性为display:none(对象不参与排版)时,如果控制器不创建该插件,页面将无法正常显示;反之,在插件对象CSS属性为display:none(对象不参与排版)时,该插件属于特殊要求对象,控制器正常创建该插件,页面可实现正常显示。
HBBTV(Hybrid Broadcast/Broadband TV:混合广播宽带电视)是一种与DVB(欧洲数字电视标准组织)兼容的内容发布平台,可以增强、兼容互动电视业务信令、传输,优化呈现效果。HBBTV标准是HBBTV协会、及其合作组织DVB、以及Open IPTV Forum(开放式IP电视论坛)共同推出的技术标准,该标准对push VoD(推送式的视频点播)等新兴的业务服务形态进行了规范、对不同业务以及各类终端的互联互通能力进行了规范,遵循HBBTV标准的混合型终端设备可以同时接入电视广播网路、internet以及各类″伴侣屏″设备,例如智能手机、平板电脑等移动智能终端设备。
图6C示出了本申请另一实施例插件对象从DOM树上移除后再次添加的流程示意图。
在一些实施例中,显示设备浏览器页面的插件对象从DOM(Document ObjectModel:文档对象模型)树上删除节点后,控制器控制页面进行排版显示;在插件对象从DOM树移除后,控制器将删除该插件对应Instance(插件实例)所创建的插件子对象,并删除该插件创建的插件实例所对应的插件对象,从而使得创建的插件对象以及子对象均不能正常使用;在移除的插件对象需要在此使用时,控制器将重新将对象添加至DOM树并创建对应的PPAPI插件。
在一些实施例中,ODIN浏览器、Chromium浏览器,去中心化浏览器在对HBBTV页面实施PPAPI插件独立化后,发现其中的VideoBroadCast(视频广播)对象取得Channel(通道)对象后,网页将最初的VideoBroadCast对应的对象从DOM树上移除后,网页重新创建了一个VideoBroadCast对象,然后将之前取得的Channel对象设置到新的VideoBroadCast对象中,这时浏览器内部因为使用这个Channel对象而出现浏览器显示崩溃;
可以理解,当PPAPI插件对象从DOM树上移除时,插件对象对应的Instance(插件实例)也会被释放,那么所述被释放Instance(插件实例)关联的所有插件对象都会被释放,浏览器出现崩溃就是因为取得的Channel对象已经被释放而导致的。
基于HBBTV(混合广播宽带电视)相关页面显示规范,上述情况属于插件对象从DOM树移除的情形,同时还存在一些插件对象的CSS属性为display:none(不参与排版显示)的情况;在这种情况下,在一些插件管理方案中,这类型PPAPI插件对象的原有流程中其插件是不创建,因此也导致了显示不正常。
Chromium浏览器是广泛运用于终端的网页浏览器,以BSD(Berkly SoftwareDistribution:伯克利软件分发)许可证等多重自由版权发行,并开放其源代码,目的是为了创建一个安全、稳定和快速的通用浏览器。在架构上使用网页套件排版引擎,提升解译JavaScript效率,而且设计了″沙盒″、″黑名单″、″无痕浏览″等功能,来实现稳定与安全的网页浏览环境。
在一些实施例中,插件对象从DOM树上移除时,该插件对象属于特殊要求对象,控制器保留插件的Instance(插件实例)不释放。
在网页系统移除HBBTV类型的第一插件对象时,控制器将控制系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以控制用户界面显示包含第一插件对象的第一页面,避免再次加载第一插件对象是网页显示崩溃。
例如,浏览器页面的插件对象从DOM(文档对象模型)树上删除节点后,控制器控制页面进行排版显示;控制器将判定删除的插件对象是否为HBBTV对象、或特定对象,如果判定结果为否,则执行图6C所示的流程;
如判定插件对象为HBBTV对象、或特定对象时,控制器将保留从DOM树删除的对象元素对应的插件Instance(插件实例);
当对象再次添加至DOM树时,控制器将添加对象指针到对应的Document管理,使得网页操作对象插件可以正常操作、且其子对象也可以正常使用,实现重新将插件对象添加至DOM树上时,可以直接使用原有插件无需再次重新创建插件,其流程示意如图6D所示。其中,本申请附图以及说明书中提及document,实际可实施为Chrome浏览器内核中一个比较重要的内核对象,表现在网页上为JavaScript的Document,只是对内核而言更加丰富,网页中只能操作浏览器已在Document中添加的方法属性且向外释放的接口,内核代码里则可以操作排版、解析、数据设置、网页释放管理等。
在一些实施例中,第一插件对象自DOM树移除后,显示设备控制器控制系统不仅不释放所述第一插件对象对应的第一插件实例,还控制系统不释放与第一插件实例关联的第二插件对象,以使所述第一插件对象再次添加到所述系统时,可以直接调用原有的第一插件实例,以及与第一插件实例有关联的其他插件对象,例如第二插件对象、或第三插件对象等,避免浏览器出现页面崩溃。
在一些实施例中,显示设备控制器控制系统不释放第一插件对象对应的第一插件实例,以实现第一插件对象再次添加到系统时可直接使用所述第一插件实例。
可以理解,在第一插件对象从系统移除时,控制器可实施为控制系统、即网页系统不析构第一插件,从而保留第一插件对象对应的第一插件实例,这样可以使得第一插件实例一直存储运行于内存中,实现在所述第一插件对象再次添加到系统时,控制器可直接调用所述第一插件实例用于第一插件对象的显示运行。
可以理解,以上插件管理方案解耦了PPAPI插件元素和DOM元素,使得DOM树上元素被移除后,PPAPI对应的插件元素可以正常使用,优化了插件的创建、释放机制,避免了PPAPI插件频繁创建与释放,提升了整个插件的运行效率。
可以理解,基于目前主流开源的Chromium浏览器作为基础来进行相关业务开发,PPAPI插件技术可以实现标签对象对于Object对象的不同type类型的拓展;通过本申请提供的技术方案,Chromuim浏览器PPAPI插件标签元素对象生命周期可满足HBBTV元素对象的生命周期要求,在HBBTV规范中要求的CSS属性为display:none、对象从DOM树上移除、被其他对象隐藏的对象、对象在屏幕可视区域之外的诸多场景,HBBTV页面元素均可正常使用。
DOM(Document Object Model:文档对象模型)树,是W3C组织推荐的处理可扩展置标语言的标准编程接口;它是一种与平台和语言无关的应用程序接口(API),可以动态地访问程序和脚本、更新其内容、结构、www文档风格,其中HTML和XML文档是通过说明部分定义的。文档可以进一步被处理,处理的结果可以加入到当前的页面。
DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中;另外一种简单的API是基于事件的SAX,它可以用于处理很大的XML文档,由于大,所以不适合全部放在存储器中处理。Instance(系统插件实例),本申请也简称为插件实例,是操作系统中一系列的插件实例以及为这些插件实例所分配的内存块。Instance为插件实例,不是一个进程,对于PPAPI插件来说插件进程只有一个,但是可以有很多实例,一个Object标签为插件的对象会创建一个对应的实例出来。
图6E示出了本申请另一实施显示设备浏览器页面中插件对象实施析构的流程示意图。
在一些实施例中,插件对象对应的Instance(插件实例)进行析构时,插件对象也进行析构,但是其对应的资源不立即释放;插件对象从DOM树上移除后,插件对象被释放。
例如,浏览器网页页面内跳转时,页面中的Document开始关闭,控制器将分离页面中包含的所有排版对象、以及分离所有可排版插件对象,然后控制器控制插件对应的RederFrame(重整框架)进行析构、以及控制插件对应的Instance(插件实例)等待系统的GC(Garbage Collection:垃圾回收器)进行回收,在垃圾回收器完成内存回收后,插件及其对应的插件实例完成析构。
与构造相反,当网页系统的对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构。以C++语言为例,析构名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud(),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,即使自定义了析构函数,编译器也总是会合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数。
在一些实施例中,显示设备的浏览器页面由第一页面跳转至不包含第一插件的第二页面时,控制器控制系统析构不排版的第一插件、并立即释放其对应的第一插件实例,释放所述第一插件实例对应的内存占用。
例如,浏览器网页页面内跳转时,页面中的Document开始关闭,控制器将分离页面中包含的所有排版对象、以及分离所有可排版插件对象;然后控制器将插件对应的RederFrame(重整框架)进行析构、并将插件对应的Instance(插件实例)立即进行释放,将插件以及其对应的插件实例进行析构。在一些实施例中,浏览器网页页面内跳转时,控制器析构第一插件、并立即释放其对应的第一插件实例,然后从Document中删除已释放的所述第一插件对应的对象指针。将已释放插件对应的对象指针从Document删除,分离所有不参与与排版的插件对象,从而完成插件以及其对应插件实例的析构流程,及时释放系统内容,如图6F所示。
可以理解,以上方案优化了插件资源释放机制,使得游览器页面的PPAPI插件资源释放更加及时,减少了浏览器插件元素的内存占用;本申请提供的插件生命周期管理技术方案,可实现在插件对象进程析构时,立即回收进程所对应的系统内存资源,在插件对象从DOM树上移除后再次添加过程中,将对象生命周期和Document进行了绑定操作。
基于上文显示设备实现浏览器页面插件对象生命周期管理的控制方案及相关附图的介绍,本申请还提供了一种插件对象生命周期管理的控制方法,所述方法包括:添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例;从系统移除所述第一插件对象时,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以显示包含第一插件对象的第一页面。所述方法在显示设备实现浏览器页面插件对象生命周期管理的控制方案中已进行详细阐述,在此不再赘述。
在一些实施例中,控制所述系统不释放所述第一插件对象对应的第一插件实例后,所述方法还包括:控制所述系统不释放与所述第一插件实例关联的第二插件对象,以使所述第一插件对象再次添加到所述系统时避免浏览器出现页面崩溃。所述方法在显示设备实现浏览器页面插件对象生命周期管理的控制方案中已进行详细阐述,在此不再赘述。
在一些实施例中,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,具体包括:在所述第一插件对象从系统移除时,控制所述系统不析构所述第一插件;保留所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接调用所述第一插件实例。所述方法在显示设备实现浏览器页面插件对象生命周期管理的控制方案中已进行详细阐述,在此不再赘述。
在一些实施例中,显示包含第一插件对象的第一页面后,所述方法还包括:在第一页面跳转至不包含第一插件的第二页面时,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,释放所述第一插件实例对应的内存占用。所述方法在显示设备实现浏览器页面插件对象生命周期管理的控制方案中已进行详细阐述,在此不再赘述。
在一些实施例中,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,具体包括:析构所述第一插件、并立即释放其对应的第一插件实例;从Document删除已释放的所述第一插件对应的对象指针。所述方法在显示设备实现浏览器页面插件对象生命周期管理的控制方案中已进行详细阐述,在此不再赘述。
本申请实施例的有益效果在于,通过创建不排版插件对应的插件对象和插件实例,可实现该插件在混合广播宽带电视页面的正常显示;进一步通过在移除插件过程中保留其对应插件实例,可实现再次加载插件时直接调用该插件实例;进一步在页面跳转过程中及时析构插件、释放对应插件实例,可实现内存资源的及时释放、实现插件元素和DOM元素的解耦使得DOM树元素移除后对应插件可正常使用、可优化插件创建与释放机制、避免插件频繁创建与释放、提升插件运行效率。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为″数据块″、″控制器″、″引擎″、″单元″、″组件″或″系统″。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内合有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
Claims (10)
1.一种显示设备,其特征在于,包括:
显示器,用于显示包含浏览器页面的用户界面,所述浏览器页面包含插件对象;
控制器,被配置为:
添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则控制用户界面显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例;
从系统移除所述第一插件对象时,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以控制用户界面显示包含第一插件对象的第一页面。
2.如权利要求1所述显示设备,其特征在于,控制器控制所述系统不释放所述第一插件对象对应的第一插件实例后,所述控制器还被配置为:
控制所述系统不释放与所述第一插件实例关联的第二插件对象,以使所述第一插件对象再次添加到所述系统时避免浏览器出现页面崩溃。
3.如权利要求1所述显示设备,其特征在于,控制器控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,具体包括所述控制器:
在所述第一插件对象从系统移除时,控制器控制所述系统不析构所述第一插件;
保留所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接调用所述第一插件实例。
4.如权利要求1所述显示设备,其特征在于,控制用户界面显示包含第一插件对象的第一页面后,所述控制器还被配置为:
在第一页面跳转至不包含第一插件的第二页面时,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,释放所述第一插件实例对应的内存占用。
5.如权利要求4所述显示设备,其特征在于,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,具体包括控制器:
析构所述第一插件、并立即释放其对应的第一插件实例;
从Document删除已释放的所述第一插件对应的对象指针。
6.一种插件对象生命周期管理的控制方法,其特征在于,所述方法包括:
添加属性为不排版的第一插件至系统时,如判定第一插件为混合广播宽带电视对象,则显示包含第一插件对象的第一页面,所述第一插件对象包含第一插件、及基于所述第一插件创建的第一插件实例;
从系统移除所述第一插件对象时,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,以显示包含第一插件对象的第一页面。
7.如权利要求6所述一种插件对象生命周期管理的控制方法,其特征在于,控制所述系统不释放所述第一插件对象对应的第一插件实例后,所述方法还包括:
控制所述系统不释放与所述第一插件实例关联的第二插件对象,以使所述第一插件对象再次添加到所述系统时避免浏览器出现页面崩溃。
8.如权利要求6所述一种插件对象生命周期管理的控制方法,其特征在于,控制所述系统不释放所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接使用所述第一插件实例,具体包括:
在所述第一插件对象从系统移除时,控制所述系统不析构所述第一插件;
保留所述第一插件对象对应的第一插件实例,以使所述第一插件对象再次添加到所述系统时可直接调用所述第一插件实例。
9.如权利要求6所述一种插件对象生命周期管理的控制方法,其特征在于,显示包含第一插件对象的第一页面后,所述方法还包括:
在第一页面跳转至不包含第一插件的第二页面时,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,释放所述第一插件实例对应的内存占用。
10.如权利要求9所述一种插件对象生命周期管理的控制方法,其特征在于,控制所述系统析构不排版的第一插件、并立即释放其对应的第一插件实例,具体包括:
析构所述第一插件、并立即释放其对应的第一插件实例;
从Document删除已释放的所述第一插件对应的对象指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111601740.7A CN116340680A (zh) | 2021-12-24 | 2021-12-24 | 一种显示设备及插件对象生命周期管理的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111601740.7A CN116340680A (zh) | 2021-12-24 | 2021-12-24 | 一种显示设备及插件对象生命周期管理的控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340680A true CN116340680A (zh) | 2023-06-27 |
Family
ID=86879428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111601740.7A Pending CN116340680A (zh) | 2021-12-24 | 2021-12-24 | 一种显示设备及插件对象生命周期管理的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340680A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056173A (zh) * | 2023-10-12 | 2023-11-14 | 麒麟软件有限公司 | 在Web操作系统上监控安卓应用生命周期的方法 |
-
2021
- 2021-12-24 CN CN202111601740.7A patent/CN116340680A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056173A (zh) * | 2023-10-12 | 2023-11-14 | 麒麟软件有限公司 | 在Web操作系统上监控安卓应用生命周期的方法 |
CN117056173B (zh) * | 2023-10-12 | 2024-01-30 | 麒麟软件有限公司 | 在Web操作系统上监控安卓应用生命周期的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113490042B (zh) | 一种显示设备以及搜台方法 | |
CN113395556A (zh) | 显示设备及详情页展示的方法 | |
CN112612525A (zh) | 显示设备及显示设备开机方法 | |
CN113794914B (zh) | 显示设备及开机导航配置的方法 | |
CN112597110B (zh) | 一种显示设备及文件展示方法 | |
CN112256449B (zh) | 网页应用程序的接口调用方法、显示设备及服务器 | |
CN113473241A (zh) | 一种显示设备、及图文样式菜单的显示控制方法 | |
CN116340680A (zh) | 一种显示设备及插件对象生命周期管理的控制方法 | |
CN114077584A (zh) | 一种文件传输方法及显示设备 | |
CN113542852B (zh) | 一种显示设备、及与外部设备快速配对的控制方法 | |
CN112616090B (zh) | 显示设备系统升级方法及显示设备 | |
CN112487322B (zh) | 一种第三方应用Loading页面的加载方法及显示设备 | |
CN112667285B (zh) | 一种应用升级方法、显示设备及服务器 | |
CN116261003A (zh) | 一种显示设备及基于浏览器的流媒体播放控制方法 | |
CN113286185A (zh) | 一种显示设备及主页显示方法 | |
CN114116622A (zh) | 一种显示设备及文件显示方法 | |
CN112637683A (zh) | 显示设备系统优化方法及显示设备 | |
CN112668546A (zh) | 视频缩略图显示方法及显示设备 | |
CN112885347A (zh) | 一种显示设备的语音控制方法、显示设备及服务器 | |
CN112911381A (zh) | 一种显示设备、模式调整方法、设备及介质 | |
CN112835633B (zh) | 显示设备及显示语言的控制方法 | |
CN113076042B (zh) | 一种本地媒体资源的访问方法及显示设备 | |
CN113689856B (zh) | 一种浏览器页面视频播放进度的语音控制方法及显示设备 | |
CN111966646B (zh) | 文件缓存方法和显示设备 | |
CN112231088B (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 |