CN105630267A - 视图界面资源管理方法和装置 - Google Patents
视图界面资源管理方法和装置 Download PDFInfo
- Publication number
- CN105630267A CN105630267A CN201410591641.9A CN201410591641A CN105630267A CN 105630267 A CN105630267 A CN 105630267A CN 201410591641 A CN201410591641 A CN 201410591641A CN 105630267 A CN105630267 A CN 105630267A
- Authority
- CN
- China
- Prior art keywords
- view
- interface
- coordinate position
- visibility region
- container
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种视图界面资源管理方法和装置,所述方法包括:动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,并向备选视图转发该通知;根据该通知,备选视图将其在视图界面中的坐标位置与可见区域的坐标位置进行比较,并判断该坐标位置是否在可见区域的坐标位置内;若是,则加载并渲染该备选视图;若否,则回收该备选视图所占用的内存资源。采用本申请提供的方法,通过采用观察者模式,把树状结构的视图界面视为扁平结构的视图界面,使得备选视图能够从叶节点到根节点反向计算备选视图在视图界面的坐标位置,能够提高查找效率且有效减少计算量,从而达到节约计算资源的效果。
Description
技术领域
本申请涉及移动互联网技术领域,具体涉及一种视图界面资源管理方法和装置。
背景技术
随着移动互联网技术不断发展,基于移动互联网的应用也日益增多,例如:网络购物、社交媒体等,各种应用为用户提供了丰富多彩的服务。移动应用的本质是多个视图界面的集合。在原生应用中,视图界面是一个原生界面,通过客户端特有的渲染引擎显示视图界面,视图界面所占资源由客户端渲染引擎负责管理。在网页应用中,视图界面是一个网页,通过客户端浏览器显示视图界面。在混合应用中,视图界面使用HTML5网页语言和JavaScript脚本语言进行描述,视图页面的显示依赖于移动终端操作系统中的浏览器内核WebKit。
混合应用的出现使得移动客户端无需下载并安装应用程序安装包,即可实现视图界面的动态更新,且其在用户体验方面显著高于网页应用。然而,混合应用的缺点是严重依赖移动终端操作系统中的浏览器内核WebKit。WebKit是一个通用的浏览器内核,发源于传统PC浏览器技术,承载了很多传统PC上的Web技术,而其中相当一部分并不适用于无线终端,由此使得混合应用的整个技术方案的核心显得极其笨重,并暴露出很多问题。例如,性能和体验比原生应用差、对本地各种服务和资源访问受限制、无法及时使用移动终端上各种新技术等。综上所述,混合应用技术方案的本质就是把PCWeb技术搬到移动终端上,因此必然导致其承载的历史包袱过于沉重。
动态视图框架技术是一种开发移动应用的新模式。采用该模式开发的移动应用,移动终端包括一个轻量级的客户端渲染引擎,称为动态视图容器。动态视图容器为移动终端应用提供WebKit类似的功能。该渲染引擎的核心原理为:将移动应用开发过程中常用的技术脚本化,即:使用界面描述语言描述视图界面的样式,使用脚本语言描述视图界面的交互逻辑;这些描述视图界面信息的数据存储在服务端,客户端从服务端请求这些数据,并将这些数据解析处理,直接映射到各移动平台上的具体API,即生成客户端本地对象。通过采用动态视图框架技术开发的移动应用,避免了混合应用存在的严重依赖移动终端操作系统中的浏览器内核WebKit等问题,从而既有较好的用户体验,又能够达到动态更新应用的效果。
采用动态视图框架技术开发的移动应用是多个视图界面的集合。一个视图界面可以由多个子视图构成,视图界面的本质是一个树状结构的视图集。请参见图1,其为采用动态视图框架技术开发的移动应用的视图树状层次图。视图界面的最底层视图称为基础视图,是一个与视图界面的形状和大小相同的空白视图。将基础视图作为视图集的根节点,视图界面中各层次的子视图高度异构,图片、文本、线条各不相同。一个视图界面的树状结构是在应用程序编译时生成的,任何变化都依赖应用程序的版本发布。采用动态视图框架技术,在运行时服务端向客户端下发一份由描述语言描述的视图界面,客户端的动态视图容器解析视图界面的描述数据,将其动态生成一棵视图树,并最终在客户端屏幕上显示视图界面。
采用动态视图框架技术开发的移动应用,当其运行过程中构成一个视图界面的子视图数量超过一定额度时,视图界面占用的内存空间将超出客户端操作系统所能承受的上限,由此导致应用运行发生异常,甚至出现系统崩溃的情况。因此,在应用运行时需要适时对视图界面中具备内存回收价值的子视图进行资源回收,以解决单个视图界面占用内存过大的问题。综上所述,管理视图界面所占用的资源是动态视图容器的一项必不可少的工作。
在动态视图框架技术方案中,一个视图界面对应的视图树结构无法被预知。目前,采用动态视图框架技术开发的移动应用,动态视图容器管理视图界面资源的过程包括如下步骤:
1)动态视图容器或组成视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知;
2)根据通知,深度遍历视图树,自根节点向叶节点查找需要回收或渲染的视图节点,并判断这些节点是否在可见区域内,再进行相应的回收或渲染操作。
采用上述管理视图界面资源的方法,需要计算视图树中所有叶节点的坐标位置,因此将占用大量的计算资源。
综上所述,现有技术存在管理视图界面资源时大量计算资源被浪费的问题。
发明内容
本申请实施例提供一种视图界面资源管理方法和装置,以解决现有技术管理视图界面资源时大量计算资源被浪费的问题。
本申请提供一种视图界面资源管理方法,包括:
动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置;
所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图;
根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标位置内;
当在所述可见区域的坐标位置内时,加载并渲染该备选视图;
当不在所述可见区域的坐标位置内时,回收该备选视图所占用的内存资源。
可选的,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还包括:
将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
可选的,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还包括:
滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
可选的,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
可选的,在所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知之前,还包括:
将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
可选的,在所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较之前,还包括:
根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
可选的,所述计算所述备选视图在所述视图界面中的坐标位置包括:
所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置;其中,所述视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
可选的,所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置,包括:
根据所述可见区域变化通知,所述备选视图作为所述视图集的当前节点;
判断所述当前节点是否有父节点;若有,则计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,重复执行本步骤,直至所述当前节点的视图是所述基础视图,最终获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
可选的,所述视图集采用如下步骤生成:
所述动态视图容器向服务器端请求获取所述视图界面;
所述动态视图容器接收所述服务器端回送的所述视图界面;
所述动态视图容器解析所述视图界面,生成所述视图集;
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
可选的,所述备选视图是指包括图片的视图。。
本申请还提供一种视图界面资源管理装置,包括:
获取单元,用于动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置;
广播单元,用于所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图;
判断单元,用于根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标加载位置内;
加载单元,用于当在所述可见区域的坐标位置内时,加载并渲染该备选视图;
回收单元,用于当不在所述可见区域的坐标位置内时,回收该备选视图所占用的内存资源。
可选的,还包括:
第一注册单元,用于将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
可选的,还包括:
发送单元,用于滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
可选的,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
可选的,还包括:
第二注册单元,用于将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
可选的,还包括:
计算单元,用于根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
可选的,所述计算单元包括:
计算子单元,用于所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置;其中,所述视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
可选的,所述计算子单元包括:
设置子单元,用于根据所述可见区域变化通知,所述备选视图作为所述视图集的当前节点;
判断子单元,用于判断所述当前节点是否有父节点;若有,则计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,重复执行本步骤,直至所述当前节点的视图是所述基础视图,最终获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
可选的,所述视图集采用如下步骤生成:
请求单元,用于所述动态视图容器向服务器端请求获取所述视图界面;
接收单元,用于所述动态视图容器接收所述服务器端回送的所述视图界面;
生成单元,用于所述动态视图容器解析所述视图界面,生成所述视图集;
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
可选的,所述备选视图是指包括图片的视图。。
与现有技术相比,本申请实施例具有以下优点:
本申请提供的视图界面资源管理方法,通过采用观察者模式,把树状结构的视图界面视为扁平结构的视图界面,使得备选视图能够监听可见区域的变化,并根据变化通知,从叶节点到根节点反向计算备选视图在视图界面的坐标位置,并做出进行资源回收或渲染视图操作的判断,避免自根节点向叶节点方向查找可回收资源或渲染视图,能够提高查找效率且有效减少计算量,从而达到节约计算资源的效果。
附图说明
图1是采用动态视图框架技术开发的移动应用的视图树状层次图;
图2是本申请的视图界面资源管理方法实施例的流程图;
图3是本申请的视图界面资源管理方法实施例的视图布局示意图;
图4是本申请的视图界面资源管理方法实施例步骤S101之前准备步骤的具体流程图;
图5是本申请的视图界面资源管理方法实施例步骤S1031的具体流程图;
图6是本申请的视图界面资源管理方法实施例生成视图集的具体流程图;
图7是本申请的视图界面资源管理装置实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请实施例中,提供了一种视图界面资源管理方法和装置。在下面的实施例中逐一进行详细说明。
本申请实施例提供的视图界面资源管理方法,通过采用观察者模式实现事件处理系统。观察者模式又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式,是软件设计模式的一种。在观察者模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知,通常透过呼叫各观察者所提供的方法来管理各个观察者,各个观察者根据通知主动更新自己。
本申请实施例提供的视图界面资源管理方法,当备选视图监听到动态视图容器或组成所述视图界面的基础视图以广播形式统一发送的可见区域变化通知时,能够自动计算其在基础视图中的坐标位置,并判断该坐标位置是否在可见区域的坐标位置内,从而判定回收该备选视图占用的系统资源或渲染该备选视图。
请参考图2,其为本申请的视图界面资源管理方法实施例的流程图。所述方法包括如下步骤:
步骤S101:动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,并将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置。
本申请实施例中,所述基础视图可以是指与所述视图界面的形状和大小相同的空白视图。所述的动态界面容器可以是一种轻量级的渲染引擎。而所述动态界面容器的工作原理已在背景技术中作了较为详细的说明,在此不再赘述,请参见背景技术中的相应部分。
本申请实施例所述的基础视图是指与所述视图界面的形状和大小相同的空白视图,其在视图树状层次图的最底层,已在背景技术中作了较为详细的说明,在此不再赘述,请参见背景技术中的相应部分。
本申请实施例所述的视图界面是由多个子视图构成的一个用户界面,视图界面的本质是一个树状结构的视图集。视图界面在屏幕上的可见区域,是指用户通过移动终端的屏幕所观察到的整个视图界面的可见部分。请参考图3,其为本申请的视图界面资源管理方法实施例的视图布局示意图。屏幕区域是固定不变的,视图界面区域能够在可滚动区域内滚动,随着视图界面滚动的发生,视图界面在屏幕上的可见区域发生变化。需要进行资源回收或渲染处理的子视图都位于屏幕区域内。
由于动态界面容器无法直接控制移动终端屏幕的滚动,也即无法直接获取视图界面在屏幕上的可见区域在所述视图界面中的坐标位置。因此,需要通过能够直接获取可见区域的坐标位置的装置将其直接获取的可见区域的坐标位置发送给动态视图容器或基础视图。
请参考图4,其为本申请的视图界面资源管理方法实施例步骤S101之前准备步骤的具体流程图。在本实施例中,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还可包括:
步骤S403:滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
本申请实施例所述的滚动容器负责控制视图界面在移动终端屏幕的可滚动区域进行滚动动作。当移动终端屏幕发生滚动时,滚动容器获取视图界面在屏幕上的可见区域在所述视图界面中的坐标位置,并将变化后的可见区域的坐标位置通知给其监听者,即动态界面容器或基础视图。滚动容器将可见区域的坐标位置通知给动态界面容器,使得无法控制滚动的动态界面容器能够在屏幕滚动发生时控制视图界面内部的节点操作,即回收子视图占用的系统资源或渲染子视图。
在本实施例中,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
本申请实施例提供的视图界面资源管理方法,动态视图容器可以根据屏幕滚动或定时两种方式启动对视图界面资源进行管理。其中,根据屏幕滚动启动管理视图界面资源可以是,仅当屏幕发生滚动结束时,滚动容器才向其监听者发送可见区域变化通知,通知中包括变化后的可见区域坐标位置。采用定时的方式管理视图界面资源可以是,根据预设的时间间隔发送通知,通知中包括当前可见区域坐标位置。当然,也可以同时采用上述两种方式进行视图界面资源的管理。在实际应用中,根据具体需求选择相应方式实施本申请提供的视图界面资源管理方法。
本申请提供的视图界面资源管理方法,通过采用观察者模式实现事件处理系统。因此,需要预先对事件的发布者和订阅者进行相应的注册工作。为此,在本实施例中,在所述滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知之前,还可包括:
步骤S401:将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
本申请提供的动态网页更新方法,采用观察者模式实现事件处理系统。观察者模式有很多实现方式,从根本上说,该模式必须包含两个角色:观察者和被观察对象。动态视图容器管理视图界面资源时,滚动容器首先获取移动终端屏幕发生滚动后的可见区域坐标位置,然后发送包含该坐标位置的通知给动态视图容器或基础视图。因此,滚动容器是被观察对象,动态视图容器和基础视图是观察者。
同理,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还包括:
步骤S402:将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变的时候,观察者就会观察到这样的变化,并且做出相应的响应。如果在动态视图容器或基础视图与备选视图之间使用这样的观察过程,可以确保动态视图容器和备选视图之间划清界限,假定应用程序的需求发生变化,需要修改备选视图,只需要注册或删除相应的子视图即可。
本申请实施例提供的视图界面资源管理方法,实现观察者模式的时候要注意,观察者和被观察对象之间的互动关系不能体现成类之间的直接调用,否则就将使观察者和被观察对象之间紧密的耦合起来,从根本上违反面向对象的设计的原则。无论是观察者“观察”观察对象,还是被观察者将自己的改变“通知”观察者,都不应该直接调用。观察者将自己注册到被观察者的容器中时,被观察者不应该过问观察者的具体类型,而是应该使用观察者的接口。这样的优点是:假定程序中还有别的观察者,那么只要这个观察者也是相同的接口实现即可。一个被观察者可以对应多个观察者,当被观察者发生变化的时候,它可以将消息一一通知给所有的观察者。基于接口、而不是具体的实现,为程序提供了更大的灵活性。
本申请提供的视图界面资源管理方法,实现观察者模式有很多形式。在本实施例中,采用“注册、通知、撤销注册”的形式。观察者将自己注册到被观察对象中,被观察对象将观察者存放在一个容器里。当被观察对象发生了某种变化,从容器中得到所有注册过的观察者,遍历观察者,逐个将变化通知观察者。在通知观察者时,通过调用观察者的更新接口通知所有观察者更新自己。例如,更新接口为publicvoidupdate(Object...objs),在该接口中可以实现一些操作,比如重新计算备选视图在视图界面中的坐标位置等。
步骤S102:所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图。
在本实施例中,所述备选视图可以是包括图片的视图。并且所述动态视图容器或所述基础视图在向备选视图转发所述可见区域变化通知时,可以采用广播形式。
在实际应用中,一个视图界面的视图树中并非所有的叶节点都具有资源回收的价值。例如,文本视图,由于其本身占用内存非常少,因此,回收价值不高,无需对其进行资源管理。移动应用中占用最多内存的是图片二进制数据,因此,包括图片的视图具备较大的内存回收价值。当该类视图处在屏幕的不可见范围时,图片的二进制数据可以被释放;当其重新出现在屏幕可见范围时,再次加载二进制数据。因此,可以根据具体需求将部分子视图作为备选视图。
步骤S103:根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标位置内,若是,执行步骤104;若否,则执行步骤105。
在本实施例中,在所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较之前,还可包括:
步骤S1031:根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
在本实施例中,所述计算所述备选视图在所述视图界面中的坐标位置是指,所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置。
本申请实施例中的所述视图界面可以看作是一个树状结构的视图集。一个视图界面的树状结构是在应用程序编译时生成的,任何变化都依赖应用程序的版本发布。采用动态视图框架技术,在运行时向客户端下发一份由描述语言描述的视图界面,客户端的动态视图容器解析视图界面的描述数据,将其动态生成一棵视图树。视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
请参考图5,其为本申请的视图界面资源管理方法实施例步骤S1031的具体流程图。在本实施例中,所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置,具体可包括:
步骤S10311:根据所述可见区域变化通知,将所述备选视图作为所述视图集的当前节点;
步骤S10312:判断所述当前节点是否有父节点,若有,执行步骤S10313;若无,则执行步骤S10314;
步骤S10313:计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,返回步骤S10312进行递归计算,直至所述当前节点的视图是所述基础视图;
步骤S10314:获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
请参考图6,其为本申请的视图界面资源管理方法实施例生成视图集的具体流程图。在本实施例中,所述视图集可采用如下步骤生成:
步骤S601:所述动态视图容器向服务器端请求获取所述视图界面;
步骤S602:所述动态视图容器接收所述服务器端回送的所述视图界面;
步骤S603:所述动态视图容器解析所述视图界面,生成所述视图集。
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
在本实施例中,视图界面是服务端下发的包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑的用户界面。视图界面可以使用各种界面描述语言和脚本语言进行描述。界面描述语言用来描述界面样式、交互行为等信息,而脚本语言用来定义满足特定需求的功能模块,这些函数一般被界面描述数据调用。
可选的,所述界面描述语言包括XML可扩展标记语言、JSON数据交换格式、HTML超文本标记语言、XHTML可扩展超文本标记语言和HTML5超文本标记语言5。
可选的,所述脚本语言包括JavaScript脚本语言、Lua脚本语言、XML可扩展标记语言和JSON数据交换格式。
本申请提供的视图界面资源管理方法,其所管理的视图界面是由多个子视图构成的一个用户界面,视图界面的本质是一个树状结构的视图集。视图界面可以采用不同的界面描述语言和脚本语言进行描述,其既可以存储在客户端,也可以存储在服务端。上述这些采用不同语言描述的视图界面及其存储位置,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
在本实施例中,界面描述语言和脚本语言都选择了JSON数据交换格式,即视图界面是一个JSON数据交换格式描述的动态界面。因此,应用程序与具体的移动平台无关,可以在各种移动平台上使用,实现了跨平台开发。例如,服务端下发的视图界面的数据结构如下所示:
其中,libs定义了该视图界面使用的复合组件,复合组件解决了界面布局定义复用的问题。只要定义出一个复合组件,视图界面中任何地方都可以引用,而不需要在各个地方重复定义相同界面布局。libs具体格式如下所示:
其中,layout存放了整个视图界面的布局信息,用来描述该视图界面的外观,动态视图容器会将该部分数据解析映射成各个移动平台的真实界面元素,即客户端的本地对象。layout具体格式如下所示:
其中,context存放了视图界面的静态数据,如果该视图界面展示的数据不需要另外调用网络接口获取,就可以直接将静态数据放在context中,动态视图容器在使用界面数据时会从这里取。context具体格式如下所示:
其中,function包含了视图界面使用的脚本函数,如调用某个网络接口获取界面数据,响应用户点击操作跳到其他视图界面等。function具体格式如下所示:
以上给出了采用动态视图框架技术开发的视图界面的具体结构说明。客户端动态视图容器对上述的视图界面进行解析和显示,并对视图界面资源进行管理。
步骤S104:加载并渲染该备选视图。
步骤S105:回收该备选视图所占用的内存资源。
本申请提供的视图界面资源管理方法,在动态视图容器下的全部视图节点都可选择监听可见区域变化通知。将监听可见区域变化通知的视图称为备选视图。由于每一个叶节点上的视图都只感知自身与其父节点的相对位置坐标,所以,当视图接收到该可见区域变化通知后,通过反向计算方法计算视图自身在可见区域内的绝对位置,从而判断视图自身是否可见;若视图在可见范围内,则加载并渲染该视图;若否,则回收该视图所占用的内存资源。
本申请提供的视图界面资源管理方法,通过采用观察者模式,把树状结构的视图界面视为扁平结构的视图界面,使得备选视图能够监听可见区域的变化,并根据变化通知,从叶节点到根节点反向计算备选视图在视图界面的坐标位置,并做出进行资源回收或渲染视图操作的判断,避免自根节点向叶节点方向查找可回收资源或渲染视图,能够提高查找效率且有效减少计算量,从而达到节约计算资源的效果。
在上述的实施例中,提供了一种视图界面资源管理方法,与之相对应的,本申请还提供一种视图界面资源管理装置。请参看图7,其为本申请的视图界面资源管理装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种视图界面资源管理装置,包括:
获取单元101,用于动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置;
广播单元102,用于所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图;
判断单元103,用于根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标加载位置内;
加载单元104,用于当在所述可见区域的坐标位置内时,加载并渲染该备选视图;
回收单元105,用于当不在所述可见区域的坐标位置内时,回收该备选视图所占用的内存资源。
可选的,还包括:
第一注册单元,用于将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
可选的,还包括:
发送单元,用于滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
可选的,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
可选的,还包括:
第二注册单元,用于将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
可选的,还包括:
计算单元,用于根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
可选的,所述计算单元包括:
计算子单元,用于所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置;其中,所述视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
可选的,所述计算子单元包括:
设置子单元,用于根据所述可见区域变化通知,所述备选视图作为所述视图集的当前节点;
判断子单元,用于判断所述当前节点是否有父节点;若有,则计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,重复执行本步骤,直至所述当前节点的视图是所述基础视图,最终获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
可选的,所述视图集采用如下步骤生成:
请求单元,用于所述动态视图容器向服务器端请求获取所述视图界面;
接收单元,用于所述动态视图容器接收所述服务器端回送的所述视图界面;
生成单元,用于所述动态视图容器解析所述视图界面,生成所述视图集;
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
可选的,所述备选视图是指包括图片的视图。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (20)
1.一种视图界面资源管理方法,其特征在于,包括:
动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置;
所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图;
根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标位置内;
当在所述可见区域的坐标位置内时,加载并渲染该备选视图;
当不在所述可见区域的坐标位置内时,回收该备选视图所占用的内存资源。
2.根据权利要求1所述的视图界面资源管理方法,其特征在于,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还包括:
将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
3.根据权利要求1所述的视图界面资源管理方法,其特征在于,在所述动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置的变化通知之前,还包括:
滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
4.根据权利要求3所述的视图界面资源管理方法,其特征在于,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
5.根据权利要求3所述的视图界面资源管理方法,其特征在于,在所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知之前,还包括:
将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
6.根据权利要求1所述的视图界面资源管理方法,其特征在于,在所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较之前,还包括:
根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
7.根据权利要求6所述的视图界面资源管理方法,其特征在于,所述计算所述备选视图在所述视图界面中的坐标位置包括:
所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置;其中,所述视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
8.根据权利要求7所述的视图界面资源管理方法,其特征在于,所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置,包括:
根据所述可见区域变化通知,所述备选视图作为所述视图集的当前节点;
判断所述当前节点是否有父节点;若有,则计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,重复执行本步骤,直至所述当前节点的视图是所述基础视图,最终获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
9.根据权利要求7所述的视图界面资源管理方法,其特征在于,所述视图集采用如下步骤生成:
所述动态视图容器向服务器端请求获取所述视图界面;
所述动态视图容器接收所述服务器端回送的所述视图界面;
所述动态视图容器解析所述视图界面,生成所述视图集;
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
10.根据权利要求1所述的视图界面资源管理方法,其特征在于,所述备选视图是指包括图片的视图。
11.一种视图界面资源管理装置,其特征在于,包括:
获取单元,用于动态视图容器或组成所述视图界面的基础视图获取反应屏幕上的可见区域在视图界面中的坐标位置发生变化的通知,将该通知作为可见区域变化通知;所述可见区域变化通知至少包括变化后的可见区域的坐标位置;
广播单元,用于所述动态视图容器或所述基础视图向备选视图转发所述可见区域变化通知;所述备选视图包括组成所述视图界面的子视图;
判断单元,用于根据所述可见区域变化通知,所述备选视图将其在所述视图界面中的坐标位置与所述可见区域的坐标位置进行比较,并判断该坐标位置是否在所述可见区域的坐标加载位置内;
加载单元,用于当在所述可见区域的坐标位置内时,加载并渲染该备选视图;
回收单元,用于当不在所述可见区域的坐标位置内时,回收该备选视图所占用的内存资源。
12.根据权利要求11所述的视图界面资源管理装置,其特征在于,还包括:
第一注册单元,用于将所述备选视图注册为所述动态视图容器或所述基础视图的观察者。
13.根据权利要求11所述的视图界面资源管理装置,其特征在于,还包括:
发送单元,用于滚动容器向所述动态视图容器或所述基础视图发送的所述可见区域变化通知。
14.根据权利要求13所述的视图界面资源管理装置,其特征在于,当屏幕发生滚动结束时和/或根据预设的时间间隔,所述滚动容器向所述动态视图容器或所述基础视图发送所述可见区域变化通知。
15.根据权利要求13所述的视图界面资源管理装置,其特征在于,还包括:
第二注册单元,用于将所述动态视图容器或所述基础视图注册为所述滚动容器的观察者。
16.根据权利要求11所述的视图界面资源管理装置,其特征在于,还包括:
计算单元,用于根据所述可见区域变化通知,计算所述备选视图在所述视图界面中的坐标位置。
17.根据权利要求16所述的视图界面资源管理装置,其特征在于,所述计算单元包括:
计算子单元,用于所述备选视图通过其在视图集中的节点祖先进行递归计算,获取其在所述视图界面中的坐标位置;其中,所述视图集的结构是树,所述视图集的根节点是基础视图,所述视图集中至少包括两个视图,各个视图之间具有层次关系,根据每个视图相对所述基础视图的层次位置,将各个视图作为所述视图集中不同层次位置的内部节点或叶节点。
18.根据权利要求17所述的视图界面资源管理装置,其特征在于,所述计算子单元包括:
设置子单元,用于根据所述可见区域变化通知,所述备选视图作为所述视图集的当前节点;
判断子单元,用于判断所述当前节点是否有父节点;若有,则计算所述备选视图在所述当前节点坐标系的坐标位置,将所述父节点作为当前节点,重复执行本步骤,直至所述当前节点的视图是所述基础视图,最终获得所述备选视图在所述基础视图中的相对坐标位置,并作为所述备选视图在所述视图界面中的坐标位置。
19.根据权利要求17所述的视图界面资源管理装置,其特征在于,所述视图集采用如下步骤生成:
请求单元,用于所述动态视图容器向服务器端请求获取所述视图界面;
接收单元,用于所述动态视图容器接收所述服务器端回送的所述视图界面;
生成单元,用于所述动态视图容器解析所述视图界面,生成所述视图集;
其中,所述视图界面包括界面描述语言描述的界面样式和脚本语言描述的界面交互逻辑。
20.根据权利要求11所述的视图界面资源管理装置,其特征在于,所述备选视图是指包括图片的视图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410591641.9A CN105630267B (zh) | 2014-10-29 | 2014-10-29 | 视图界面资源管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410591641.9A CN105630267B (zh) | 2014-10-29 | 2014-10-29 | 视图界面资源管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630267A true CN105630267A (zh) | 2016-06-01 |
CN105630267B CN105630267B (zh) | 2019-04-12 |
Family
ID=56045281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410591641.9A Active CN105630267B (zh) | 2014-10-29 | 2014-10-29 | 视图界面资源管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630267B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107340955A (zh) * | 2017-07-07 | 2017-11-10 | 广州优视网络科技有限公司 | 获取视图在屏幕上的位置变化后的位置信息的方法和装置 |
CN107368323A (zh) * | 2017-08-18 | 2017-11-21 | 武汉票据交易中心有限公司 | 一种用于票据的时间轴绘制方法及系统 |
CN107678863A (zh) * | 2016-08-01 | 2018-02-09 | 北京国双科技有限公司 | 页面组件通讯方法及装置 |
CN108334251A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种视图复用的方法及装置 |
CN108376101A (zh) * | 2018-01-23 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN108595262A (zh) * | 2018-03-29 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 数据处理方法及装置 |
CN109324796A (zh) * | 2018-08-01 | 2019-02-12 | 浙江口碑网络技术有限公司 | 界面布局方法及装置 |
CN109960769A (zh) * | 2019-03-15 | 2019-07-02 | 广州视源电子科技股份有限公司 | 网页视图的显示方法、装置、计算机设备和存储介质 |
CN110309401A (zh) * | 2018-02-13 | 2019-10-08 | 中兴通讯股份有限公司 | 一种信息处理方法及装置 |
CN111010601A (zh) * | 2019-12-17 | 2020-04-14 | 深圳康佳电子科技有限公司 | 一种智能电视的焦点控制方法、智能电视及存储介质 |
CN112882710A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 基于客户端的渲染方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130219263A1 (en) * | 2012-02-20 | 2013-08-22 | Wixpress Ltd. | Web site design system integrating dynamic layout and dynamic content |
CN103268327A (zh) * | 2013-04-28 | 2013-08-28 | 浙江工业大学 | 面向高维服务数据的混合可视化方法 |
CN103279357A (zh) * | 2013-06-05 | 2013-09-04 | 四目信息科技(上海)有限公司 | 计算机图形界面中实现滑动轮盘控件功能的系统及其方法 |
CN103456169A (zh) * | 2012-07-18 | 2013-12-18 | 同济大学 | 城市道路交叉口全息三维动态分析方法 |
-
2014
- 2014-10-29 CN CN201410591641.9A patent/CN105630267B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130219263A1 (en) * | 2012-02-20 | 2013-08-22 | Wixpress Ltd. | Web site design system integrating dynamic layout and dynamic content |
CN103456169A (zh) * | 2012-07-18 | 2013-12-18 | 同济大学 | 城市道路交叉口全息三维动态分析方法 |
CN103268327A (zh) * | 2013-04-28 | 2013-08-28 | 浙江工业大学 | 面向高维服务数据的混合可视化方法 |
CN103279357A (zh) * | 2013-06-05 | 2013-09-04 | 四目信息科技(上海)有限公司 | 计算机图形界面中实现滑动轮盘控件功能的系统及其方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678863A (zh) * | 2016-08-01 | 2018-02-09 | 北京国双科技有限公司 | 页面组件通讯方法及装置 |
CN108334251A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种视图复用的方法及装置 |
CN107340955A (zh) * | 2017-07-07 | 2017-11-10 | 广州优视网络科技有限公司 | 获取视图在屏幕上的位置变化后的位置信息的方法和装置 |
CN107368323A (zh) * | 2017-08-18 | 2017-11-21 | 武汉票据交易中心有限公司 | 一种用于票据的时间轴绘制方法及系统 |
CN108376101B (zh) * | 2018-01-23 | 2022-06-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN108376101A (zh) * | 2018-01-23 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN110309401B (zh) * | 2018-02-13 | 2023-12-22 | 中兴通讯股份有限公司 | 一种信息处理方法及装置 |
CN110309401A (zh) * | 2018-02-13 | 2019-10-08 | 中兴通讯股份有限公司 | 一种信息处理方法及装置 |
CN108595262A (zh) * | 2018-03-29 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 数据处理方法及装置 |
CN109324796A (zh) * | 2018-08-01 | 2019-02-12 | 浙江口碑网络技术有限公司 | 界面布局方法及装置 |
CN109960769A (zh) * | 2019-03-15 | 2019-07-02 | 广州视源电子科技股份有限公司 | 网页视图的显示方法、装置、计算机设备和存储介质 |
CN111010601A (zh) * | 2019-12-17 | 2020-04-14 | 深圳康佳电子科技有限公司 | 一种智能电视的焦点控制方法、智能电视及存储介质 |
CN111010601B (zh) * | 2019-12-17 | 2022-12-20 | 深圳康佳电子科技有限公司 | 一种智能电视的焦点框控制方法、智能电视及存储介质 |
CN112882710A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 基于客户端的渲染方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105630267B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630267A (zh) | 视图界面资源管理方法和装置 | |
KR102185864B1 (ko) | 프레젠테이션을 위한 네이티브 콘텐츠의 서버측 렌더링 방법 및 시스템 | |
US11615162B2 (en) | Event listening integration in a collaborative electronic information system | |
CN103036954B (zh) | 基于gis的移动信息聚合系统及其方法 | |
CN107291523B (zh) | 一种Web前端消息总线系统 | |
CN104484189B (zh) | 一种应用界面的构建及设计方法 | |
US9049258B2 (en) | Systems and methods for anchoring content objects to structured documents | |
EP2649536B1 (en) | Codeless sharing of spreadsheet objects | |
CN105260420B (zh) | 一种用于在移动应用中提供目标页面的方法与设备 | |
US9665270B2 (en) | Layout algorithm for entity relation model diagram | |
CN105069132A (zh) | 一种基于静态外壳的网页实现方法 | |
KR20200035491A (ko) | 지도 인터페이스들의 지연시간 단축 | |
CN105389315A (zh) | 一种动态网页更新方法及装置 | |
CN102455892B (zh) | 用于实现微博消息页的方法和装置 | |
CN101944032A (zh) | 一种微件更新的方法及客户端、服务器及系统 | |
US20200394055A1 (en) | System and method for providing a configurable user interface using a self-describing data system | |
CN111061883A (zh) | 更新知识图谱的方法、装置、设备及存储介质 | |
CN106408489A (zh) | 精准扶贫信息处理方法及装置 | |
CN103176993A (zh) | 一种内容呈现设备和方法 | |
CN114461209A (zh) | 页面配置与切换方法、装置、设备及存储介质 | |
US8566408B2 (en) | Method and system for providing a stateful experience while accessing content using a global textsite platform | |
US20110074767A1 (en) | Generation of Composite Spatial Representations | |
CN104461893A (zh) | 数据处理方法与数据处理装置 | |
CN114637499B (zh) | 可视化组件处理方法、装置、设备及介质 | |
CN106998350B (zh) | 基于跨用户消息的功能项使用框架的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1225460 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |