一种界面处理方法、装置和智能终端与流程

文档序号:11653958阅读:190来源:国知局
一种界面处理方法、装置和智能终端与流程

本申请涉及信息处理技术领域,特别是涉及一种界面处理方法、一种界面处理装置和一种智能终端。



背景技术:

随着手机、平板电脑、智能电视等智能终端的不断普及,人机交互方式大大方便了用户操作。同时,ui(用户界面,userinterface)在app(应用程序,applicationprogram)的人机交互中起到了重要的作用,以及,渲染引擎在app中也扮演着越来越重要的地位,先进的渲染技术能够带来更好的用户体验。

现有一种渲染方案1可以按照开发者的布局顺序依次同步渲染界面元素,直至将所有的界面元素渲染完成。然而,在ui所包含界面元素的数目较多,或者ui所包括图片的尺寸较大时,该渲染方案1具有响应速度慢的缺点,这样将容易出现用户面对单一的屏幕等待渲染完成的现象。

为了避免出现用户面对单一的屏幕等待渲染完成的现象,现有一种渲染方案2可以在app启动后,提前显示一帧静态内容,同时在后台进行ui渲染,并在ui渲染完毕后用实际的ui替换上述静态内容。其中,上述静态内容通常为开发者事先设定的、大多是情况下是图片。

然而,在实际应用中,有时会遇到这样的问题:上述静态内容与实际的ui没有关联的现象,这样将使用户感受到ui的跳跃,从而影响到ui的渲染效果。



技术实现要素:

本申请实施例所要解决的技术问题是提供一种界面处理方法,可以快速输出与目标ui相关联的ui内容,从而能够提高ui的渲染效果。

相应的,本申请实施例还提供了一种界面处理装置和一种智能终端,用以保证上述方法的实现及应用。

为了解决上述问题,本申请公开了一种界面处理方法,包括:

针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

对所述第一界面元素进行优先渲染;

输出所述第一界面元素的渲染结果。

可选的,所述预置优先条件包括:用于表征第一界面元素与目标ui的布局相关的布局相关条件,则所述获取符合预置优先条件的第一界面元素的步骤,包括:

通过调用第一预置接口,获取符合所述布局相关条件的第一界面元素;和/或

依据所述目标ui的数据,获取第一预置标记为布局相关标记的界面元素,作为第一界面元素;和/或

依据所述目标ui的布局文件和/或布局代码,获取与所述目标ui的布局相关的第一界面元素。

可选的,所述预置优先条件包括:用于表征第一界面元素与用户相关的用户相关条件,则所述获取符合预置优先条件的第一界面元素的步骤,包括:

通过调用第二预置接口,获取符合所述用户相关条件的第一界面元素;和/或

依据所述目标ui的数据,获取第二预置标记为用户相关标记的界面元素,作为第一界面元素。

可选的,所述符合所述用户相关条件的第一界面元素包括:根据用户习惯确定出的界面元素。

可选的,所述预置优先条件包括:底色条件,或者,所述预置优先条件包括:背景条件。

可选的,所述方法还包括:

针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

对所述第二界面元素进行渲染;

输出所述第二界面元素的渲染结果。

可选的,所述对所述第二界面元素进行渲染的步骤,包括:

将所述第二界面元素对应的渲染任务写入第一渲染队列;

利用多线程执行所述第一渲染队列中渲染任务;

接收所述多线程发送的、所述渲染任务的渲染结果。

可选的,所述利用多线程执行所述第一渲染队列中渲染任务的步骤,包括:

各线程在处于空闲状态时,扫描所述第一渲染队列;以及

在扫描到新的渲染任务时,从所述第一渲染队列中读取并执行所述新的渲染任务。

可选的,所述对所述第二界面元素进行渲染的步骤,包括:

针对所述第二界面元素对应的支持分解的渲染任务,将其分解为多个渲染子任务;

将所述多个渲染子任务写入第二渲染队列;

利用多线程执行所述第二渲染队列中渲染子任务;

接收所述多线程发送的、所述渲染子任务的渲染结果。

可选的,所述利用多线程执行所述第二渲染队列中渲染子任务的步骤,包括:

各线程在处于空闲状态时,扫描所述第二渲染队列;以及

在扫描到新的渲染子任务时,从所述第二渲染队列中读取并执行所述新的渲染子任务。

可选的,所述方法由主线程执行,则所述对所述第二界面元素进行渲染的步骤,还包括:

主线程在完成所述第一界面元素的渲染后,对不支持分解的渲染任务进行渲染。

