CN109918598A - 一种基于Android电视浏览器的web页面渲染方法 - Google Patents
一种基于Android电视浏览器的web页面渲染方法 Download PDFInfo
- Publication number
- CN109918598A CN109918598A CN201910172466.2A CN201910172466A CN109918598A CN 109918598 A CN109918598 A CN 109918598A CN 201910172466 A CN201910172466 A CN 201910172466A CN 109918598 A CN109918598 A CN 109918598A
- Authority
- CN
- China
- Prior art keywords
- android
- web page
- customized
- browser
- component
- 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
Abstract
本发明公开了一种基于Android电视浏览器的web页面渲染方法,在现有方案基础上,主要对Android组件的构建方式、渲染过程和通信机制进行优化,从而达到降低应用资源占用的目的。本发明的方法可有效解决目前Android电视桌面管理应用使用基于Chromium内核的WebView控件加载和渲染web页面存在的内存资源占用高的问题。
Description
技术领域
本发明涉及浏览器技术领域,特别涉及一种基于Android电视浏览器的web页面渲染方法。
背景技术
随着Android智能电视的普及,对于Android电视的应用性能和用户体验要求也越来越高,作为Android系统启动之后进入的第一个应用,Android桌面管理应用的性能的好坏更是直接影响整个系统的体验。
众所周知,传统移动平台的Android桌面管理应用的功能主要包括有:显示并启动已安装的应用程序、显示桌面(动态)壁纸、显示系统小部件等;在电视领域,桌面管理应用除了上述功能之外,还具备推送电视热点内容,显示广告信息等实时性要求较高内容的功能。
Android电视桌面管理应用开发人员为了解决上述问题,开发web页面用于实时性要求较高的内容。Android系统提供了基于Chromium(一个由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码)内核用于WebView(Android系统中内置的一款高性能webkit内核浏览器,在SDK中封装的一个组件)应用组件,传统开发模式中,桌面管理应用开发人员通常调用WebView组件的API直接加载web页面,由Chromium内核渲染并呈现于WebView组件上。该开发方式虽然简单易用,但是使用WebView组件带来的问题就是内存资源占用高,在如今电视应用越来越多,功能越来越丰富的背景下,在不影响功能的情况下,降低所有应用的资源占用,对于提高Android电视性能具有决定性作用,而优化桌面管理应用的资源占用更是成为Android电视性能优化的重中之重。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种基于Android电视浏览器的web页面渲染方法,有效优化了传统开发模式下使用WebView造成的桌面管理应用内存资源占用高的问题。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于Android电视浏览器的web页面渲染方法,包括以下步骤:
A.桌面管理应用启动及初始化,进行Android应用组件的布局;
B.在桌面管理应用初始化时对自定义Android组件进行初始化,将自定义Android组件对象实例化,创建SurfaceView(Android的一个控件,本身是一个View,符合一切View的特性),并调用Android系统API将SurfaceView转化为ANativeWindow(Android图形显示的窗口对象);
C.在步骤B的进行过程中启动定制浏览器内核的初始化,获取步骤B创建的ANativeWindow,调用Android系统OpenGL接口进行渲染过程初始化;
D.调用自定义Android组件定义的API进行web页面加载;页面加载时判断定制浏览器内核是否初始化完成,若完成则进入步骤F,否则进入步骤E;
E.延时等待定制浏览器内核初始化完成状态标志设置,直到初始化完成返回步骤D;
F.定制浏览器内核初始化完成,将web页面资源传入并作解析和渲染;
G.定制浏览器内核将web页面渲染的数据填充至步骤C初始化的ANativeWindow,从而将页面在自定义Android组件上呈现。
进一步地,所述自定义Android组件用于桌面管理应用开发时调用API加载web页面,自定义Android组件继承Android系统SurfaceView,web页面渲染内容最终显示在SurfaceView上,同时由Android系统的SurfaceFlinger(Android的一个系统服务进程,负责图层管理)作内存空间管理。
进一步地,自定义Android组件封装的API功能包括:组件初始化、加载指定url地址的web页面、重新加载当前web页面、浏览器内核渲染页面状态反馈。
进一步地,所述自定义Android组件捕获Android系统接收的按键事件,并将其传送至定制浏览器内核进行处理,从而响应web页面操作的按键事件。
进一步地,所述定制浏览器内核基于所述自定义Android组件SurfaceView转换的ANativeWindow作为渲染内存空间,调用Android系统平台的OpenGL库函数进行web页面渲染。
进一步地,所述定制浏览器内核内定制开发有专有web页面词法解析器,对基础功能语法进行保留和兼容,同时去除现有方案内核中冗余的词法支持功能,且根据定制浏览器内核定制的词法解析器,自定义web语法供Android电视桌面管理应用进行web模块开发。
进一步地,所述步骤B中具体是调用Android系统API的自定义通信机制将SurfaceView转化为ANativeWindow并传递至定制浏览器内核,所述自定义通信机制用于自定义Android组件与定制浏览器内核之间交互通信。
进一步地,所述自定义通信机制将所述自定义Android组件创建的SurfaceView捕获的按键事件传递至定制浏览器内核并将定制浏览器内核的运行状态传递至浏览器组件。
本发明与现有技术相比,具有以下的有益效果:
在Android电视桌面管理应用开发时使用本发明设计的基于Android电视浏览器的web页面渲染方法,具有提升桌面管理应用性能,提高用户体验的有益效果,可有效解决目前Android电视桌面管理应用使用基于Chromium内核的WebView控件加载和渲染web页面存在的内存资源占用高的问题。
附图说明
图1是本发明的基于Android电视浏览器的web页面渲染方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
本发明公开了一种基于Android电视浏览器的web页面渲染方法,在现有方案基础上,主要对Android组件的构建方式、渲染过程和通信机制进行优化,从而达到降低应用资源占用的目的。
本实施例中以Android电视桌面管理应用运行流程作为本发明方法的实现过程说明,其具体实施步骤如图1所示,具体包括:
步骤s1,桌面管理应用启动,进行初始化,主要进行Android应用组件的布局;
步骤s2,桌面管理应用初始化时对自定义Android组件进行初始化,将自定义Android组件对象实例化,创建SurfaceView,并调用Android系统API将SurfaceView转化为ANativeWindow;
步骤s3,步骤s2进行过程中启动定制浏览器内核的初始化,获取步骤s2创建的ANativeWindow,调用Android系统OpenGL接口进行渲染过程初始化;
步骤s4,桌面管理应用布局完成,调用自定义Android组件定义的API进行web页面加载;页面加载时判断定制浏览器内核是否初始化完成,若完成则进入步骤s6,未完成则进入步骤s5;
步骤s5,延时等待定制浏览器内核初始化完成状态标志设置,直到初始化完成返回步骤s4;
步骤s6,定制浏览器内核初始化完成,将web页面资源传入并作解析和渲染;
步骤s7,浏览器内核将web页面渲染的数据填充至步骤s3初始化的ANativeWindow,从而将页面在自定义Android组件上呈现。
具体的,本实施例中,自定义Android组件用于桌面管理应用开发时调用API加载web页面,自定义Android组件继承Android系统SurfaceView,web页面渲染内容最终显示在SurfaceView上,同时由Android系统的SurfaceFlinger作内存空间管理,其中,自定义Android组件封装的API功能包括:组件初始化、加载指定url地址的web页面、重新加载当前web页面、浏览器内核渲染页面状态反馈,且自定义Android组件捕获Android系统接收的按键事件,并将其传送至定制浏览器内核进行处理,从而响应web页面操作的按键事件。
具体的,定制浏览器内核基于所述自定义Android组件SurfaceView转换的ANativeWindow作为渲染内存空间,调用Android系统平台的OpenGL库函数进行web页面渲染,且定制浏览器内核内定制开发有专有web页面词法解析器,对基础功能语法进行保留和兼容,同时去除现有方案内核中冗余的词法支持功能,且根据定制浏览器内核定制的词法解析器,自定义web语法供Android电视桌面管理应用进行web模块开发。
具体的,本实施例中,在步骤s2中具体是调用Android系统API的自定义通信机制将SurfaceView转化为ANativeWindow并传递至定制浏览器内核,所述自定义通信机制用于自定义Android组件与定制浏览器内核之间交互通信,自定义通信机制将自定义Android组件创建的SurfaceView捕获的按键事件传递至定制浏览器内核并将定制浏览器内核的运行状态传递至浏览器组件。
由上可知,Android电视桌面管理应用开发时使用本发明设计的web页面渲染方法,可实现提升桌面管理应用性能,提高用户体验的有益效果。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (8)
1.一种基于Android电视浏览器的web页面渲染方法,其特征在于,包括以下步骤:
A.桌面管理应用启动及初始化,进行Android应用组件的布局;
B.在桌面管理应用初始化时对自定义Android组件进行初始化,将自定义Android组件对象实例化,创建SurfaceView,并调用Android系统API将SurfaceView转化为ANativeWindow;
C.在步骤B的进行过程中启动定制浏览器内核的初始化,获取步骤B创建的ANativeWindow,调用Android系统OpenGL接口进行渲染过程初始化;
D.调用自定义Android组件定义的API进行web页面加载;页面加载时判断定制浏览器内核是否初始化完成,若完成则进入步骤F,否则进入步骤E;
E.延时等待定制浏览器内核初始化完成状态标志设置,直到初始化完成返回步骤D;
F.定制浏览器内核初始化完成,将web页面资源传入并作解析和渲染;
G.定制浏览器内核将web页面渲染的数据填充至步骤C初始化的ANativeWindow,从而将页面在自定义Android组件上呈现。
2.根据权利要求1所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述自定义Android组件用于桌面管理应用开发时调用API加载web页面,自定义Android组件继承Android系统SurfaceView,web页面渲染内容最终显示在SurfaceView上,同时由Android系统的SurfaceFlinger作内存空间管理。
3.根据权利要求2所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,自定义Android组件封装的API功能包括:组件初始化、加载指定url地址的web页面、重新加载当前web页面、浏览器内核渲染页面状态反馈。
4.根据权利要求2或3所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述自定义Android组件捕获Android系统接收的按键事件,并将其传送至定制浏览器内核进行处理,从而响应web页面操作的按键事件。
5.根据权利要求1所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述定制浏览器内核基于所述自定义Android组件SurfaceView转换的ANativeWindow作为渲染内存空间,调用Android系统平台的OpenGL库函数进行web页面渲染。
6.根据权利要求5所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述定制浏览器内核内定制开发有专有web页面词法解析器,对基础功能语法进行保留和兼容,同时去除现有方案内核中冗余的词法支持功能,且根据定制浏览器内核定制的词法解析器,自定义web语法供Android电视桌面管理应用进行web模块开发。
7.根据权利要求1所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述步骤B中具体是调用Android系统API的自定义通信机制将SurfaceView转化为ANativeWindow并传递至定制浏览器内核,所述自定义通信机制用于自定义Android组件与定制浏览器内核之间交互通信。
8.根据权利要求7所述的一种基于Android电视浏览器的web页面渲染方法,其特征在于,所述自定义通信机制将所述自定义Android组件创建的SurfaceView捕获的按键事件传递至定制浏览器内核并将定制浏览器内核的运行状态传递至浏览器组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910172466.2A CN109918598B (zh) | 2019-03-07 | 2019-03-07 | 一种基于Android电视浏览器的web页面渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910172466.2A CN109918598B (zh) | 2019-03-07 | 2019-03-07 | 一种基于Android电视浏览器的web页面渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918598A true CN109918598A (zh) | 2019-06-21 |
CN109918598B CN109918598B (zh) | 2022-10-18 |
Family
ID=66963827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910172466.2A Active CN109918598B (zh) | 2019-03-07 | 2019-03-07 | 一种基于Android电视浏览器的web页面渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918598B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659021A (zh) * | 2019-11-29 | 2020-01-07 | 南京百敖软件有限公司 | 一种移动端内微应用的开发及测试系统 |
CN111596916A (zh) * | 2020-04-20 | 2020-08-28 | 北京飞漫软件技术有限公司 | 一种应用程序管理方法、装置、设备及计算机存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140098118A1 (en) * | 2012-10-09 | 2014-04-10 | Alibaba Group Holding Limited | Graphic Rendering |
CN104615670A (zh) * | 2015-01-16 | 2015-05-13 | 百纳(武汉)信息技术有限公司 | 一种android浏览器中支持多渲染引擎的方法及浏览器 |
CN106294594A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 页面渲染方法及装置 |
CN107368291A (zh) * | 2016-05-13 | 2017-11-21 | 北京搜狗科技发展有限公司 | 一种网页绘制装置、方法及电子设备 |
CN108182090A (zh) * | 2016-12-08 | 2018-06-19 | 腾讯科技(深圳)有限公司 | 基于blink内核的Flash插件加载方法及装置 |
WO2018120992A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种窗口渲染方法及终端 |
CN108984244A (zh) * | 2018-06-12 | 2018-12-11 | 深圳市网心科技有限公司 | 浏览器页面渲染方法、电子装置及计算机可读存储介质 |
CN109151571A (zh) * | 2018-10-10 | 2019-01-04 | 四川长虹电器股份有限公司 | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 |
-
2019
- 2019-03-07 CN CN201910172466.2A patent/CN109918598B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140098118A1 (en) * | 2012-10-09 | 2014-04-10 | Alibaba Group Holding Limited | Graphic Rendering |
CN104615670A (zh) * | 2015-01-16 | 2015-05-13 | 百纳(武汉)信息技术有限公司 | 一种android浏览器中支持多渲染引擎的方法及浏览器 |
CN107368291A (zh) * | 2016-05-13 | 2017-11-21 | 北京搜狗科技发展有限公司 | 一种网页绘制装置、方法及电子设备 |
CN106294594A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 页面渲染方法及装置 |
CN108182090A (zh) * | 2016-12-08 | 2018-06-19 | 腾讯科技(深圳)有限公司 | 基于blink内核的Flash插件加载方法及装置 |
WO2018120992A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种窗口渲染方法及终端 |
CN108984244A (zh) * | 2018-06-12 | 2018-12-11 | 深圳市网心科技有限公司 | 浏览器页面渲染方法、电子装置及计算机可读存储介质 |
CN109151571A (zh) * | 2018-10-10 | 2019-01-04 | 四川长虹电器股份有限公司 | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 |
Non-Patent Citations (4)
Title |
---|
ERICBARS: "基于FFmpeg和SurfaceView实现Android原生窗口(ANativeWindow)的视频播放", 《HTTPS://BLOG.CSDN.NET/ERICBAR/ARTICLE/DETAILS/80416328》 * |
LI MA等: "The mobile video monitoring system based on Android", 《2017 CHINESE AUTOMATION CONGRESS (CAC)》 * |
UIN_SISYPHUS: "架构4--EGLSurface 和 OpenGL ES", 《HTTPS://WWW.JIANSHU.COM/P/AE1A837D3CEA》 * |
马健: "基于Android车载平台连接Android设备的CarLife软件的开发", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659021A (zh) * | 2019-11-29 | 2020-01-07 | 南京百敖软件有限公司 | 一种移动端内微应用的开发及测试系统 |
CN110659021B (zh) * | 2019-11-29 | 2020-03-17 | 南京百敖软件有限公司 | 一种移动端内微应用的开发及测试系统 |
CN111596916A (zh) * | 2020-04-20 | 2020-08-28 | 北京飞漫软件技术有限公司 | 一种应用程序管理方法、装置、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109918598B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101567065B (zh) | 跨平台的文档在线编辑系统及其方法 | |
US20130191526A1 (en) | Open plug-in management platform and plug-in management method implemented on browser | |
CN101477461A (zh) | 应用程序界面动态生成装置及方法 | |
CN103677779A (zh) | 一种灵活的页面配置展现方法 | |
CN100422923C (zh) | 增强便携式装置的显示输出能力的设备和方法 | |
CN109918598A (zh) | 一种基于Android电视浏览器的web页面渲染方法 | |
CN109544437B (zh) | 一种ios应用添加水印的方法 | |
US9361710B2 (en) | Defining a midlet region space | |
CN105867944A (zh) | Web前端数据操作层及其实现方法 | |
CN101295246B (zh) | 一种从UML模型转换至SmartC模型的转换方法 | |
CN107122176A (zh) | 一种图形绘制方法及装置 | |
CN101158894A (zh) | 一种构件化软件系统中动态自动适配的编程系统及方法 | |
CN102904925B (zh) | 一种基于三屏互动的跨平台widget中间件系统 | |
CN108243355B (zh) | 机顶盒用户界面加载方法及系统 | |
CN103530165A (zh) | 一种应用于物联网行业的java解决方案 | |
CN102999371A (zh) | 基于Lua脚本的人机界面开发方法及系统 | |
CN101345933A (zh) | 手机显示字体及字体大小的动态更改与装卸方法 | |
CN104731600A (zh) | 一种将安卓系统服务插件化的实现方法 | |
CN101404656A (zh) | 一种与第三方智能设备协议通讯的软件接口设计方法 | |
CN102185970A (zh) | 手机视频播放器组件模型对象接口规范的建立方法 | |
WO2023138001A1 (zh) | 一种新型界面换肤系统及其方法 | |
JP5249764B2 (ja) | スクリプトアプリケーションフレームワーク | |
CN116339696A (zh) | 一种可扩展自动生成跨平台多语言接口的系统及方法 | |
CN111736887B (zh) | 一种利旧设备的访问系统、方法、装置及存储介质 | |
CN109857374A (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 |