一种智能电视上浏览器内存改善方法与流程

文档序号:16200407发布日期:2018-12-08 06:33阅读:498来源:国知局
一种智能电视上浏览器内存改善方法与流程

本发明涉及浏览器技术内存优化技术领域,特别涉及一种智能电视上浏览器内存改善方法。

背景技术

当前html5技术快速发展,特别在电视领域,需要具体的各类业务快速迭代和更新,强化运营和维护的支撑能力,那么基于native开发的app往往不能满足快速迭代更新的需求,越来越多的场景,逐渐由native开发转换为基于html5应用,在各类设备上衍生出来大量的基于html5应用,而基于html5应用的通常就需要浏览器来承载和显示,就目前来说基于google维护的chromium开源方案开发的浏览器,无论在android和linux,均被大量运用,体验好,能够支持主流的html5语法,但是基于chromium的方案存在一个问题,占用较大的内存,虽然当前硬件性能提升迅速,在手机端,内存暂用不存在问题,但通常电视平台所提供的硬件性能往往略有不足,当前基于电视平台的应用app不断丰富,内存特别吃紧,限于成本的压力,当前高端设备内存大小通常也有限。

在现有的电视平台上,如果运行大量的html5应用而内存不够用时,通常可以主动释放已经加载过的缓存页面来释放内存,但再次加载相同页面资源时,得重新加载,会带来体验上的问题,另外,也可以通过提升硬件内存大小来弥补浏览器内存暂用过大的问题。

上述方法要么通过牺牲用户体验换取内存的减少,要么通过增大电视内存增加电视成本,而作为电视产品用户体验提升和成本的优化都非常重要。



技术实现要素:

本发明的目的是克服上述背景技术中不足,提供一种智能电视上浏览器内存改善方法,可针对电视平台的浏览器改善智能电视浏览器内存,且可在不牺牲用户体验的前提下,有效解决电视平台上浏览器暂用内存过大的问题。

为了达到上述的技术效果,本发明采取以下技术方案:

一种智能电视上浏览器内存改善方法,包括以下步骤:

a.启动浏览器后,读取默认浏览器启动配置,若启动配置为低内存模式,则进入步骤d;若启动配置为正常模式,则进入步骤b;

b.获取当前系统剩余的内存大小,若当前系统剩余的内存大于浏览器最大运行的内存,即满足浏览器运行需求时,则进入步骤c;若内存大小不满足浏览器运行需求,则浏览器启动配置参数无效,直接进入步骤d;

c.设置通用内存策略的正常模式,浏览器各模块通过内存策略接口获取正常模式,即浏览器以默认流程和属性配置运行;

d.设置通用内存策略的低内存模式,浏览器各模块通过内存策略接口获取低内存模式,即浏览器以浏览器内存改造优化的流程和属性配置运行;

e.浏览器退出;

本发明的智能电视上浏览器内存改善方法,主要是在通过遥控器按键启动浏览器后,浏览器读取默认浏览器启动配置,如果配置为低内存模式,则进入低内存模式运行,如果配置正常模式,那么进一步根据浏览器内存检测模块获取当前系统剩余的内存大小,内存大小是否满足浏览器运行需求,如果不满足,那么浏览器启动配置参数无效,设置通用内存策略的低内存模式,浏览器各模块通过内存策略接口获取的是低内存模式,浏览器运行时启动浏览器内存改造优化的流程和属性配置,且当用户通过遥控器按键浏览器退出后,释放浏览器所有资源,从而达到解决电视平台上浏览器暂用内存过大的问题的目的。

进一步地,所述步骤d中浏览器内存改造优化的流程具体包括以下步骤:

s1.gpu硬件加速和光栅化改造;

s2.通过网络下载资源文件,然后对下载的网页进行dom解析后再进行渲染;

s3.功能模块的配置;

s4.其他浏览器配置的改善。

进一步地,所述步骤s1具体包括以下步骤:

s1.1在低内存模式下,关闭gpu的光栅化,直接使用cpu做光栅化处理;

s1.2在低内存模式下,减小光栅化任务数量,如将光栅化任务数量由并行减少为6个。

进一步地,所述步骤s2具体包括以下步骤:

s2.1在低内存模式下,减小图片的内存分配默认内存大小,如将图片的内存分配默认设置为不超过8m;

s2.2减小当前可见页面的内存大小,将当前可见页面的内存大小限制为48m以内;

s2.3用户在滚动或者缩放网页时,优先把显示出来的内容通过低分辨率显示,待实际页面渲染完成后,更新为实际分辨率页面;