可选的,所述针对待渲染的目标ui,获取符合预置优先条件的第一界面元素,包括:

加载待渲染的目标ui的界面元素,并在每次加载界面元素后,执行:

判断当前界面元素是否符合预置优先条件;

在所述当前界面元素符合预置优先条件时,获取符合预置优先条件的第一界面元素。

可选的,所述方法还包括:

在所述当前界面元素不符合预置优先条件时,将所述当前界面元素作为第二界面元素进行渲染,其中,所述第二界面元素的渲染与所述第一渲染界面的渲染相互独立,或者,所述第一界面元素的渲染优先于所述第二界面元素的渲染。

可选的,所述将所述当前界面元素作为第二界面元素进行渲染,包括:

将所述当前界面元素对应的渲染任务写入渲染队列,并利用多线程执行所述渲染队列中的渲染任务。

另一方面,本申请公开了一种界面处理装置,包括:

第一获取模块,用于针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

第一渲染模块,用于对所述第一界面元素进行优先渲染;以及

第一输出模块,用于输出所述第一界面元素的渲染结果。

可选的,所述预置优先条件包括:用于表征第一界面元素与目标ui的布局相关的布局相关条件,则所述第一获取模块,包括:

第一获取子模块,用于通过调用第一预置接口,获取符合所述布局相关条件的第一界面元素;和/或

第二获取子模块,用于依据所述目标ui的数据,获取第一预置标记为布局相关标记的界面元素,作为第一界面元素;和/或

第三获取子模块,用于依据所述目标ui的布局文件和/或布局代码,获取与所述目标ui的布局相关的第一界面元素。

可选的,所述预置优先条件包括:用于表征第一界面元素与用户相关的用户相关条件,则所述第一获取模块,包括:

第四获取子模块,用于通过调用第二预置接口,获取符合所述用户相关条件的第一界面元素;和/或

第五获取子模块,用于依据所述目标ui的数据,获取第二预置标记为用户相关标记的界面元素,作为第一界面元素。

可选的,所述预置优先条件包括:底色条件,或者,所述预置优先条件包括:背景条件。

可选的,所述装置还包括:

第二获取模块,用于针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

第二渲染模块,用于对所述第二界面元素进行渲染;

第二输出模块,用于输出所述第二界面元素的渲染结果。

再一方面,本申请公开了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

对所述第一界面元素进行优先渲染;

输出所述第一界面元素的渲染结果。

与现有技术相比,本申请实施例包括以下优点:

本申请实施例针对待渲染的目标ui,对其符合预置优先条件的第一界面元素进行优先渲染;由于在第一界面元素渲染完毕后可以立即输出所述第一界面元素的渲染结果;因此,本申请实施例可以快速输出与目标ui相关联的ui内容,从而能够提高ui的渲染效果。

并且,本申请实施例还可以对不符合预置优先条件的第二界面元素进行渲染,并输出所述第二界面元素的渲染结果;由于第一界面元素和第二界面元素同为目标ui中的界面元素,故其渲染结果也存在较高的相关性,这样,在不同时刻输出的第一界面元素和第二界面元素的渲染结果,可以呈现增量显示的效果,并不会造成ui的跳跃,因此能够提高ui的渲染效果和对应的用户体验。

另外,本申请实施例还可以将部分第一界面元素、以及第二界面元素对应的渲染任务通过多线程并行执行;因此,能够大大提升渲染速度和渲染效率。在目标ui为app的启动界面时,还可以提高app的启动速度。

附图说明

图1是本申请的一种界面处理方法的应用环境的结构示意图;

图2是本申请的一种界面处理方法实施例一的步骤流程图;

图3是本申请的一种界面处理方法实施例二的步骤流程图;

图4是本申请的一种界面处理方法实施例三的步骤流程图;

图5是本申请的一种界面处理方法实施例四的步骤流程图;

图6是本申请的一种界面处理方法实施例五的步骤流程图;

图7是本申请的一种界面处理方法实施例六的步骤流程图;

图8是本申请的一种界面处理装置实施例一的结构框图;

图9是本申请的一种界面处理装置实施例二的结构框图;以及

图10是本申请的一种智能终端实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

现有方案在app启动后提前显示一帧静态内容,同时在后台进行ui渲染,并在ui渲染完毕后用实际的ui替换上述静态内容。现有方案容易出现上述静态图片与ui没有关联的问题,从而影响到ui的渲染效果。

