本发明专利技术公开了一种APP页面提前构建的方法。移动终端的APP在正常运行过程中,间隔性地检查在移动终端本地是否有目标页面的UI框架的缓存。如果没有,该APP开启一个子线程,该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中。该APP在打开该目标页面时,一方面从移动终端的本地缓存中取出提前构建好的该目标页面的UI框架,另一方面获取该目标页面的数据内容。该APP将该目标页面的数据内容填充到该目标页面的UI框架的各个UI元素中,渲染出该目标页面并予以显示。本发明专利技术减小了目标页面的启动时间。本发明专利技术减小了目标页面的启动时间。本发明专利技术减小了目标页面的启动时间。
【技术实现步骤摘要】
一种APP页面提前构建的方法及装置
[0001]本专利技术涉及一种移动终端的APP(应用)页面构建方法。
技术介绍
[0002]当用户在移动终端(例如手机)的APP中打开一个页面的时候,移动终端的CPU(中央处理器)和GPU(图像处理器)先在APP的主线程构建出形成目标页面所需的所有的UI(用户界面)元素,一个页面上的所有UI元素构成UI框架;随后调用接口获取需要填充到UI框架的各个UI元素中的数据内容。构建UI框架、填充UI框架都需要消耗一定的时间,这两个时间之和称为页面的启动时间。页面的启动时间是衡量一个页面是否具有良好用户体验的重要指标。页面的启动时间越短越好,如果时间长了,一般认为页面发生了卡顿。
[0003]为了减小移动终端的APP的页面启动时间,现有技术有预加载页面数据内容的。对于结构特别复杂、元素特别丰富的页面,其构建UI框架所消耗的时间远大于获取数据内容所消耗的时间,因此现有技术对于减小此类页面启动时间的效果有限。
技术实现思路
[0004]本专利技术所要解决的技术问题是如何减小移动终端的APP的页面启动时间。
[0005]为解决上述技术问题,本专利技术提出了一种APP页面提前构建的方法,包括如下步骤。步骤S1:移动终端的APP在正常运行过程中,间隔性地检查在移动终端本地是否有目标页面的UI框架的缓存;如果没有,进入步骤S2;如果有,进入步骤S3。步骤S2:该APP开启一个子线程,该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中。步骤S3:该APP在打开该目标页面时,一方面从移动终端的本地缓存中取出提前构建好的该目标页面的UI框架,另一方面获取该目标页面的数据内容。步骤S4:该APP将该目标页面的数据内容填充到该目标页面的UI框架的各个UI元素中,渲染出该目标页面并予以显示。
[0006]优选地,所述步骤S1中,采用相同的时间间隔进行检查。
[0007]进一步地,所述步骤S2中,将该APP的UI操作分为两类:第一类与用户的当前人机交互相关,由该APP的主线程执行;第二类与预先创建UI元素相关,与用户的当前人机交互无关,由该APP的新建的子线程执行。
[0008]优选地,所述步骤S3中,采用多线程技术获取UI框架和/或数据内容。
[0009]优选地,所述目标页面是结构复杂、元素丰富的页面。
[0010]本专利技术还提出了一种APP页面提前构建的装置,包括缓存检查单元、提前构建单元、启动执行单元、页面渲染单元。所述缓存检查单元用来在移动终端的APP正常运行过程中,间隔性地检查在移动终端本地是否有目标页面的UI框架的缓存。所述提前构建单元用来在移动终端本地没有目标页面的UI框架的缓存时,由该APP开启一个子线程,该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中。所述启动执行单元用来在该APP打开该目标页面时,一方面从移动终端的本地缓存中取出提前构建好的该
目标页面的UI框架,另一方面获取该目标页面的数据内容。所述页面渲染单元用来将该目标页面的数据内容填充到该目标页面的UI框架的各个UI元素中,渲染出该目标页面并在该APP中予以显示。
[0011]本专利技术取得的技术效果是:在目标页面打开之前提前构建目标页面需要的UI框架并缓存起来,在需要打开目标页面的时候就省去了现场构建UI框架的时间,从而减小了目标页面的启动时间。
附图说明
[0012]图1是本专利技术提出的APP页面提前构建的方法的流程示意图。
[0013]图2是本专利技术提出的APP页面提前构建的装置的结构示意图。
[0014]图中附图标记说明:1为缓存检查单元、2为提前构建单元、3为启动执行单元、4为页面渲染单元。
具体实施方式
[0015]请参阅图1,本专利技术提出的APP页面提前构建的方法包括如下步骤。
[0016]步骤S1:移动终端的APP在正常运行过程中,间隔性(优选为定时)地检查在移动终端本地是否有目标页面的UI框架的缓存。所述目标页面优选为结构复杂、元素丰富的页面。如果没有,进入步骤S2。如果有,进入步骤S3。
[0017]步骤S2:该APP开启一个子线程(child thread),该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中。UI框架是指一个页面上的所有UI元素,因此该子线程提前构建出形成该目标页面所需的所有UI元素。
[0018]现有技术中,无论是iOS系统还是安卓(Android)系统,移动终端的APP通常必须在主线程(main thread)进行UI操作,包括构建UI元素等。本专利技术将该APP的UI操作分为两类:第一类与用户的当前人机交互相关;第二类与预先创建UI元素相关,与用户的当前人机交互无关。第一类UI操作仍由该APP的主线程执行。第二类UI操作由该APP的新建的子线程执行。由此本专利技术跳出了移动终端的系统限制,创新性地改为在子线程里预先创建目标页面所需的UI元素,能够释放主线程的资源处理其他事务。该子线程专门用来提前创建UI元素,不会影响用户的UI操作(都是在主线程中进行),还能使该APP的当前人机交互保持流畅。
[0019]步骤S3:该APP在打开(启动)该目标页面的时候,一方面从移动终端的本地缓存中取出提前构建好的该目标页面的UI框架,另一方面获取该目标页面的数据内容。优选地,这一步采用多线程技术获取UI框架和数据内容。
[0020]步骤S4:该APP将该目标页面的数据内容填充到该目标页面的UI框架的各个UI元素中,渲染出该目标页面并予以显示。
[0021]现有技术是在目标页面启动的时候,先在主线程中构建该目标页面的UI框架,然后获取该目标页面的数据内容填充到UI框架中。本专利技术则是在目标页面启动之前就提前构建出目标页面的UI框架,等到目标页面真正启动的时候就节省了现场构建UI框架的时间。对于结构复杂、元素丰富的页面来说,构建UI框架需要消耗比较长的时间,本专利技术特别适用于此类页面,把最为耗时的构建UI框架的工作前置了。因此本专利技术能极大地缩短目标页面(尤其是大型、复杂且核心的APP页面)的启动时间,减少卡顿,提升目标页面乃至整个APP的
用户体验。
[0022]请参阅图2,本专利技术提出的APP页面提前构建的装置包括缓存检查单元1、提前构建单元2、启动执行单元3、页面渲染单元4。图2所示装置对应于图1所示方法。
[0023]所述缓存检查单元1用来在移动终端的APP正常运行过程中,间隔性地检查在移动终端本地是否有目标页面的UI框架的缓存。
[0024]所述提前构建单元2用来在移动终端本地没有目标页面的UI框架的缓存时,由该APP开启一个子线程,该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中。
[0025]所述启动执行单元3用来在该APP打开该目标页面时,一方面从移动终端的本地缓存中取出提前构建好的该目标页面的UI框架,另一方面获取该目标页面的数据内容。
[本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种APP页面提前构建的方法,其特征是,包括如下步骤;步骤S1:移动终端的APP在正常运行过程中,间隔性地检查在移动终端本地是否有目标页面的UI框架的缓存;如果没有,进入步骤S2;如果有,进入步骤S3;步骤S2:该APP开启一个子线程,该子线程提前构建出形成该目标页面所需的UI框架并保存在移动终端的本地缓存中;步骤S3:该APP在打开该目标页面时,一方面从移动终端的本地缓存中取出提前构建好的该目标页面的UI框架,另一方面获取该目标页面的数据内容;步骤S4:该APP将该目标页面的数据内容填充到该目标页面的UI框架的各个UI元素中,渲染出该目标页面并予以显示。2.根据权利要求1所述的APP页面提前构建的方法,其特征是,所述步骤S1中,采用相同的时间间隔进行检查。3.根据权利要求1所述的APP页面提前构建的方法,其特征是,所述步骤S2中,将该APP的UI操作分为两类:第一类与用户的当前人机交互相关,由该APP的主线程执行;第二类与预先创建UI元素相关,与用户的当前人机交互无关,由该APP的新建...
【专利技术属性】
技术研发人员:陈利健,张平,胡展,丁元帅,满聪,任斌,
申请(专利权)人:上海合合信息科技股份有限公司上海临冠数据科技有限公司上海盈五蓄数据科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。