s2.4浏览器光栅化过程中,在低内存模式下,减小光栅化扩充区域像素,如将光栅化扩充区域像素改为100个像素;

s2.5在低内存模式下,减少默认的预先渲染的大小,如将像素修改为500像素;

s2.6减小图片硬解码的内存大小,如将图片硬解码的内存分配限制修改为96m。

进一步地,所述步骤s3具体包括以下步骤:

s3.1去除多余的功能模块;

s3.2减小沙箱进程的数量,如限制沙箱进程的数量为3个。

进一步地,所述多余的功能模块至少包含蓝牙模块、电池检测和处理、重力感应模块、远程打印模块。

进一步地,所述步骤s4至少包括减小字体缓存内存大小,如将字体缓存限制修改为1m。

本发明与现有技术相比,具有以下的有益效果:

本发明的智能电视上浏览器内存改善方法,可针对电视平台的浏览器改善智能电视浏览器内存,且可在不牺牲用户体验的前提下,有效解决电视平台上浏览器暂用内存过大的问题,最终达到在不影响电视平台的电视浏览器用户体验的情况下,减少电视浏览器的系统资源的暂用。

附图说明

图1是本发明的智能电视上浏览器内存改善方法的流程示意图。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

为了实现浏览器内存的优化,首先需要获取系统当前内存信息、和浏览器内存占用最大值对比、设置内存策略,同时需要提供一个通用内存策略的接口给浏览器内核,用于浏览器内核不同模块获取,实施优化浏览器内存代码时不同内存策略的获取。本实施例中具体通过设置一个内存处理的模块,用于获取系统当前内存信息、和浏览器内存占用最大值对比、设置内存策略。

另外需要说明的是,通常浏览器会有不同用户代理(useragent)以下简称ua,主要有pc、pad、手机的ua,而鉴于电视操作场景下,电视平台默认所使用的是pad,当使用不同ua发送给服务器时,服务器会下发对应ua的页面

基于pc的ua请求,服务器下发的页面的复杂程度相比于同一个网站的pad版本页面,pc版本的页面更为复杂,基于这个大的原则,本发明对浏览器基于低内存模式运行的场景做了更细化的改善。

如图1所示,本发明的方法主要是在通过遥控器按键启动浏览器后,浏览器读取默认浏览器启动配置,如果配置为低内存模式,进入低内存模式运行,如果配置正常模式,那么进一步根据浏览器内存检测模块获取当前系统剩余的内存大小,内存大小是否满足浏览器运行需求,如果不满足,那么浏览器启动配置参数无效,设置通用内存策略的低内存模式,浏览器各模块通过内存策略接口获取的是低内存模式,浏览器运行时启动浏览器内存改造优化的流程和属性配置,,当用户通过遥控器按键浏览器退出后,释放浏览器所有资源。

为了说明实施方式细节,这里以android平台,进一步说明实施步骤:

基于电视场景下浏览器页面运行,通过采样20个主流网站测试,浏览器电视场景下的内存最大值为400m左右,本实施例中,为了保险起见,设置最大值为500m,则该方法具体包含以下步骤:

a.启动浏览器后,读取默认浏览器启动配置,该配置存放在浏览器应用默认配置文件中,当电视出厂时,根据机芯情况,已经默认配置,如果启动配置为低内存模式,则进入步骤d;如果为正常模式,则进入步骤b;

b.浏览器内存检测模块获取当前系统剩余的内存大小;

如果当前系统剩余的内存大于浏览器最大运行的内存500m,即满足浏览器运行需求,则进入步骤c;

如果内存大小不满足浏览器运行需求,那么浏览器启动配置参数无效,直接进入步骤d;

c设置通用内存策略的正常模式,浏览器各模块通过内存策略接口获取的是正常模式,浏览器走的默认流程和属性配置;

d设置通用内存策略的低内存模式,浏览器各模块通过内存策略接口获取的是低内存模式,浏览器走的浏览器内存改造优化的流程和属性配置;

e浏览器退出。

具体的,本实施例中具体采用下面的技术方案来实施浏览器内存改造优化的流程和属性配置:

s1.gpu硬件加速和光栅化改造:

s1.1在低内存模式下,关闭gpu的光栅化,直接使用cpu做光栅化处理;

当前浏览器的策略是渲染流水线中走硬件加速,更多考虑的正对手机平台硬件性能的提升,但电视平台上gpu性能往往不够出色,通常也只有4核,所以处理强行通过gpu硬件加速性能提升不明显,反而暂用更多的内存,因此,通过gpu光栅化会消耗更多的内存,但在电视场景下用户操作无直观体验差别,所以在低内存模式下,关闭gpu的光栅化,直接使用cpu做光栅化处理即可