本申请实施例的核心构思之一在于,针对待渲染的目标ui,对其符合预置优先条件的第一界面元素进行优先渲染。由于上述第一界面元素为目标ui中的界面元素,故其与目标ui具有一定的关联,并且,由于在第一界面元素渲染完毕后可以立即输出所述第一界面元素的渲染结果;因此,本申请实施例可以快速输出与目标ui相关联的ui内容,从而能够提高ui的渲染效果。

在本申请的一种应用示例中,假设目标ui为微信app的启动界面1,而该启动界面1的界面元素具体可以包括:一个listview控件、以及该listview控件中所包括的多个历史对话;虽然,完成该启动界面1的所有界面元素的渲染需要花费较多的时间,但是,一个空的listview控件的布局效果渲染速度较快,甚至快于一帧静态图片的渲染速度,因此,本申请实施例不仅可以提高呈现ui内容的速度,而且还可以提供与目标ui相关联的ui。

需要说明的是,在第一界面元素的渲染过程中、或者完成第一界面元素的渲染后,本申请实施例还可以对不符合预置优先条件的第二界面元素进行渲染,并输出所述第二界面元素的渲染结果。由于第一界面元素和第二界面元素同为目标ui中的界面元素,故其渲染结果也存在较高的相关性,这样,在不同时刻输出的第一界面元素和第二界面元素的渲染结果,可以呈现增量显示的效果,并不会造成ui的跳跃,因此能够提高ui的渲染效果和对应的用户体验。

本申请实施例提供的界面处理方法可应用于图1所示的应用环境中。如图1所示,客户端100与服务器200可以位于有线或无线网络中,通过该有线或无线网络,客户端100与服务器200进行数据交互。或者,客户端100与服务器200可以运行在同一智能终端上,通过ipc(进程间通信,inter-processcommunication)方式,客户端100与服务器200进行数据交互。或者,客户端100与服务器200可以运行在同一智能终端的同一进程中,通过线程间通信方式,客户端100与服务器200进行数据交互,例如,在上述服务器200位于某应用程序的渲染线程或者渲染引擎线程时,上述客户端100可以位于该应用程序的gui(图形用户接口,graphicaluserinterface)线程。可以理解,本申请实施例对于客户端100与服务器200的数据交互方式不加以限制。

在实际应用中,上述智能终端具体包括但不限:智能手机、平板电脑、电子书阅读器、mp3(动态影像专家压缩标准音频层面3,movingpictureexpertsgroupaudiolayeriii)播放器、mp4(动态影像专家压缩标准音频层面4,movingpictureexpertsgroupaudiolayeriv)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。

在本申请的一种可选实施例中,客户端100与服务器200之间的数据交互过程具体可以包括如下步骤:

步骤a1、客户端100向服务器200发送处理请求,并在该处理请求中携带目标ui的地址信息等信息;

步骤a2、服务器200依据目标ui的地址信息,获取目标ui的界面元素;

步骤a3、服务器200从目标ui的所有界面元素中,获取符合预置优先条件的第一界面元素;

步骤a4、服务器200对所述第一界面元素进行优先渲染,并输出所述第一界面元素的渲染结果;

其中,所述第一界面元素的数目可以为一个或者多个,在每个第一界面元素被渲染完毕时,都可以输出对应的渲染结果。

步骤a5、服务器200对不符合预置优先条件的第二界面元素进行渲染,并输出所述第二界面元素的渲染结果。

需要说明的是,图1所示的应用环境只是作为本申请的应用环境的示例,而不理解为本申请实施例对于应用环境的限制。本申请实施例的一个目的在于,针对待渲染的目标ui,对其符合预置优先条件的第一界面元素进行优先渲染,由此可以快速输出与目标ui相关联的ui内容,而不会对具体的应用环境加以限制。

方法实施例一

参照图2,示出了本申请的一种界面处理方法实施例一的步骤流程图,具体可以包括如下步骤:

步骤201、针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

在实际应用中,目标ui可以为app的启动界面,也可以为app的中间界面;并且,目标ui中界面元素的类型具体可以包括:图片类型、视频类型、控件类型、文本类型等,本申请实施例对于具体的目标ui及其中界面元素的具体类型不加以限制。

本申请实施例中,预置优先条件可用于表示优先渲染的界面元素所符合的条件,由此,第一界面元素可用于表示目标ui中优先渲染的界面元素。

本申请实施例可以提供预置优先条件的如下技术方案:

技术方案1、

技术方案1中,第一界面元素可用于表示与目标ui的布局相关的界面元素。如微信app的启动界面1中listview控件就是与其布局相关的界面元素,而该启动界面1中的历史会话则是与具体的布局内容相关的界面内容;故本申请实施例可以对listview控件进行优先渲染,以首先向用户呈现目标ui的布局,接着向用户呈现具体布局内容,上述呈现顺序与用户的视觉顺序一致,因此能够提高目标ui的渲染效果。

