一种应用程序界面显示方法及终端与流程

文档序号:11432085阅读:159来源:国知局
一种应用程序界面显示方法及终端与流程

本发明涉及android系统领域,尤其涉及一种应用程序界面显示方法及终端。



背景技术:

目前,安装有android系统的终端设备(简称:android终端)在启动应用程序时需要消耗大部分时间进行应用程序的用户界面(英文:userinterface,简称ui)的绘制。具体的,当android系统中的某一应用程序启动时,android系统会为该应用程序创建一个单独的线程(该线程可以称主线程),并通过该主线程处理与ui显示相关的事件,该所有对androidui显示相关的ui资源必须在主线程中进行操作的这种模型,我们通常称作androidui单线程模型。

但是,由于androidui单线程模型的限制,使得ui显示过程中相关的函数调用(例如,view对象中的inflate(ui构建)、measure(测量)、layout(布局)、draw(绘制)函数)必须在主线程中执行,而在主线程中加载该相关函数对应的ui资源时需要按照该相关函数的调用顺序依次进行加载,而这种执行方式会花费大量的时间来等待资源的加载,当资源加载完毕时,才能进行后续的流程,从而导致了android终端在启动应用程序时会出现启动速度过慢的问题。



技术实现要素:

本发明的实施例提供一种应用程序界面显示方法及装置,解决了现有技术中android终端在进行ui绘制时需要花费大量的时间来等待ui资源的加载,从而导致的应用程序的启动速度过慢的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种应用程序界面显示方法,应用于安装有android系统的android终端,包括:

获取目标应用程序界面对应的目标应用程序的标识;

根据所述目标应用程序的标识,从用户界面ui资源数据库中调用显 示所述目标应用程序界面所需的目标ui资源,所述ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系;其中,所述ui资源是预先加载至所述ui资源数据库中;

根据所述目标ui资源显示所述目标应用程序界面。

另一方面,提供一种终端,所述终端为安装有android系统的android终端,包括:

获取模块,用于获取目标应用程序界面对应的目标应用程序的标识;

调用模块,用于根据所述目标应用程序的标识,从用户界面ui资源数据库中调用显示所述目标应用程序界面所需的目标ui资源,所述ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系;其中,所述ui资源是预先加载至所述ui资源数据库中;

显示模块,用于根据所述调用模块调用的所述目标ui资源显示所述目标应用程序界面。

本发明的实施例提供的应用程序界面显示方法及终端,通过获取用于指示android终端显示目标应用程序界面对应的目标应用程序的标识,然后,根据该目标应用程序的标识,从ui资源数据库中调用显示目标应用程序界面所需的目标ui资源,该ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系,其中,所述ui资源是预先加载至ui资源数据库中,最后,根据该目标ui资源显示目标应用程序界面。

相比于现有技术中android终端在显示应用程序界面时,需要按照androidui单线程模型来绘制应用程序界面,即需要按照应用程序界面显示过程中相关的函数调用的调用顺序依次加载对应的ui资源。本方案通过将显示该目标应用程序界面的ui资源预先加载至ui资源数据库中,从而使得该android终端可以在显示该目标应用程序界面的过程中,直接从ui资源数据库中调用所需的ui资源,这样将应用程序界面的绘制过程与应用程序界面ui资源的加载过程相分离,从而实现了应用程序界面显示的整体速度的提升,节省了应用程序界面的显示时间,进而提升了android终端的应用程序的启动速度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种应用程序界面显示方法的方法流程图;

图2为本发明实施例提供的另一种应用程序界面显示方法的流程示意图;

图3为本发明实施例提供的一种终端的结构示意图;

图4为本发明实施例提供的另一种终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的实施例中提及的移动终端为安装有android(安卓)系统的终端设备(简称android终端),该终端设备可以为智能手机、平板电脑、笔记本电脑、umpc(ultra-mobilepersonalcomputer,超级移动个人计算机)、上网本、pda(personaldigitalassistant,个人数字助理)等终端设备,且不限于此。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本实施例中提及的“第一”“第二”等叙述词,除非根据上下文其确实表达顺序之意,应当理解为仅仅是起区分之用。

本发明的实施例提供一种应用程序界面显示方法,如图1所示,该 方法包括如下步骤:

101、终端获取目标应用程序界面对应的目标应用程序的标识。

示例性的,上述的目标应用程序界面对应的目标应用程序的标识可以是终端从用户触发的显示指令中获取,该显示指令用于指示该android终端显示该目标应用程序界面。本实施例中应用程序可以是android系统的操作程序,也可以是安装在android终端中的软件应用程序。

102、终端根据目标应用程序的标识,从用户界面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资源。

示例性的,步骤102具体还包括如下步骤:

102a、终端根据目标应用程序的标识确定显示目标应用程序所需的第一ui资源。