s1.2.将光栅化任务数量由32个并行减少为6个;

鉴于电视cpu通常主流只有4核,低内存模式下光栅化任务数量由32个并行减少为6个,从而减少线程创建开销的内存:

size_tscheduled_raster_task_limit=6。

s2.通过网络将资源文件下载下来,然后对下载下来的网页进行dom解析后再进行渲染:

浏览器渲染网页的基础是首先通过网络将资源文件下载下来,然后对下载下来的网页进行dom解析后再进行渲染;

当启动浏览器后,浏览器进入各模块的初始化工作,在初始化中,涉及浏览器渲染流水线过程中的初始化配置,由于chromium浏览器是跨平台的,通常的默认配置更多针对的参数配置更多的基于移动平台的用户操作,所以,很多的初始化流程和配置满足了移动平台的需求,但同时也增大的浏览器内存的暂用,基于这些参数,在初始化过程中,通过内存策略接口,来优化流程参数和配置。

s2.1低内存模式下,图片的内存分配默认的64m限制在8m,

constsize_tkmaxhighqualityimagesizebytes=8*1024*1024;

通常基于电视平台场景使用的pad的ua下发的页面复杂度不高,8m对应该场景下已经足够

s2.2.将当前可见页面的内存大小限制为48m;

以内存为1g的系统来说会,浏览器的默认配置为128m左右,但通过大量的实际测试后,限制当前可见页面的内存大小为48m,对页面显示无影响;

actual.bytes_limit_when_visible=48m

s2.3.优先把显示出来的内容通过低分辨率显示,待实际页面渲染完成后,更新为实际分辨率页面;

用户在滚动或者缩放网页时,浏览器为了尽快地将网页内容显示出来,采用优先把显示出来的内容通过低分辨率显示,待实际页面渲染完成后,更新为实际分辨率页面;

但通过实际用户体验0.25f的模糊度和0.1f的模糊度在实际体验并没明细差别,即使有差别也只是更模糊而已,不影响体验,所以低内存模式下修改模糊系数0.25f为0.1f,假设一个普通页面在滚动的时候模糊页面消耗10m,那么通过调整后可以节约4m;

floatlow_res_contents_scale_factor=0.25f;修改为0.1f

s2.4.低内存模式下光栅化扩充区域为3000个像素改为100;

浏览器光栅化过程中,会扩充部分未显示的区域预先光栅化,低内存模式下光栅化扩充区域为3000个像素改为100,实际电视场景下操作无明显差别,但可以节约内存。

inttiling_interest_area_padding=100;

s2.5.低内存模式下可以减少默认的预先渲染的大小,有默认的2000个像素修改为500个像素;

将浏览器中skewport描述的是顺着用户的滑动方向接下来可见的区域,低内存模式下可以减少默认的预先渲染的大小,进一步减少内存消耗,有2000个像素修改为500,基于电视场景下的页面复杂度简单,实际测试观察向下拖动页面无明显体验差别;

intskewport_extrapolation_limit_in_screen_pixels=2000;

s2.6.图片硬解码的内存分配限制,有256m修改为96m,;

鉴于电视场景下的页面复杂度简单,通过实际网站测试,实际体验基本没有变化,但减少的内存的暂用;

settings.gpu_decoded_image_budget_bytes=96*1024*1024;

s3.功能模块的配置:

s3.1去除多余的功能模块,浏览器针对电视多平台的,具有丰富的html5功能,但针对电视平台,会存在多余的功能模块,主要包括如下模块:蓝牙模块、电池检测和处理、重力感应模块、远程打印模块;

这些模块在浏览器也有相应的逻辑流程,暂用的一定的内存,在内存模式下,相应的模块加载时关闭对应模块初始化和具体场景下使用场景

s3.2限制沙箱进程的数量为3个;

浏览器通常在开启一个tab标签会创建一个新的进程,一个新的tab即对应着一个新的沙箱进程,新的进程开启意味着更多内存开销,首先限制沙箱进程的数量为3个,基本满足电视场景同时也不影响用户体验。

s4其他浏览器配置的改善:

主要包括字体缓存限制由8m为1m

skgraphics::setfontcachelimit(1*kmb)。

通过上述流程步骤,即可实现在不影响电视平台的电视浏览器用户体验的情况下,减少电视浏览器的系统资源的暂用的技术效果。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1