在实际应用中,所述预置优先条件具体可以包括:用于表征第一界面元素与目标ui的布局相关的布局相关条件,则所述获取符合预置优先条件的第一界面元素的步骤201,具体可以包括如下步骤中的至少一种:

步骤b1、通过调用第一预置接口,获取符合所述布局相关条件的第一界面元素;

其中,步骤b1中第一预置接口可以为开发者提供的接口,以使渲染引擎通过调用该第一预置接口获取目标ui中的第一界面元素。

步骤b2、依据所述目标ui的数据,获取第一预置标记为布局相关标记的界面元素,作为第一界面元素;

其中,步骤b2中第一预置标记可以为开发者设计的标记,以使渲染引擎通过该第一预置标记获取目标ui中的第一界面元素。在本申请的一种可选实施例中,每个界面元素都可以具有对应的第一预置标记,其值为1可表示其为布局相关标记,其值为0可用于其不为布局相关标记。在本申请的另一种可选实施例中,可以根据是否存在界面元素对应的第一预置标记,确定当前界面元素是否为第一界面元素。可以理解,本申请实施例对于当前界面元素是否为第一界面元素的具体确定过程不加以限制。

步骤b3、依据所述目标ui的布局文件和/或布局代码,获取与所述目标ui的布局相关的第一界面元素。

步骤b3可以分析目标ui的布局文件和/或布局代码,并基于分析结果获取与所述目标ui的布局相关的第一界面元素。在本申请的一种可选实施例中,布局文件或布局代码中可以包括目标ui的布局描述信息,例如,该布局描述信息具体可以包括:与布局相关的第一界面元素的id(标识, identity)和布局参数等信息,则可以基于id的匹配获取与所述目标ui的布局相关的第一界面元素。可以理解,本申请实施例对于布局文件和/或布局代码的具体分析过程不加以限制。

技术方案2、

技术方案2中,符合所述用户相关条件的第一界面元素可用于表示与当前用户相关的界面元素。上述当前用户相关的界面元素具体可以包括:根据当前用户的兴趣标签或用户习惯确定出的界面元素。其中,上述兴趣标签或用户习惯可以依据当前用户的历史行为数据得到。

例如,微信app的启动界面1中历史会话通常包括多个联系人的历史会话,则可以依据联系人与当前用户的亲密度、联系频率等因素,确定与当前用户最亲密的目标联系人,并将该目标联系人对应的历史会话作为第一界面元素。

又如,淘宝app的启动界面2具体可以包括:“扫一扫”、“搜索框”、“聚划算”等部分对应的界面元素,假设当前用户在最近一段时间内习惯性地在打开淘宝app后、点击“聚划算”部分,则可以将“聚划算”部分对应的界面元素作为第一界面元素。

可以理解,上述获取上述当前用户相关的界面元素的过程只是作为示例,本领域技术人员可以根据兴趣标签或者用户习惯确定出任意的界面元素,本申请实施例对于符合所述用户相关条件的第一界面元素的具体获取过程不加以限制。

在实际应用中,所述预置优先条件具体可以包括:用于表征第一界面元素与用户相关的用户相关条件,则所述获取符合预置优先条件的第一界面元素的步骤201,具体可以包括:

步骤c1、通过调用第二预置接口,获取符合所述用户相关条件的第一界面元素;和/或

步骤c2、依据所述目标ui的数据,获取第二预置标记为用户相关标记的界面元素,作为第一界面元素。

其中,步骤c1中第二预置接口可以为开发者提供的接口,以使渲染引擎通过调用该第二预置接口获取目标ui中的第一界面元素。步骤c2中第二 预置标记可以为开发者设计的标记,以使渲染引擎通过该第二预置标记获取目标ui中的第一界面元素。可以理解,本申请实施例对于与当前用户相关的界面元素的具体获取过程不加以限制。

技术方案3

技术方案3中,所述预置优先条件具体可以包括:底色条件,或者,所述预置优先条件包括:背景条件。其中,上述底色条件可以使得优先输出目标ui的底色,上述背景条件可以使得优先输出目标ui的背景图像。

以上通过技术方案1-技术方案3对预置优先条件进行了详细介绍,可以理解,本领域技术人员根据实际应用需求采用任意的预置优先条件。例如,在采用数据量小于阈值的第一界面元素对应的预置优先条件时,可以提高ui内容的呈现速度;又如,在采用视觉顺序较优的第一界面元素对应的预置优先条件时,可以提高呈现内容与视觉顺序的一致性等。