102b、终端在ui资源数据库中查询第一ui资源。

若ui资源数据库中包含第一ui资源,则转向步骤102c1,若ui资源数据库中未包含第一ui资源,则转向步骤102c2。

102c1、终端从ui资源数据库中直接调用第一ui资源。

102c2、终端加载第一ui资源。

其中,第一ui资源为显示目标应用程序界面所需的目标ui资源中的其中一个。

示例性的,终端在根据目标应用程序界面对应的目标应用程序的标识,基于该ui资源数据库中包含的应用程序标识和ui资源标识间的对应的关系,确定出显示该目标应用程序所需的ui资源的标识,并按照ui绘制过程中依次进行的ui构建、ui测量、ui布局、ui绘制等过程中分别需要的ui资源,即按照上述ui构建、ui测量、ui布局、ui绘制等过程的执行顺序依次调用所需的ui资源。具体的,在调用所需的ui资源时,本实施例通过预先在ui资源数据库中查询该ui资源数据库中是否包含所需ui资源,从而保证了在该ui资源数据库中未存储该ui资源时,能够保证该终端可以及时执行该ui资源的加载过程,保证了终端可以成功进行应用程序界面的显示过程。

103、终端根据目标ui资源显示目标应用程序界面。

示例性的,终端在根据目标ui资源显示目标应用程序界面时,会将ui资源转换成android系统中drawable对象,调用drawable对象的draw函数,将该drawable绘制到设备中。

本发明的实施例提供的应用程序界面显示方法,通过获取用于指示android终端显示目标应用程序界面对应的目标应用程序的标识,然后,根据该目标应用程序的标识,从ui资源数据库中调用显示目标应用程序界面所需的目标ui资源,该ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系,其中,该ui资源是预先加载至ui资源数据库中,最后,根据该目标ui资源显示目标应用程序界面。

相比于现有技术中android终端在显示应用程序界面时,需要按照androidui单线程模型来绘制应用程序界面,即需要按照应用程序界面显示过程中相关的函数调用的调用顺序依次加载对应的ui资源。本方案通过将显示该目标应用程序界面的ui资源预先加载至ui资源数据库中,从而使得该android终端可以在显示该目标应用程序界面的过程中,直接从ui资源数据库中调用所需的ui资源,这样将应用程序界面的绘制 过程与应用程序界面的ui资源加载过程相分离,从而实现了应用程序界面显示的整体速度的提升,节省了应用程序界面的显示时间,进而提升了android终端的应用程序的启动速度。

需要说明的是,本发明实施例中的终端的android系统可以用于控制多个线程,该多个线程包括至少一个从线程,其中,上述的从线程独立于主线程。通常情况下,上述的至少一个从线程是终端通过对线程池进行初始化,从线程池中获取的。在本实施例中,终端通过将ui资源的加载过程迁移至从线程中进行实现,从而提升android终端的应用程序的显示速度。

具体的,上述步骤102中提及的ui资源数据库中的ui资源的预加载过程具体包括如下步骤:

a1、终端获取ui资源预加载指令。

示例性的,上述的ui资源预加载指令中包含目标应用程序界面所需的目标ui资源的标识,该ui资源预加载指令用于指示终端执行ui资源的预加载过程。此外,由于ui资源的预加载过程中需要的从线程的个数是根据实际应用中需要预加载的ui资源的个数确定的,因此,在步骤a1之后,即在终端获取到ui资源预加载指令后,根据该ui资源预加载指令中包含的目标应用程序界面所需的目标ui资源的标识的个数,初始化线程池,从线程池中确定需要的从线程的个数。若需要预加载的ui资源的个数比较多,则需要启动的从线程也将较多。

a2、终端根据目标ui资源的标识,在从线程中将目标ui资源预加载至ui资源数据库中。

需要说明的是,上述的每个从线程上至少进行一个ui资源的加载,具体的每个从线程上加载的ui资源的个数这里不做限定,可以根据实际的应用场景进行灵活配置。

这样为了提升android终端的应用程序的启动速度,本实施例通过将ui资源的加载过程迁移至从线程中,从而使得主线程仅执行ui的绘制过程,而不进行ui资源的加载过程,从而进一步的节省了应用程序界面的显示时间,使得终端在进行应用程序界面显示时无需花费大量的时间进行ui资源的加载,仅需要从ui资源数据库中调用所需的ui资 源。

示例性的,在本实施例中,终端对ui资源进行构建、测量、布局、绘制的过程来实现应用程序界面的显示时,分别是以android系统中的view对象的inflate函数、measure函数、layout函数和draw函数为例来进行说明的,具体的参照图2所示的应用程序界面显示方法的流程图可知,若目标应用程序以应用程序1为例时,view对象中的inflate函数、measure函数、layout函数和draw函数依次需要用到的ui资源分别为a、b、c、d这四个ui资源。需要说明的是,图2中的assetmanager(资源管理器)用于管理和调用assert线程池(资源线程池)中的从线程。

