CN113033142A - 一种信息流动态展示方法、装置、设备及介质 - Google Patents
一种信息流动态展示方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113033142A CN113033142A CN201911353246.6A CN201911353246A CN113033142A CN 113033142 A CN113033142 A CN 113033142A CN 201911353246 A CN201911353246 A CN 201911353246A CN 113033142 A CN113033142 A CN 113033142A
- Authority
- CN
- China
- Prior art keywords
- data
- rendering
- target
- information stream
- style file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000009877 rendering Methods 0.000 claims abstract description 104
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 230000010354 integration Effects 0.000 claims abstract description 14
- 230000009471 action Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 16
- 230000008859 change Effects 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000011161 development Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明公开了一种信息流动态展示方法、装置、设备及介质,所述方法包括获取目标样式文件;获取信息流数据;解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;根据所述信息流渲染数据进行排版计算,得到目标数据;渲染所述目标数据。本发明通过获取样式文件,设置整合算法整合样式文件与信息流数据,根据整合结果进行排版布局,并根据排版布局的结果进行信息流展示,实现了在用户无感知的情况下信息流的展示效果的动态变更。
Description
技术领域
本发明涉及信息流显示领域,尤其涉及一种信息流动态展示方法、装置、设备及介质。
背景技术
现有技术中信息流展示大多依赖于特定开发框架的原生UI来实现,例如为了在IOS终端上展示信息流需要使用苹果公司推荐的开发资源,为了在Android终端上展示信息流需要使用Google公司提供的开发资源。不同的厂商提供的开发资源难以统一,不仅增加了开发成本,还会降低产品的稳定性。此外,依赖于特定开发框架无法实现对已经上线发布了的产品的信息流展示效果的动态修改。
为了解除信息流展示对于特定开发框架的依赖,实现对已经上线发布了的产品的信息流展示效果的动态修改,现有技术也提供了例如ReactNative等跨平台开发框架,但是这种现有的跨平台开发框架对于JavaScript引擎有较强依赖,性能较差,在信息流渲染的流畅度和加载速度上瓶颈效应严重,导致用户产生卡顿体验。
发明内容
为了解决现有技术中依赖于特定开发框架实现的信息流展示方案不能跨平台运行,并且无法对于已发布的产品的信息流展示效果进行动态变更;而已有的跨平台开发框架又存在严重的性能瓶颈的技术问题,本发明实施例提供一种信息流动态展示方法、装置、设备及介质。
一方面,本发明提供了一种信息流动态展示方法,所述方法包括:
获取目标样式文件;
获取信息流数据;
解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染所述目标数据。
另一方面,本发明提供一种信息流动态展示装置,所述装置包括:
目标样式文件获取模块,用于获取目标样式文件;
信息流数据获取模块,用于获取信息流数据;
解析整合模块,用于解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
排版模块,用于根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染模块,用于渲染所述目标数据。
另一方面,本发明提供了一种信息流动态展示设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种信息流动态展示方法。
另一方面,本发明提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种信息流动态展示方法。
本发明提供了一种信息流动态展示方法、装置、设备及介质。本发明通过获取样式文件,设置整合算法整合样式文件与信息流数据,根据整合结果进行排版布局,并根据排版布局的结果进行信息流展示,实现了在用户无感知的情况下信息流的展示效果的动态变更。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的一种信息流动态展示方法的实施环境示意图;
图2是本发明提供的区块链系统的一个可选的结构示意;
图3是本发明提供的区块结构示意图;
图4是本发明提供的一种信息流动态展示方法的流程图;
图5是本发明提供的获取目标样式文件流程图;
图6是本发明提供的解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据流程图;
图7是本发明提供的根据所述信息流渲染数据进行排版计算,得到目标数据流程图;
图8是本发明提供的渲染所述目标数据流程图;
图9是本发明提供的一种信息流动态展示方法的逻辑架构示意图;
图10是本发明提供的另一种信息流动态展示方法的逻辑架构示意图;
图11是本发明提供的基于多线程实现跨平台信息流动态展示的示意图;
图12是本发明提供的一种信息流动态展示方法的一种可行的执行示意图;
图13是本发明提供的一种信息流动态展示方法的应用场景图;
图14是本发明提供的一种信息流动态展示方法的框图;
图15是本发明提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于理解本发明实施例所述的技术方案及其产生的技术效果,本发明实施例首先对于相关专业名词进行解释:
信息流(Feeds):持续更新并给用户呈现内容的信息流。
JSON:JavaScript Object Notation,JS对象简谱是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
样式文件:描述页面UI布局的文件。样式文件广泛使用JSON描述UI布局。
UI:User Interface,用户界面是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。
IOS:苹果公司的移动操作系统。最初是设计给iPhone终端使用的,后来陆续套用到iPod touch、iPad以及Apple TV等终端设备上。IOS与苹果的macOS操作系统一样,属于类UNIX的商业操作系统。
Android:Google公司开发的操作系统。Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。目前,Android在各种终端中均应用交广,如电视、数码相机、游戏机、智能手表等。
UNIX:UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
Linux:Linux操作系统是UNIX操作系统的一种克隆系统,是一套免费使用和自由传播的类UNIX操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。
ReactNative:FaceBook公司开发的开源跨平台的UI客户端框架。上层通过JavaScript语编写UI逻辑代码,通过JavaScript引擎释执行,并最终通过桥接层实现调用平台系统接口,达到原生渲染的效果。ReactNative需要一个JavaScript的运行环境,
JavaScript:是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。
为了解决现有技术中依赖于特定开发框架实现的信息流展示方案不能跨平台运行,并且无法对于已发布的产品的信息流展示效果进行动态变更;而已有的跨平台开发框架又存在严重的性能瓶颈的技术问题,本发明实施例提供一种信息流动态展示方法。
首先,本发明实施例公开了在一个可行的实施例中所述一种信息流动态展示方法的实施环境。
参见图1,该实施环境包括:至少一个客户端01和服务器03。
客户端01可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如具有信息流动态展示功能的应用程序等。所述具有信息流动态展示功能的应用程序可以是新闻类应用程序、视频类应用程序、音频类应用程序、社交类应用程序、图文类应用程序。所述客户端01可以基于浏览器/服务器模式(Browser/Server,B/S)或客户端/服务器模式(Client/Server,C/S)与所述服务器03通信连接。
所述客户端01可以向服务器03请求信息流数据,还可以接收服务器03下发的样式文件,通过将所述样式文件和所述信息流数据进行整合处理得到信息流渲染数据,根据所述信息流渲染数据获取目标数据,根据所述目标数据进行信息流的展示。
所述服务器03可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。所述分布式服务器具体可以为区块链结构,所述区块链结构中的任意一个节点都可以执行或参与执行所述一种信息流动态展示方法。
在一个优选的实施例中,所述训练样本也可以存储于区块链系统之中。参见图2,图2是本发明实施例提供的区块链系统的一个可选的结构示意图,多个节点之间形成组成的点对点(P2P,PeerTo Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在区块链系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图3,图3是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
请参考图4,其示出了一种信息流动态展示方法的流程图,所述方法可以以图1所述的实施环境中的客户端为执行主体实施,所述方法可以包括:
S101.获取目标样式文件。
具体地,本发明实施例中所述目标样式文件可以来源于客户端本地,也可以来源于与所述客户端通信连接的服务器。
在一个可行的实施例中,所述获取目标样式文件,包括:
S1011.获取本地的至少一个样式文件。
S1013.获取服务器下发的至少一个样式文件。
在本发明实施例的其它实施方式中,步骤S1011和步骤S1013可以择一或并行执行。如图5所示,其示出了在一个优选的实施例中,将步骤S1011和步骤S1013并行执行的示意图。
S1015.根据获取到的样式文件确定目标样式文件。
具体地,可以根据用户选择确定目标样式文件,也可以根据各个样式文件的属性确定目标样式文件,比如,将获取日期最近的样式文件确定为目标样式文件。
由于信息流的展示效果由样式决定,而本发明实施例中支持对于服务器下发的样式文件的获取,并且服务器下发的样式文件也可以作为目标样式文件用于展示信息流,这就使得本法发明实施例有条件实现动态的信息流展示。
为了便于解析所述目标样式文件,本发明一个优选的实施例中公开了所述目标样式文件的结构:
所述目标样式文件包括至少一个视图描述构成的视图树,所述视图描述使用键值对形式描述至少一个视图属性和至少一个数据显示属性。所述视图属性用于描述视图本身的属性,比如所述视图属性包括“view_type”视图类型,“view_id”视图标识,所述数据显示属性用于描述需要在所述视图中呈现的数据的渲染动作或渲染属性,比如“setFontSizeString”设置字体字号,“setTextColorString”设置字体颜色。
具体地,所述数据显示属性可通过静态描述记录,也可以通过动态占位符记录。
比如“setFontSizeString”:“17”即为静态描述记录,
“setFontSizeString”:“$readable_title_text_color”即为动态占位符记录,其中以$符号开头的字符串$readable_title_text_color引用的字符串“readable_title_text_color”即为占位符,所述占位符用于在整合步骤S105中整合目标样式文件和信息流数据,信息流数据中与所述占位符关联的数据可以替换掉目标样式文件中的占位符从而实现整合。
S103.获取信息流数据。
信息流数据可以为持续更新的订阅源内容,也可以为服务器为用户推荐的内容,本发明实施例并不限定信息流数据的内容和信息流数据中所包含的资源。比如,信息流数据可以是位于社交媒体用户的好友动态、或者资讯媒体和视听媒体内容流中的广告,其可以包括图片、图文、视频等。
对应于所述目标样式文件中的通过动态占位符记录的方式,实现步骤S105中目标样式文件与信息流数据的整合,本发明实施例相应的公开了所述信息流数据的结构:
所述信息流数据包括至少一条键值对记录,每条键值对记录的键为占位符,值为所述占位符关联的数据。
S105.解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据。
本发明实施例中目标样式文件和信息流数据作为信息流展示所需的两类主要数据,其中目标样式文件包括信息流展示所需的模板布局信息,所述信息流数据需要在所述模板布局信息的规范下被展示出来。在一个优选的实施例中,可以通过封装得到的解析器来执行步骤S105中的步骤。
在一个可行的实施例中,为了便于解析和整合,所述目标样式文件和所述信息流数据均使用JSON格式记录。
在一个可行的实施例中,所述解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据,如图6所示,包括:
S1051.提取所述目标样式文件中的至少一个第一占位符。
S1053.遍历所述信息流数据,得到与所述第一占位符匹配的第二占位符。
S1055.使用信息流数据中所述第二占位符关联的数据替换所述目标样式文件中的第一占位符,得到信息流渲染数据。
S107.根据所述信息流渲染数据进行排版计算,得到目标数据。
在一个优选的实施例中,可以通过封装得到的排版器来执行步骤S107中的步骤。
在一个优选的实施例中,所述目标样式文件中的数据构成视图树,目标样式文件与信息流数据整合后得到的信息流渲染数据构成信息流渲染树。
具体地,所述根据所述信息流渲染数据进行排版计算,得到目标数据,如图7所示,包括:
S1071.深度优先遍历所述信息流渲染树,计算各个节点对应的视图的坐标及宽高。
S1073.基于各个节点对应的视图的坐标及宽高进行排版,得到排版结果。
S1075.根据排版结果为各个节点生成视图对象,根据所述排版结果和所述视图对象生成目标数据,所述视图对象中包括所述视图对应的信息流数据。
S109.渲染所述目标数据。
具体地,所述渲染所述目标数据如图8所示,包括:
S1091.创建画布,根据所述目标数据中的排版结果在所述画布中进行视图布局。
所述视图布局包括设置视图宽高,和/或执行其它布局方法。
S1093.在所述视图布局中创建视图。
S1095.获取所述目标数据中的所述视图对应的视图对象,根据所述视图对象渲染所述视图。
若所述信息流渲染树中包括渲染动作,则所述目标数据中也包括渲染动作,则根据所述视图对象渲染所述视图包括执行所述渲染动作。
为了使得本发明实施例可以跨平台执行,所述目标数据可以被不同特定开发框架的原生控件所渲染,即所述目标数据与开发框架无关。
在一个可行的实施例中,本发明实施例中所述一种信息流动态展示方法的逻辑架构如图9所示,其包括样式层、排版层和渲染层,其中样式层可以用于获取目标样式文件并对所述目标样式文件进行解析,整合所述目标样式文件与所述信息流数据以得到信息流渲染数据,所述排版层用于对信息流渲染数据进行排版生成目标数据,渲染层用于渲染目标数据,所述渲染层可以包括各种开发框架下的原生控件,比如IOS原生控件,Andorid原生控件,渲染层将目标数据的获取和目标数据的渲染进行了解耦,在渲染环节对应所述信息流动态展示方法的执行环境启动相应的原生控件即可实现目标数据的渲染。比如,执行环境是IOS系统,则启动IOS原生控件渲染,执行环境为Android系统,则启动Android系统原生控件进行渲染。
在另一个可行的实施例中,还可以绕过与平台相关的原生控件,直接使用图形渲染库来进行渲染。如图10所示,其示出了另一种信息流动态展示方法的逻辑架构图,其包括样式层、排版层和渲染层,所述样式层和排版层的作用与图9相同,所述渲染层中包括图形渲染库,所述图形渲染库封装了与平台无关的渲染控件,可以更好的保证渲染效果在不同平台中的一致性。
由于步骤S105和步骤S107均较为耗时,从而可能导致目标数据渲染时容易出现卡顿,为了进一步提升信息流的渲染效率,在一个优选的实施方式中还可以基于多线程实现跨平台信息流动态展示。如图11所示,其示出本发明实施例中基于多线程实现跨平台信息流动态展示的示意图。具体地,由子线程实施步骤S105和步骤S107,由主线程实施步骤S109。通过将比较耗时数据整合、排版等步骤放入子线程执行,而主线程可以专注于视图布局和渲染,从而减轻主线程的负担,有效提高滑动流畅度这个至关重要的性能指标。
本发明实施例公开的一种信息流动态展示方法的一种可行的执行示意图如图12所示,可以通过样式后台服务器获取样式文件,也可以在本地获取离线的样式文件,通过样式文件管理模块从至少一个样式文件中确定目标样式文件,从数据后台服务器获取信息流数据,将信息流数据和目标样式文件输入整合排版引擎,并通过调用渲染控件将信息流按照目标样式文件规定的样式渲染出来。由于目标样式文件可以来源于样式后台服务器,因此当希望变更信息流的样式时,只需要从样式后台服务器下发新的样式文件即可,对用户而言是无感知的。与之形成对应的,现有技术中的信息流样式无法动态变更,若希望变更信息流的样式,只能升级客户端的对应的应用程序,增加用户的负担。如图13所示,其示出了一种信息流动态展示方法的应用场景图。在动态变更信息流展示效果之前,图片资源在上,文字资源在下。通过样式后台服务器下发更新后的样式文件之后,可以获得图片资源在下,文字资源在上的另一种信息流展示效果,显然,实现了信息流展示效果的无感知的动态变更。
本发明实施例所实现的信息流动态展示效果使得本发明实施例在实际的业务场景的应用中具有突出的优势,因为信息流的动态展示的适应范围广,比如,业务需要对不同的用户群进行灰度测试,找到用户最为喜欢的样式,从而提高产品竞争力;再比如,针对不同的用户进行不同的信息流展示,从而提升用户粘度。
本发明实施例所公开的一种信息流动态展示方法通过获取样式文件,设置整合算法整合样式文件与信息流数据,根据整合结果进行排版布局,并根据排版布局的结果进行信息流展示,实现了在用户无感知的情况下信息流的展示效果的动态变更。进一步地,本发明实施例所述的技术方案还可以跨平台,以及以并发架构执行,从而提升了其兼容性,流畅度,进而提升用户粘度。
本发明实施例还提供了一种信息流动态展示装置,如图14所示,所述装置包括:
目标样式文件获取模块201,用于获取目标样式文件;
信息流数据获取模块203,用于获取信息流数据;
解析整合模块205,用于解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
排版模块207,用于根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染模块209,用于渲染所述目标数据。
具体地,本发明实施例所述一种信息流动态展示装置与方法实施例均基于相同发明构思。详情请参见方法实施例,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种信息流动态展示方法,所述方法至少包括下述步骤:
一种信息流动态展示方法,所述方法包括:
获取目标样式文件;
获取信息流数据;
解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染所述目标数据。
在一个优选的实施例中,所述目标样式文件包括至少一个视图描述构成的视图树,所述视图描述使用键值对形式描述至少一个视图属性和至少一个数据显示属性;所述视图属性用于描述视图本身的属性;所述数据显示属性用于描述需要在所述视图中呈现的数据的渲染动作或渲染属性;所述信息流数据包括至少一条键值对记录,每条键值对记录的键为占位符,值为所述占位符关联的数据;所述解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据,包括:
提取所述目标样式文件中的至少一个第一占位符;
遍历所述信息流数据,得到与所述第一占位符匹配的第二占位符;
使用信息流数据中所述第二占位符关联的数据替换所述目标样式文件中的第一占位符,得到信息流渲染数据。
在一个优选的实施例中,所述目标样式文件中的数据构成视图树,目标样式文件与信息流数据整合后得到的信息流渲染数据构成信息流渲染树;所述根据所述信息流渲染数据进行排版计算,得到目标数据,包括:
深度优先遍历所述信息流渲染树,计算各个节点对应的视图的坐标及宽高;
基于各个节点对应的视图的坐标及宽高进行排版,得到排版结果;
根据排版结果为各个节点生成视图对象,根据所述排版结果和所述视图对象生成目标数据,所述视图对象中包括所述视图对应的信息流数据。
一个优选的实施例中,所述渲染所述目标数据,包括:
创建画布,根据所述目标数据中的排版结果在所述画布中进行视图布局;
在所述视图布局中创建视图;
获取所述目标数据中的所述视图对应的视图对象,根据所述视图对象渲染所述视图。
一个优选的实施例中,所述渲染所述目标数据,包括:
对应所述信息流动态展示方法的执行环境启动相应的原生控件实现目标数据的渲染;
或,
基于图形渲染库实现目标数据的渲染。
进一步地,图15示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置或系统。如图15所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图15所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图15中所示更多或者更少的组件,或者具有与图15所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种信息流动态展示方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种信息流动态展示方法,其特征在于,所述方法包括:
获取目标样式文件;
获取信息流数据;
解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述获取目标样式文件,包括:
获取本地的至少一个样式文件,和/或,获取服务器下发的至少一个样式文件;
根据获取到的样式文件确定目标样式文件。
3.根据权利要求1所述的方法,其特征在于,所述目标样式文件包括至少一个视图描述构成的视图树,所述视图描述使用键值对形式描述至少一个视图属性和至少一个数据显示属性;所述视图属性用于描述视图本身的属性;所述数据显示属性用于描述需要在所述视图中呈现的数据的渲染动作或渲染属性;所述信息流数据包括至少一条键值对记录,每条键值对记录的键为占位符,值为所述占位符关联的数据;所述解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据,包括:
提取所述目标样式文件中的至少一个第一占位符;
遍历所述信息流数据,得到与所述第一占位符匹配的第二占位符;
使用信息流数据中所述第二占位符关联的数据替换所述目标样式文件中的第一占位符,得到信息流渲染数据。
4.根据权利要求1或3所述的方法,其特征在于,所述目标样式文件中的数据构成视图树,目标样式文件与信息流数据整合后得到的信息流渲染数据构成信息流渲染树;所述根据所述信息流渲染数据进行排版计算,得到目标数据,包括:
深度优先遍历所述信息流渲染树,计算各个节点对应的视图的坐标及宽高;
基于各个节点对应的视图的坐标及宽高进行排版,得到排版结果;
根据排版结果为各个节点生成视图对象,根据所述排版结果和所述视图对象生成目标数据,所述视图对象中包括所述视图对应的信息流数据。
5.根据权利要求1所述的方法,其特征在于,所述渲染所述目标数据,包括:
创建画布,根据所述目标数据中的排版结果在所述画布中进行视图布局;
在所述视图布局中创建视图;
获取所述目标数据中的所述视图对应的视图对象,根据所述视图对象渲染所述视图。
6.根据权利要求1或5所述的方法,其特征在于,所述渲染所述目标数据,包括:
对应所述信息流动态展示方法的执行环境启动相应的原生控件实现目标数据的渲染;
或,
基于图形渲染库实现目标数据的渲染。
7.根据权利要求1所述的方法,其特征在于,还包括:
启动第一线程,在所述第一线程中解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;根据所述信息流渲染数据进行排版计算,得到目标数据;
启动第二线程,在所述第二线程中渲染所述目标数据。
8.一种信息流动态展示装置,其特征在于,所述装置包括:
目标样式文件获取模块,用于获取目标样式文件;
信息流数据获取模块,用于获取信息流数据;
解析整合模块,用于解析所述目标样式文件,根据解析结果整合所述目标样式文件与所述信息流数据,得到信息流渲染数据;
排版模块,用于根据所述信息流渲染数据进行排版计算,得到目标数据;
渲染模块,用于渲染所述目标数据。
9.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1-7任一项所述的一种信息流动态展示方法。
10.一种信息流动态展示设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行如权利要求1-7任一项所述的一种信息流动态展示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911353246.6A CN113033142B (zh) | 2019-12-25 | 2019-12-25 | 一种信息流动态展示方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911353246.6A CN113033142B (zh) | 2019-12-25 | 2019-12-25 | 一种信息流动态展示方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113033142A true CN113033142A (zh) | 2021-06-25 |
CN113033142B CN113033142B (zh) | 2024-08-16 |
Family
ID=76452251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911353246.6A Active CN113033142B (zh) | 2019-12-25 | 2019-12-25 | 一种信息流动态展示方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113033142B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354490A (zh) * | 2016-08-19 | 2017-01-25 | 成都卓影科技股份有限公司 | Epg页面动态布局方法 |
CN109101300A (zh) * | 2018-06-14 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 一种页面渲染方法、装置及终端 |
-
2019
- 2019-12-25 CN CN201911353246.6A patent/CN113033142B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354490A (zh) * | 2016-08-19 | 2017-01-25 | 成都卓影科技股份有限公司 | Epg页面动态布局方法 |
CN109101300A (zh) * | 2018-06-14 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 一种页面渲染方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113033142B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565293B2 (en) | Synchronizing DOM element references | |
US20130272679A1 (en) | Video Generator System | |
CN110347389B (zh) | 算法文件的处理方法、装置和系统 | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
CN110058854B (zh) | 用于生成应用的方法、终端设备和计算机可读介质 | |
CN113791765B (zh) | 云服务的资源编排方法、装置、设备及存储介质 | |
CN111506300A (zh) | 一种小程序生成方法、装置、设备及存储介质 | |
US20200007959A1 (en) | Method and apparatus for publishing information, and method and apparatus for processing information | |
CN112995743B (zh) | 视频播放方法及装置 | |
CN109905753B (zh) | 角标的显示方法和装置、存储介质、电子装置 | |
CN114253436B (zh) | 一种页面展示方法、装置及存储介质 | |
CN111327941B (zh) | 一种离线视频播放方法、装置、设备及介质 | |
CN110673886A (zh) | 用于生成热力图的方法和装置 | |
CN109558186A (zh) | 一种页面显示方法和装置 | |
CN112307378B (zh) | 网络视图展示方法 | |
CN113784194A (zh) | 一种视频播放器的嵌入方法和装置 | |
CN113628097A (zh) | 图像特效配置方法、图像识别方法、装置及电子设备 | |
CN113033142B (zh) | 一种信息流动态展示方法、装置、设备及介质 | |
CN116962807A (zh) | 视频渲染方法、装置、设备及存储介质 | |
CN114035787A (zh) | 网页构建方法、装置、电子设备、存储介质及产品 | |
CN111198676A (zh) | 资源数据的展示方法及装置、存储介质、终端 | |
CN112308074A (zh) | 用于生成缩略图的方法和装置 | |
CN112306976A (zh) | 信息处理方法、装置和电子设备 | |
CN111125501A (zh) | 用于处理信息的方法和装置 | |
CN114153539B (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 |