在本申请的一种可选实施例中,所述针对待渲染的目标ui,获取符合预置优先条件的第一界面元素的步骤201,具体可以包括:

加载待渲染的目标ui的界面元素,并在每次加载界面元素后,执行:

判断当前界面元素是否符合预置优先条件;

在所述当前界面元素符合预置优先条件时,获取符合预置优先条件的第一界面元素。也即,可以将当前界面元素作为第一界面元素。

步骤202、对所述第一界面元素进行优先渲染;

在本申请的一种可选实施例中,当第一界面元素对应的渲染任务支持分解时,可以将该渲染任务分解为多个渲染子任务,并利用多线程执行所述渲染子任务;由此可以提高第一界面元素的渲染速度及对应渲染结果的呈现速度。

在本申请的另一种可选实施例中,当第一界面元素的数目为多个时,可以利用多线程对该多个第一界面元素进行异步处理,由此可以提高第一界面元素的渲染速度及对应渲染结果的呈现速度。

可以理解,本申请实施例对于第一界面元素的具体渲染过程不加以限制。

步骤203、输出所述第一界面元素的渲染结果。

在实际应用中,服务器可以将所述第一界面元素的渲染结果输出给客户端,以使客户端在智能终端上对其进行展示。或者,渲染引擎可以直接在智能终端上展示所述第一界面元素的渲染结果。可以理解,本申请实施例对于输出所述第一界面元素的渲染结果的具体过程不加以限制。

综上,本申请实施例针对待渲染的目标ui,对其符合预置优先条件的第一界面元素进行优先渲染。由于上述第一界面元素为目标ui中的界面元素,故其与目标ui具有一定的关联,并且,由于在第一界面元素渲染完毕后可以立即输出所述第一界面元素的渲染结果;因此,本申请实施例可以快速输出与目标ui相关联的ui内容,从而能够提高ui的渲染效果。

方法实施例二

参照图3,示出了本申请的一种界面处理方法实施例二的步骤流程图,具体可以包括如下步骤:

步骤301、针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

步骤302、对所述第一界面元素进行优先渲染;

步骤303、输出所述第一界面元素的渲染结果;

相对于图2所示方法实施例一,本实施例的方法还可以包括:

步骤304、针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

步骤305、对所述第二界面元素进行渲染;

步骤306、输出所述第二界面元素的渲染结果。

在实际应用中,步骤305的执行时机具体可以包括:在第一界面元素的渲染过程中、或者完成第一界面元素的渲染后。其中,在第一界面元素的渲染过程中,可以采用与第一界面元素的渲染线程不同的线程进行第二界面元素的渲染。可以理解,本申请实施例对于步骤305的具体执行时机不加以限制。

在本申请实施例的一种可选实施例中,可以对不符合预置优先条件的第二界面元素进行异步渲染,相对于现有界面元素的同步渲染,上述第二界面 元素的异步渲染可以使得不同的第二界面元素对应的渲染独立执行,因此能够提高渲染效率。

综上,应用本申请实施例,由于第一界面元素和第二界面元素同为目标ui中的界面元素,故二者的渲染结果也存在较高的相关性,这样,在不同时刻输出的第一界面元素和第二界面元素的渲染结果,可以呈现增量显示的效果,并不会造成ui的跳跃,因此能够提高ui的渲染效果和对应的用户体验。

在本申请的一种可选实施例中,本申请的界面处理方法具体可以包括如下步骤:

步骤s1、加载待渲染的目标ui的界面元素;

步骤s2、在每次加载界面元素后,判断当前界面元素是否符合预置优先条件;

步骤s3、在所述当前界面元素符合预置优先条件时,获取符合预置优先条件的第一界面元素;

步骤s4、在所述当前界面元素不符合预置优先条件时,将所述当前界面元素作为第二界面元素进行渲染,其中,所述第二界面元素的渲染与所述第一渲染界面的渲染相互独立,或者,所述第一界面元素的渲染优先于所述第二界面元素的渲染。

步骤s4中,第二界面元素的渲染与所述第一渲染界面的渲染相互独立可用于表示第二界面元素的渲染与所述第一渲染界面的渲染被异步执行,因此可以提高界面元素的渲染速度及对应渲染结果的呈现速度。或者,第二界面元素的渲染与所述第一渲染界面的渲染也可被同步执行,但第一界面元素的渲染优先于所述第二界面元素的渲染,例如,可以首先执行第一界面元素的渲染,并在第一界面的渲染被执行完毕后,执行第二界面元素的渲染。