具体的,该应用程序1的用户界面显示流程包括如下过程:

1)、view对象向assetmanager发送预加载指令,指明需要预加载的ui资源,即应用程序1对应的a、b、c、d这四个ui资源,而assetmanager在接收到该预加载指令后,会启动assert线程池,并根据显示应用程序1所需的ui资源的个数从assert线程池中启动相应个数的从线程来加载ui资源,并将该需要预加载的ui资源预先加载至assetmanager的缓存(cache)中,例如,从该assert线程池中启动四个从线程来分别加载a、b、c、d这四个ui资源。

2)、view对象在主线程中获取应用程序1用户界面的标识,根据该标识指示获取view对象中的inflate函数需要访问资源a,则调用drawable接口向assetmanager请求ui资源a。此时,assetmanagerassetmanager首先会从cache中查询ui资源a是否已经被预加载,如果没有被预加载则从assert线程池中调用从线程加载并解码该ui资源a,并将解码后的ui资源a放入cache缓存中,然后马上返回给inflate函数使用,如果assetmanager从cache中查询到ui资源a已经在cache中,则马上返回cache中的ui资源a给inflate。

同理,view在后续的measure函数,layout函数和draw函数进行ui资源的访问时,可以按照以上的逻辑来实现。

3)、当view完成上述四个函数的ui资源的调用后,便可完成该应用程序1的绘制过程。

本发明的实施例提供一种终端,该终端用于实现上述的应用程序界面显示方法,其中,上述的终端为安装有android系统的android终端,如图3所示,该终端2包括:获取模块21、调用模块22以及显示模块23,其中:

获取模块21,用于获取目标应用程序界面对应的目标应用程序的标识。

调用模块22,用于根据目标应用程序的标识,从用户界面ui资源数据库中调用显示目标应用程序界面所需的目标ui资源,ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系,其中,该ui资源是预先加载至ui资源数据库中。

显示模块23,用于根据调用模块22调用的目标ui资源显示目标应用程序界面。

示例性的,上述的ui资源数据库还包括:ui资源参数,ui资源参数包括ui资源的属性信息以及ui资源在该ui资源数据库中存储的路径信息。而该ui资源的属性信息包括该ui资源的数据类型以及数据大小等参数信息。具体的该ui资源包括但不限于:应用程序界面的布局文件、各种ui素材(如图片、视频、音频等多媒体数据)以及应用在应用程序界面中的各种控件的参数信息。

可选的,上述的android系统用于控制多个线程,该多个线程包括至少一个从线程。

如图4所示,该终端2还包括:加载模块24,其中:

获取模块21,还用于获取ui资源预加载指令,ui资源预加载指令中包含目标应用程序界面所需的目标ui资源的标识。

加载模块24,用于根据目标ui资源的标识,在从线程中将目标ui资源预加载至ui资源数据库中,每个从线程上至少进行一个ui资源的加载。

可选的,如图4所示,该终端还包括:初始化模块25,其中:

初始化模块25,用于根据该ui资源预加载指令中包含的目标应用程序界面所需的目标ui资源的标识的个数,初始化从线程的个数。

可选的,该调用模块22具体用于:

根据目标应用程序的标识确定显示目标应用程序界面所需的第一ui资源;

在ui资源数据库中查询第一ui资源;

若ui资源数据库中包含第一ui资源,则从ui资源数据库中调用第一ui资源;若ui资源数据库中未包含所述第一ui资源,则加载所述第一ui资源;

其中,第一ui资源为显示所述目标应用程序界面所需的目标ui资源中的其中一个。

本发明的实施例提供的终端,通过获取用于指示android终端显示目标应用程序界面对应的目标应用程序的标识,然后,根据该目标应用程序的标识,从ui资源数据库中调用显示目标应用程序界面所需的目标ui资源,该ui资源数据库包含应用程序的标识、ui资源的标识以及应用程序与ui资源间的对应关系,其中,该ui资源是预先加载至ui资源数据库中,最后,根据该目标ui资源显示目标应用程序界面。

相比于现有技术中android终端在显示应用程序界面时,需要按照androidui单线程模型来绘制应用程序界面,即需要按照应用程序界面显示过程中相关的函数调用的调用顺序依次加载对应的ui资源。本方案通过将显示该目标应用程序界面的ui资源预先加载至ui资源数据库中,从而使得该android终端可以在显示该目标应用程序界面的过程中,直接从ui资源数据库中调用所需的ui资源,这样将应用程序界面的绘制过程与应用程序界面的ui资源加载过程相分离,从而实现了应用程序界面显示的整体速度的提升,节省了应用程序界面的显示时间,进而提升了android终端的应用程序的启动速度。

在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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