本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例公开了一种显示图形用户界面的方法及终端,以期通过调用子线程执行页面绘制任务,减少主线程的任务量,有利于提升终端页面显示的流畅度。
为了更好理解本发明实施例公开的一种显示图形用户界面的方法,下面先对本发明实施例适用的终端进行描述。本发明实施例所描述的终端包括任何具备显示屏以及通信和存储功能的设备,例如:平板电脑、手机、电子阅读器、个人计算机(PersonalComputer,PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。该终端安装有安卓操作系统,并进一步基于该操作系统安装有多个系统应用程序或第三方应用程序,其中,每一个应用程序在运行过程中可以通过一个或多个图形用户界面(GraphicalUserInterface,GUI)与用户交互,从而实现某些功能,如微信应用需要在终端的显示屏幕上展示微信聊天页面,以使得用户能够通过该用户界面实现信息的输入与查看。
本发明实施例提供一种显示图形用户界面的方法,包括:
接收显示图形用户界面的指令;
调用主线程的数据处理子线程设置所述图形用户界面的属性;
调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。
具体的,请参阅图1,图1是本发明方法实施例提供的一种显示图形用户界面的方法的流程示意图,包括以下步骤:
S101,终端接收显示图形用户界面的指令;
在本发明实施例中,所述图形用户界面(GraphicalUserInterface,GUI)可以是终端预装的应用程序的一个图形用户界面,如QQ应用的聊天窗口界面,天天动听音乐播放器应用的音乐播放界面,等等。
当接收到用户点击某个GUI的入口标识时,即为接收显示GUI的指令。
举例来说,以智能手机中安装的微信应用为例,当智能手机检测到用户对显示屏幕上的微信应用的应用图标的选取指令时,智能手机会接收到显示与微信应用关联的图形用户界面的指令,所述与微信应用关联的图形用户界面例如可以是微信应用的主页面,也可以是智能手机记录的微信应用上次退出时显示屏幕所对应的图形用户界面,如智能手机记录的微信应用前一次退出时的图形用户界面为朋友圈显示页面,则智能手机对应接收到显示朋友圈显示页面的指令。
S102,所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性;
其中,所述图形用户界面GUI的属性包括以下至少之一:GUI窗口的位置,GUI窗口的背景颜色,GUI窗口的标题栏,GUI窗口的长度,GUI窗口的宽度等等。
数据处理子线程设置所述图形用户界面的属性包括设置GUI界面控件的属性值。
当应用程序启动时,就有一个进程被操作系统创建,与此同时主线程也立刻运行,现有的技术中,就是由这个运行的主线程来创建GUI,但是由于主线程通常都承担了大量的任务,因此本技术方案将原本由主线程负责的GUI的处理交由主线程子线程来处理,而子线程通常都没有子线程忙碌,因此可以大大降低GUI显示过程中的卡顿现象。需要说明的是,主线程可以将对GUI的创建、框架的布置、属性的设置等数据处理交由上层的数据处理子线程来处理,上层的数据处理子线程只能用来进行数据处理,主线程也可以将对GUI的创建、框架的布置、属性的设置等交由下层的数据处理子线程来处理,下层的数据处理子线程既可以用来处理数据,也能进行渲染。
可以理解的是,上述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以是多种多样的。
一个实施例中,所述图形用户界面的属性包括所述图形用户界面的长度和宽度;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端首先获取预存的所述终端的显示屏幕的尺寸信息,所述尺寸信息包括所述显示屏幕的长度和宽度;
所述终端设置所述显示屏幕的长度为所述图形用户界面的长度,设置所述显示屏幕的宽度为所述图形用户界面的宽度。
另一个实施例中,所述图形用户界面的属性包括所述图形用户界面的位置;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端获取预存的所述终端的显示屏幕的第一尺寸信息,所述第一尺寸信息包括所述显示屏幕的长度和宽度;
所述终端获取所述图形用户界面的第二尺寸信息,所述第二尺寸信息包括所述图形用户界面的长度和宽度;
所述终端基于所述第一尺寸信息和所述第二尺寸信息,确定所述图形用户界面在所述显示屏幕中的显示位置。
S103,所述终端调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面;
需要说明的是,在本发明实施例中,渲染子线程是指渲染线程,它是主线程的一个子线程,渲染线程位于底层,既能进行图形渲染,也能进行数据处理,即图形绘制。
其中,所述图形用户界面可以为用于显示当前处理进度的进度条,如智能手机中安装的各种游戏的开启界面中的进度条。
具体的,我们可以从应用的布局文件(主xml文件)中提取下面的元素信息:活动栏ActionBar、标题栏Tab、状态栏StatusBar,上述几个元素可以组成一个较为基本的启动窗口作为启动动画。
可选的,在本发明实施例中,所述终端还可以执行以下操作:
调用垃圾回收的操作。
也可以在调用主线程的数据处理子线程设置所述图形用户界面的属性之前执行垃圾回收操作。
由于所述图形用户界面的显示是由终端的所述数据处理子线程和所述渲染子线程来完成的,故而主线程的任务量减少,相应的,终端执行垃圾回收操作时限制主线程的几率也会减少,有利于提升终端页面显示的流畅度。
可选的,在本发明实施例中,所述数据处理子线程与所述渲染子线程可以是同一个子线程,即在本发明实施例中,可以调用渲染子线程设置所述图形用户界面的属性,并调用渲染子线程根据所述属性,显示所述图形用户界面。
可选的,在本发明实施例中,在调用主线程的数据处理子线程设置图形用户界面的属性之前,所述方法还包括:
所述终端确定所述主线程的所有子线程的状态,所述状态包括就绪状态、阻塞状态或运行状态;就绪状态指线程具备运行的所有条件,逻辑上可以运行,在等待处理机;运行状态指线程占有处理机正在运行;阻塞状态指线程在等待一个事件(如某个信号量),逻辑上不可执行。
所述终端选择处于就绪状态的子线程作为所述数据处理子线程。
可以看出,本发明实施例中,终端接收显示图形用户界面的指令,调用主线程的数据处理子线程设置所述图形用户界面的属性,调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。可见,终端通过子线程来执行主线程的页面绘制等数据处理任务,从而减少主线程的任务量,有利于提升终端页面显示的流畅度。
请参阅图2,图2是本发明另一方法实施例提供的一种显示图形用户界面的方法的流程示意图,包括以下步骤:
S201,终端接收显示图形用户界面的指令;
在本发明实施例中,所述图形用户界面可以是终端预装的应用程序的一个图形用户界面,如QQ应用的聊天窗口界面,天天动听音乐播放器应用的音乐播放界面,等等。
举例来说,以智能手机中安装的微信应用为例,当智能手机检测到用户对显示屏幕上的微信应用的应用图标的选取指令时,智能手机会接收到显示与微信应用关联的图形用户界面的指令,所述与微信应用关联的图形用户界面例如可以是微信应用的主页面,也可以是智能手机记录的微信应用上次退出时显示屏幕所对应的图形用户界面,如智能手机记录的微信应用前一次退出时的图形用户界面为朋友圈显示页面,则智能手机对应接收到显示朋友圈显示页面的指令。
S202,所述终端确定所述主线程的所有子线程的状态,所述状态包括就绪状态、阻塞状态或运行状态;
S203,所述终端选择处于就绪状态的子线程作为数据处理子线程;
其中,处于就绪状态的子线程相对于处于运行状态的子线程,前者的任务量要低于后者的任务量,如此,选取上述任务量较低的处于就绪状态的子线程作为所述数据处理子线程,有利于更为顺畅的设置所述图形用户界面的属性,从而增大流畅显示终端页面的几率。
S204,所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性;
其中,所述图形用户界面GUI的属性包括以下至少之一:GUI的长度,GUI的宽度,GUI.value的初始值及最大值,GUI放置的位置等。
可以理解的是,上述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以是多种多样的。
一个实施例中,所述图形用户界面的属性包括所述图形用户界面的长度和宽度;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端首先获取预存的所述终端的显示屏幕的尺寸信息,所述尺寸信息包括所述显示屏幕的长度和宽度;
所述终端设置所述显示屏幕的长度为所述图形用户界面的长度,设置所述显示屏幕的宽度为所述图形用户界面的宽度。
另一个实施例中,所述图形用户界面的属性包括所述图形用户界面的放置的位置;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端获取预存的所述终端的显示屏幕的第一尺寸信息,所述第一尺寸信息包括所述显示屏幕的长度和宽度;
所述终端获取所述图形用户界面的第二尺寸信息,所述第二尺寸信息包括所述图形用户界面的长度和宽度;
所述终端基于所述第一尺寸信息和所述第二尺寸信息,确定所述图形用户界面的在所述显示屏幕中的显示位置。
S205,所述终端调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。
其中,所述图形用户界面为用于显示当前处理进度的进度条。
可选的,在本发明实施例中,所述终端还可以执行以下操作:
调用垃圾回收的操作。
由于所述图形用户界面的显示是由终端的所述数据处理子线程和所述渲染子线程来完成的,故而主线程的任务量减少,相应的,终端执行垃圾回收操作时限制主线程的几率也会减少,有利于提升终端页面显示的流畅度。
可以看出,本发明实施例中,终端接收显示图形用户界面的指令,确定所述主线程的所有子线程的状态,选择处于就绪状态的子线程作为所述数据处理子线程,调用主线程的数据处理子线程设置所述图形用户界面的属性,调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。可见,终端通过选取处于就绪状态的子线程来执行主线程的页面显示任务,从而减少主线程的任务量,有利于提升终端页面显示的流畅度。
请参阅图3,图3是本发明另一方法实施例提供的一种显示图形用户界面的方法的流程示意图,包括以下步骤:
S301,终端接收显示图形用户界面的指令;
在本发明实施例中,所述图形用户界面可以是终端预装的应用程序的一个图形用户界面,如QQ应用的聊天窗口界面,天天动听音乐播放器应用的音乐播放界面,等等。
举例来说,以智能手机中安装的微信应用为例,当智能手机检测到用户对显示屏幕上的微信应用的应用图标的选取指令时,智能手机会接收到显示与微信应用关联的图形用户界面的指令,所述与微信应用关联的图形用户界面例如可以是微信应用的主页面,也可以是智能手机记录的微信应用上次退出时显示屏幕所对应的图形用户界面,如智能手机记录的微信应用前一次退出时的图形用户界面为朋友圈显示页面,则智能手机对应接收到显示朋友圈显示页面的指令。
S302,所述终端确定所述主线程的所有子线程的状态,所述状态包括就绪状态、阻塞状态或运行状态;
S303,所述终端选择处于就绪状态的子线程作为所述数据处理子线程;
其中,处于就绪状态的子线程相对于处于运行状态的子线程,前者的任务量要一般低于后者的任务量,如此,选取上述任务量较低的处于就绪状态的子线程作为所述数据处理子线程,并且选择处于就绪状态的子线程不会影响其它任务的处理,有利于更为顺畅的设置所述图形用户界面的属性,从而增大流畅显示终端页面的几率。
S304,所述终端调用垃圾回收的操作。
由于所述图形用户界面的显示是由终端的所述数据处理子线程和所述渲染子线程来完成的,故而主线程的任务量减少,相应的,终端执行垃圾回收操作时限制主线程的几率也会减少,有利于提升终端页面显示的流畅度。
S305,所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性;
可以理解的是,上述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以是多种多样的。
一个实施例中,所述图形用户界面的属性包括所述图形用户界面的长度和宽度;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端首先获取预存的所述终端的显示屏幕的尺寸信息,所述尺寸信息包括所述显示屏幕的长度和宽度;
所述终端设置所述显示屏幕的长度为所述图形用户界面的长度,设置所述显示屏幕的宽度为所述图形用户界面的宽度。
另一个实施例中,所述图形用户界面的属性包括所述图形用户界面的放置的位置;所述终端调用主线程的数据处理子线程设置所述图形用户界面的属性的具体实现方式可以包括以下步骤:
所述终端获取预存的所述终端的显示屏幕的第一尺寸信息,所述第一尺寸信息包括所述显示屏幕的长度和宽度;
所述终端获取所述图形用户界面的第二尺寸信息,所述第二尺寸信息包括所述图形用户界面的长度和宽度;
所述终端基于所述第一尺寸信息和所述第二尺寸信息,确定所述图形用户界面的在所述显示屏幕中的显示位置。
S306,所述终端调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。
其中,所述图形用户界面为用于显示当前处理进度的进度条。
可以看出,本发明实施例中,终端接收显示图形用户界面的指令,确定所述主线程的所有子线程的状态,选择处于就绪状态的子线程作为所述数据处理子线程,调用垃圾回收的操作,调用主线程的数据处理子线程设置所述图形用户界面的属性,调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。可见,在终端执行垃圾回收操作的情况下,终端通过选取处于就绪状态的子线程来执行主线程的页面绘制等数据处理任务,能够减少主线程的任务量,有利于提升终端页面显示的流畅度。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至三实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明方法实施例。
本发明实施例提供一种终端,包括:
接收模块,用于接收显示图形用户界面的指令;
在本发明实施例中,所述图形用户界面可以是终端预装的应用程序的一个图形用户界面,如QQ应用的聊天窗口界面,天天动听音乐播放器应用的音乐播放界面,等等。
属性设置模块,用于调用主线程的数据处理子线程设置所述图形用户界面的属性;
其中,所述图形用户界面GUI的属性包括以下至少之一:GUI的长度,GUI的宽度,GUI.value的初始值及最大值,GUI放置的位置等。
界面显示模块,用于调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。
具体的,请参阅图4,是本发明一实施例提供的一种终端的结构示意图,如图4所示,所述终端包括接收模块401、属性设置模块402、界面显示模块403,其中:
接收模块401,用于接收显示图形用户界面的指令;
属性设置模块402,用于调用主线程的数据处理子线程设置所述图形用户界面的属性;
界面显示模块403,用于调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。其中,所述图形用户界面可以为用于显示当前处理进度的进度条。
可选的,所述终端还包括:
垃圾回收模块,用于调用垃圾回收的操作。
可选的,所述终端还包括:
状态确定模块,用于在所述属性设置模块调用主线程的数据处理子线程设置图形用户界面的属性之前,确定所述主线程的所有子线程的状态,所述状态包括就绪状态、阻塞状态或运行状态;
线程选择模块,用于选择处于就绪状态的子线程作为所述数据处理子线程。
可选的,在本发明实施例中,所述数据处理子线程与所述渲染子线程可以是同一个子线程。
可以理解的是,本发明实施例的终端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本发明实施例中,终端的接收模块接收显示图形用户界面的指令,终端的属性设置模块调用主线程的数据处理子线程设置所述图形用户界面的属性,然后,终端的界面显示模块调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。可见,终端通过子线程来执行主线程的页面绘制等数据处理任务,从而减少主线程的任务量,有利于提升终端页面显示的流畅度。
请参考图5,是本发明另一实施例公开的另一种终端的结构示意图。如图5所示,本发明实施例中的终端包括:至少一个处理器501,例如CPU,至少一个接收器503,至少一个存储器504,至少一个发送器505,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,本发明实施例中装置的接收器503和发送器505可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器504可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器504可选的还可以是至少一个位于远离前述处理器501的存储装置。存储器504中存储一组程序代码,且处理器501用于调用存储器中存储的程序代码,用于执行以下操作:
处理器501接收显示图形用户界面的指令;
处理器501调用主线程的数据处理子线程设置所述图形用户界面的属性;
处理器501调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。
可选的,所述处理器501还用于:调用垃圾回收的操作。
可选的,所述数据处理子线程与所述渲染子线程可以是同一个子线程。
可选的,所述处理器501在调用主线程的数据处理子线程设置图形用户界面的属性之前,所述处理器501还用于:
所述处理器501确定所述主线程的所有子线程的状态,所述状态包括就绪状态、阻塞状态或运行状态;
所述处理器501选择处于就绪状态的子线程作为所述数据处理子线程。
可选的,所述图形用户界面可以为用于显示当前处理进度的进度条。
可以理解的是,本发明实施例的终端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本发明实施例中,终端的接收模块接收显示图形用户界面的指令,终端的属性设置模块调用主线程的数据处理子线程设置所述图形用户界面的属性,然后,终端的界面显示模块调用所述主线程的渲染子线程根据所述属性,显示所述图形用户界面。可见,终端通过子线程来执行主线程的页面显示任务,从而减少主线程的任务量,有利于提升终端页面显示的流畅度。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种显示图形用户界面的方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、终端或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-OnlyMemory,简称:ROM)、随机存取器(英文:RandomAccessMemory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的一种显示图形用户界面的方法及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。