在本申请的另一种可选实施例中,所述将所述当前界面元素作为第二界面元素进行渲染,具体可以包括:将所述当前界面元素对应的渲染任务写入渲染队列,并利用多线程执行所述渲染队列中的渲染任务。本优选实施例可以通过多线程并行执行渲染队列中渲染任务;因此,能够大大提升渲染速度和渲染效率。

方法实施例三

参照图4,示出了本申请的一种界面处理方法实施例三的步骤流程图,具体可以包括如下步骤:

步骤401、针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

步骤402、对所述第一界面元素进行优先渲染;

步骤403、输出所述第一界面元素的渲染结果;

步骤404、针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

步骤405、对所述第二界面元素进行渲染;

步骤406、输出所述第二界面元素的渲染结果;

相对于图3所示方法实施例二,本实施例中对所述第二界面元素进行渲染的步骤405,具体可以包括:

步骤451、将所述第二界面元素对应的渲染任务写入第一渲染队列;

步骤452、利用多线程执行所述第一渲染队列中渲染任务;

步骤453、接收所述多线程发送的、所述渲染任务的渲染结果。

现有方案按照开发者的布局顺序依次渲染界面元素,具体地,首先渲染第一个界面元素,在第一个界面元素的渲染完毕后继续渲染第二个界面元素,依次类推,在第一个界面元素涉及较多的数据量时,将严重影响ui的渲染速度。

而本申请实施例可以通过多线程并行执行第一渲染队列中渲染任务;因此,能够大大提升渲染速度和渲染效率。在目标ui为app的启动界面时,还可以提高app的启动速度。

在本申请的一种可选实施例中,所述利用多线程执行所述第一渲染队列中渲染任务的步骤452,具体可以包括:

步骤d1、各线程在处于空闲状态时,扫描所述第一渲染队列;以及

步骤d2、在扫描到新的渲染任务时,从所述第一渲染队列中读取并执行所述新的渲染任务。

本可选实施例中,由于处于空闲状态的线程可以无限制地从所述第一渲 染队列中读取并执行渲染任务,因此,能够实现多线程对于多个渲染任务的抢占式和连续执行,从而最大可能地提高渲染任务的执行效率。

可以理解,上述多线程对于多个渲染任务的抢占式和连续执行只是作为可选实施例,实际上,还可以依据多个渲染任务的执行顺序指定对应的线程,本申请实施例对于利用多线程执行所述第一渲染队列中渲染任务的具体过程不加以限制。

方法实施例四

参照图5,示出了本申请的一种界面处理方法实施例四的步骤流程图,具体可以包括如下步骤:

步骤501、针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

步骤502、对所述第一界面元素进行优先渲染;

步骤503、输出所述第一界面元素的渲染结果;

步骤504、针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

步骤505、对所述第二界面元素进行渲染;

步骤506、输出所述第二界面元素的渲染结果;

相对于图4所示方法实施例三,本实施例中对所述第二界面元素进行渲染的步骤505,具体可以包括:

步骤551、针对所述第二界面元素对应的支持分解的渲染任务,将其分解为多个渲染子任务;

步骤552、将所述多个渲染子任务写入第二渲染队列;

步骤553、利用多线程执行所述第二渲染队列中渲染子任务;

步骤554、接收所述多线程发送的、所述渲染子任务的渲染结果。

本实施例可以适用于支持分解的渲染任务的并行执行,以提高渲染任务的执行速度。

在实际应用中,所述支持分解的渲染任务具体可以包括:图片元素、视频元素、文本元素等界面元素对应的渲染任务。以图片元素对应的渲染任务 为例,其具体可以包括:读取图片内存到内存并完成解码的解码任务、以及依据解码结果生成纹理内容的生成任务,其中,解码任务可以支持分解。可以理解,本申请实施例对于支持分解的渲染任务不加以限制。

在本申请的一种可选实施例中,所述利用多线程执行所述第二渲染队列中渲染子任务的步骤553,具体可以包括:

步骤e1、各线程在处于空闲状态时,扫描所述第二渲染队列;以及

步骤e2、在扫描到新的渲染子任务时,从所述第二渲染队列中读取并执行所述新的渲染子任务。

本可选实施例中,由于处于空闲状态的线程可以无限制地从所述第二渲染队列中读取并执行渲染子任务,因此,能够实现多线程对于多个渲染子任务的抢占式和连续执行,从而最大可能地提高渲染任务的执行效率。

可以理解,上述多线程对于多个渲染子任务的抢占式和连续执行只是作为可选实施例,实际上,还可以依据多个渲染子任务的执行顺序指定对应的线程,本申请实施例对于利用多线程执行所述第二渲染队列中渲染子任务的具体过程不加以限制。

方法实施例五

参照图6,示出了本申请的一种界面处理方法实施例五的步骤流程图,具体可以包括如下步骤:

步骤601、主线程针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

步骤602、主线程对所述第一界面元素进行优先渲染;

步骤603、主线程输出所述第一界面元素的渲染结果;

步骤604、主线程针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

步骤605、主线程对所述第二界面元素进行渲染;

步骤606、主线程输出所述第二界面元素的渲染结果;

对所述第二界面元素进行渲染的步骤605,具体可以包括:

步骤651、主线程针对所述第二界面元素对应的支持分解的渲染任务, 将其分解为多个渲染子任务;

步骤652、主线程将所述多个渲染子任务写入第二渲染队列;

步骤653、主线程利用多线程执行所述第二渲染队列中渲染子任务;

步骤654、主线程接收所述多线程发送的、所述渲染子任务的渲染结果。

步骤655、主线程在完成所述第一界面元素的渲染后,对不支持分解的渲染任务进行渲染。

相对于图5所示方法实施例三,本实施例的方法可由主线程执行,也即,主线程不仅可以执行对所述第一界面元素进行优先渲染的步骤602,还可以执行渲染子任务的生产,以通过其他的多线程消费这些渲染子任务;并且,子线程在完成第一界面元素的渲染后,还可以对不支持分解的渲染任务进行渲染;由于可以避免主线程空闲所导致的资源浪费的情形,因此可以提高资源利用率、以及能够提高渲染效率。

在实际应用中,主线程可以表示用于界面处理的主要线程,例如,其可以为渲染引擎的主线程。而多线程可以表示主线程开启的用于并行执行渲染子任务的辅助线程。可以理解,本申请实施例对于具体的主线程和辅助线程不加以限制。

在本申请的一种可选实施例中,所述对所述第二界面元素进行渲染的步骤605,还可以包括:主线程在完成不支持分解的渲染任务后,执行所述第二渲染队列中渲染子任务。由于可以避免主线程空闲所导致的资源浪费的情形,因此可以进一步提高资源利用率、以及能够进一步提高渲染效率。

方法实施例六

参照图7,示出了本申请的一种界面处理方法实施例六的步骤流程图,具体可以包括如下步骤:

步骤701、主线程获取目标ui的数据;

步骤702、主线程依据目标ui的数据,对目标ui的界面元素进行遍历;

步骤703、主线程判断当前界面元素是否符合预置优先条件,若是,则执行步骤704,否则执行步骤705;

步骤704、主线程将当前界面元素作为第一界面元素,对所述第一界面 元素进行优先渲染,并输出所述第一界面元素的渲染结果;

步骤705、主线程将当前界面元素作为第二界面元素;

步骤706、主线程判断上述第二界面元素对应的渲染任务是否支持分解,若是,则执行步骤707,否则执行步骤708;

步骤707、主线程针对所述第二界面元素对应的支持分解的渲染任务,将其分解为多个渲染子任务,将所述多个渲染子任务写入第二渲染队列,利用多个第二线程执行所述第二渲染队列中渲染子任务,并接收多个第二线程发送的、所述渲染子任务的渲染结果;

步骤708、主线程将上述第二界面元素对应的渲染任务写入第一渲染队列,利用多个第一线程执行所述第一渲染队列中渲染任务,接收多个第一线程发送的、所述渲染任务的渲染结果,并输出所述第二界面元素的渲染结果;

需要说明的是,主线程在通过步骤704或步骤705-步骤706-步骤707或步骤705-步骤706-步骤708对当前界面元素进行处理后,继续返回步骤703对下一界面元素进行处理;

步骤709、主线程在完成目标ui中所有第一界面元素的渲染后,判断第一渲染队列是否为空,若否,则执行步骤710,若是则执行步骤711;

步骤710、主线程对第一渲染队列中渲染任务进行渲染,并输出对应的渲染结果;

步骤711、主线程判断第二渲染队列是否为空,若否,则执行步骤712,若是则执行步骤713;

步骤712、主线程对第二渲染队列中渲染子任务进行渲染,并输出对应的渲染结果;

步骤713、完成目标ui中所有界面元素的渲染。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

装置实施例一

参照图8,示出了本申请的一种界面处理装置实施例一的结构框图,具体可以包括如下模块:

第一获取模块801,用于针对待渲染的目标ui,获取符合预置优先条件的第一界面元素;

第一渲染模块802,用于对所述第一界面元素进行优先渲染;以及

第一输出模块803,用于输出所述第一界面元素的渲染结果。

在本申请的一种可选实施例中,所述预置优先条件具体可以包括:用于表征第一界面元素与目标ui的布局相关的布局相关条件,则所述第一获取模块801,具体可以包括:

第一获取子模块,用于通过调用第一预置接口,获取符合所述布局相关条件的第一界面元素;和/或

第二获取子模块,用于依据所述目标ui的数据,获取第一预置标记为布局相关标记的界面元素,作为第一界面元素;和/或

第三获取子模块,用于依据所述目标ui的布局文件和/或布局代码,获取与所述目标ui的布局相关的第一界面元素。

在本申请的另一种可选实施例中,所述预置优先条件具体可以包括:用于表征第一界面元素与用户相关的用户相关条件,则所述第一获取模块801,具体可以包括:

第四获取子模块,用于通过调用第二预置接口,获取符合所述用户相关条件的第一界面元素;和/或

第五获取子模块,用于依据所述目标ui的数据,获取第二预置标记为用户相关标记的界面元素,作为第一界面元素。

在本申请的再一种可选实施例中,所述预置优先条件具体可以包括:底色条件,或者,所述预置优先条件具体可以包括:背景条件。

装置实施例二

参照图9,示出了本申请的一种界面处理装置实施例二的结构框图,具体可以包括如下模块:

第一获取模块901,用于针对待渲染的目标ui,获取符合预置优先条件 的第一界面元素;

第一渲染模块902,用于对所述第一界面元素进行优先渲染;

第一输出模块903,用于输出所述第一界面元素的渲染结果;

第二获取模块904,用于针对待渲染的目标ui,获取不符合预置优先条件的第二界面元素;

第二渲染模块905,用于对所述第二界面元素进行渲染;

第二输出模块906,用于输出所述第二界面元素的渲染结果。

在本申请的一种可选实施例中,所述第二渲染模块905,具体可以包括:

第一写入子模块,用于将所述第二界面元素对应的渲染任务写入第一渲染队列;

第一执行子模块,用于利用多线程执行所述第一渲染队列中渲染任务;以及

第一接收子模块,用于接收所述多线程发送的、所述渲染任务的渲染结果。

在本申请的另一种可选实施例中,所述第二渲染模块905,具体可以包括:

分解子模块,用于针对所述第二界面元素对应的支持分解的渲染任务,将其分解为多个渲染子任务;

第二写入子模块,用于将所述多个渲染子任务写入第二渲染队列;

第二执行子模块,用于利用多线程执行所述第二渲染队列中渲染子任务;以及

第二接收子模块,用于接收所述多线程发送的、所述渲染子任务的渲染结果。

在本申请的再一种可选实施例中,所述装置可以位于主线程,则所述装置还可以包括:

第三渲染模块,用于在完成所述第一界面元素的渲染后,对不支持分解的渲染任务进行渲染。

在本申请的又一种可选实施例中,所述装置还可以包括:

第四渲染模块,用于在完成不支持分解的渲染任务后,执行所述第二渲 染队列中渲染子任务。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

智能终端实施例

参照图10,示出了本申请一种智能终端实施例的结构框图,具体可以包括:至少一个存储器1001、显示器1002、至少一个处理器1003和至少一个输入单元1004。

其中,该输入单元1004可用于接收用户输入的数字或字符信息,以及控制信号。具体地,本申请实施例中,该输入单元1004可以包括触摸屏1041,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触摸屏1041上的操作),并根据预先设定的程式驱动相应的连接装置。当然,除了触摸屏1041,输入单元1004还可以包括其他输入设备,如物理键盘、功能键(比如音量控制按键、开关按键等)、鼠标等。

显示器1002具体可以包括显示面板,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)或有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。其中,触摸屏1041可以覆盖显示面板,形成触摸显示屏,当该触摸显示屏检测到在其上或附近的触摸操作后,传送给处理器1003以执行相应的处理。

在本申请实施例中,通过调用存储该存储器1001内的程序,和/或,模块,和/或,数据,处理器1003接收用户针对符合预置规则的目标候选项的第一触发指令;响应于所述第一触发指令,向用户提供所述目标候选项对应的扩展内容;其中,所述扩展内容为从输入法程序之外的应用程序获取的内容。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装 置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种界面处理方法、一种界面处理装置和一种智能终端,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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