CN117216428A - 一种网页资源请求方法、终端设备及计算机可读存储介质 - Google Patents
一种网页资源请求方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117216428A CN117216428A CN202311472945.9A CN202311472945A CN117216428A CN 117216428 A CN117216428 A CN 117216428A CN 202311472945 A CN202311472945 A CN 202311472945A CN 117216428 A CN117216428 A CN 117216428A
- Authority
- CN
- China
- Prior art keywords
- resource data
- url
- terminal device
- resource
- webview
- 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
- 238000000034 method Methods 0.000 title claims abstract description 138
- 230000004044 response Effects 0.000 claims description 46
- 238000009877 rendering Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 44
- 238000004458 analytical method Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 30
- 238000012360 testing method Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 25
- 239000010410 layer Substances 0.000 description 24
- 238000007726 management method Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 13
- 238000011056 performance test Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Abstract
本申请提供一种网页资源请求方法、终端设备及计算机可读存储介质,涉及终端技术领域。该方法应用于终端设备,包括:第一时段内,解析网页的第一统一资源定位器URL,第一URL包括至少一个资源数据对应的第二URL;在第一时段之后的第二时段内,执行如下操作:向服务器发送第二URL对应的至少一个资源数据的请求;获取服务器基于请求回复的资源数据。解析网页的第一URL的过程,以及基于解析得到的第二URL向服务器请求资源的过程分别在两个连续的时间段内完成,如此,可以保证获取资源数据的时长不增加。并且,可以在两个时间段分别执行一个过程,避免资源数据的数据量不准确。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种网页资源请求方法、终端设备及计算机可读存储介质。
背景技术
随着网络技术的普及和发展,人们对网络性能的要求也逐渐提高。如用户需对网络的性能进行优化,则需要先对网络的性能进行分析。目前可以通过对域名系统(domainname system,DNS)时延、信号强度、网络设备的处理器内存使用状态等参数等进行检测,并利用这些数据来反映网络性能。然而这些参数不能客观的展示用户在此网络设备下的实际使用体验,导致用户使用较多的典型场景下,例如浏览网页和观看视频时的使用体验不能得到很好的量化和表示。针对于此,目前提出了一种运行于终端设备中,且可以对网络设备进行管理的应用程序,该应用程序可以获取用于表示网络性能的参数,同时,还可以基于网络性能为用户展示用于描述网页浏览体验和视频的浏览体验的测绘项。
终端设备中的应用程序在对网络性能进行测试时,需要先通过webview来对网页进行请求,然后通过额外的方法对webview的请求过程进行检测,以得到网络性能参数。然而额外的方法本身会占用网络资源以及加载时间,如此便导致检测得到的网络资源和加载时间存在偏差,从而导致无法准确的检测网络性能。
发明内容
有鉴于此,本申请提供了一种网页资源请求方法、终端设备及计算机可读存储介质,可以在利用webview加载网页的场景下,提高网络性能参数检测的准确性以及检测效率。
第一方面,本申请提供一种网页资源请求方法,应用于终端设备,方法包括:第一时段内,解析网页的第一统一资源定位器URL,第一URL包括至少一个资源数据对应的第二URL;在第一时段之后的第二时段内,执行如下操作:
向服务器发送第二URL对应的至少一个资源数据的请求;
获取服务器基于请求回复的资源数据。
其中,第一URL包括至少一个资源数据对应的第二URL。
终端设备从服务器处获取的资源数据中,可以包括指示信息,指示信息用于指示资源数据的数据量。可选地,指示信息可以包括在资源数据中,也可以为独立于资源数据存在的指示信息。
在第一方面的一种可能的实现方式中,方法应用于检测网络性能参数,网络性能参数包括如下至少一项参数:网页的加载时长、网页的平均加载速率。
在第一方面的一种可能的实现方式中,平均加载速率是基于加载时长以及资源数据的数据量确定的。
在第一方面的一种可能的实现方式中,加载时长是第一时段对应的时长与第二时段对应的时长。
加载时长是第一时段对应的时长与第二时段对应的时长加起来的总时长
在第一方面的另一种可能的实现方式中,获取服务器基于请求回复的资源数据之后,还包括:更新资源数据。例如,可以通过替换关键词、替换部分资源数据的方式实现资源数据的更新。之后,终端设备可以根据更新后资源数据的展示第一界面。
在第一方面的一种可能的实现方式中,获取服务器基于请求回复的资源数据之后,方法还包括:将资源数据发送至网络视觉webview;响应于webview基于资源数据渲染得到网页。
在第一方面的一种可能的实现方式中,资源数据的类型包括Response类型以及WebResourceResponse类型,将资源数据发送至webview之前,方法还包括:将Response类型的资源数据转换为WebResourceResponse类型的资源数据;将WebResourceResponse类型的资源数据发送至webview。
在第一方面的一种可能的实现方式中,Response类型的资源数据包括第一回复头以及第一回复主体,WebResourceResponse类型的资源数据包括第二回复头以及第二回复主体;将Response类型的资源数据转换为WebResourceResponse类型的资源数据,包括:从第一回复头中取出关键对象,利用对象的构造方法将关键对象转换为第二回复头;将第一回复主体转换为字节输入流类的响应流;将关键对象以及响应流组成第二回复主体。
在第一方面的一种可能的实现方式中,Response类型的资源数据包括第一回复头以及第一回复主体,WebResourceResponse类型的资源数据包括第二回复头以及第二回复主体;第二回复头包括第一关键对象; 第一关键对象是利用对象的构造方法将第二关键对象转换得到的,第二关键对象是第一回复头中的;第二回复主体包括第二关键对象以及响应流,响应流是将第一回复主体转换为字节输入流类得到的。
在第一方面的一种可能的实现方式中,第一关键对象包括内容类型以及编码类型。其中, 内容类型、编码类型为请求头中的常见的关键对象。
在第一方面的一种可能的实现方式中,利用对象的构造方法将第一关键对象转换为第二关键对象,包括:将第一关键对象转换为map类型的键值对,map类型的键值对为第二关键对象。
在第一方面的一种可能的实现方式中,解析网页的第一统一资源定位器URL之前,通过WebViewClient中的shouldinterceptRequest方法拦截至少一个资源数据的第二URL。通过WebViewClient中的shouldinterceptRequest方法可以拦截资源URL,并且,webview不再基于资源URL向服务器发送请求。
在第一方面的一种可能的实现方式中,向服务器发送第二URL对应的至少一个资源数据的请求,包括:通过OkHTTP向服务器发送第二URL对应的至少一个资源数据的请求。
在第一方面的一种可能的实现方式中,解析网页的第一统一资源定位器URL之前,方法还包括:响应于接收到网络性能测试指令,网络性能测试应用程序获取网页的URL,并将URL发送至webview。
第二方面,本申请提供一种终端设备,所述终端设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述终端设备执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如上第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请提供一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行如上第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请提供一种装置,该装置包含在终端设备中,该装置具有实现上述方面及可能的实现方式中任一方法中终端设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,分配模块或单元,扫描模块或单元,回收模块或单元,移动模块或单元和存储模块或单元等。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面提供的任意一种方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
可以理解地,上述提供的第二方面及其任一种可能的设计方式所述的终端设备,第三方面所述的计算机可读存储介质,以及第四方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种PC端显示的控制台页面示意图;
图2为本申请实施例提供的一种终端设备通信示意图;
图3为本申请实施例提供的一种路由卡片管理操作界面示意图;
图4为本申请实施例提供的一种现有网页资源请求方法的示意图;
图5为本申请实施例提供的另一种现有网页资源请求方法的示意图;
图6为本申请实施例提供的一种终端设备的结构示意图;
图7为本申请实施例提供的一种终端设备的系统架构示意图;
图8为本申请实施例提供的一种网页资源请求方法的示意图;
图9为本申请提供的一种网页资源请求方法的流程示意图;
图10为本申请提供的另一种网页资源请求方法的流程示意图;
图11为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在介绍本申请实施例之前,首先对本申请实施例涉及的技术进行详细介绍。
1.平均加载速率:网页加载资源数据的总数据量除以加载网页的总时间计算得到。
在一个网页的加载过程中,首先终端设备需要对网页的统一资源定位器(uniformresource locator,URL)(即前文所述的第一URL),即网页的网址进行解析,将其拆分为多个资源数据对应的URL(即前文所述的第二URL,后续简称为:资源URL)。
一些示例中,解析网页的URL可以得到包括协议(即服务方式)、存有该资源数据的主机IP地址(包括端口号)以及资源数据在主机上的具体地址(如目录和文件名等)。一个网页的URL中涉及的所有资源数据可能存在与一个主机上的相同或不同地址,也可能存在多个主机上。因此,解析一个网页的URL可以得到至少一个资源URL。例如,一个网页的URL中涉及的所有资源数据可能存在与一个主机上的一个地址中,则一个网页的URL对应于一个资源URL。又如,一个网页的URL中涉及的所有资源数据可能存在与一个主机上的不同地址,或存在多个主机上中,则一个网页的URL对应于多个资源URL。
将网页的URL拆分为多个资源URL后,终端设备再分别基于每个资源URL向服务器发起请求,最后将服务器返回发请求结果渲染到展示页面上。在此过程中,浏览器需要向服务器发送多次资源请求,才能够获取到全部的资源数据,并向用户展示可视的网页页面,因此,对连续的资源URL的请求与转发能力也是路由器性能的表现。如此,平均加载速率对用户的浏览网页体验有较大的影响。例如,若平均加载速率较慢,则表示加载相同数据量的网页所耗费的时间越长,用户需要等待的时间也越长。
此外,对用户的浏览网页体验有较大影响的参数,还包括网页加载时间。例如,在网页加载时间过长的情况下,用户则需要等待较长时间。但由于平均加载速率实际中包含了加载总时间,因此,本申请实施例对于网页加载时间暂不做过多讨论,后续实施例中重点对平均加载速率进行讨论。
2. webview(网页视图):webview就是终端设备操作系统用于展示网页(web)的一种控件,可以理解为终端设备中内嵌的浏览器,为运行于终端设备中的应用程序提供浏览网页的功能。
在框架用户界面(framework user interface,framework UI)机制中,就是利用webview将web内容嵌入到原生应用程序中。webview通过使用内置的浏览器引擎来加载和渲染web页面,并提供与原生应用程序的通信接口,使得开发者可以通过web显示应用程序的部分或全部界面,同时也可以实现web页面与原生应用程序的交互。
其中,framework是一个语言开发软件,提供了软件开发的框架。在终端设备操作系统以及相应的应用程序的开发过程中,framework占据了核心地位,为终端设备操作系统以及相应的应用程序提供了许多功能和服务,例如UI组件、数据存储、网络通信、多媒体、安全、设备驱动程序和系统API等。在利用framework进行应用程序开发的过程中,采用framework UI机制进行设计,该机制的目的在于使得UI和应用程序的逻辑(业务逻辑)分离。在framework UI机制中,开发者可以使用特定的框架或库来构建用户界面,而应用程序逻辑则可以独立于界面进行开发和管理。这种分离的设计模式使得界面和逻辑之间的耦合度降低,从而提高了代码的可维护性和可扩展性。
3. OkHTTP:OkHTTP框架可以理解为是一个超文本传输协议(hypertext transferprotocol,http)客户端,我们可以通过OkHTTP发送向服务器发送http请求,然后获取相应的响应内容。
OkHTTP允许所有同一个主机地址的请求共享同一个套接字(socket)连接,连接池减少请求延时,从而能够达到更加高效的效果。
OkHTTP客户端(Client)是OkHTTP框架的入口类,负责创建OkHTTP客户端并配置各种参数和拦截器。
下面将结合附图,对本申请实施例中的技术方案进行描述。
为了更好地理解本申请实施例,首先对本申请实施例提供的终端设备进行介绍。
终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobilephone)、智能电视、穿戴式设备、平板电脑(Pad)、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
需要说明的是,为了便于携带,一般常见的手机、平板等移动终端设备的体积都较个人电脑(PC)端小,在有限的空间中,无法使用性能更好、体积更大的硬件器件,因此,手机的硬件资源相较于PC端的硬件资源较有限。因此,手机与PC端使用的操作系统也就不同,此处不限制终端设备的操作系统具体类型。
不同的操作系统中所使用的浏览器内核也存在区别。目前PC端的处理器等硬件性能相对于移动终端较好,由此,PC端中的功能也更加丰富,也可以为用户提供更多的操作。以浏览器为例,当前PC端中包括开发人员选项的浏览器可以在加载网页时显示缓冲时间和页面大小。例如,在PC端的浏览器中包括开发人员选项,该选项可以调出控制台。在控制台中可以检测到每一个网页的加载状况,包括每个网页中加载了哪些资源数据以及各个请求的回复和耗时等。例如,如图1中示出一种PC端显示的控制台页面示意图,其中可以看到加载左侧某购物网站首页的完成时间是4.33秒,加载的资源数据文件有2.3MB。如此,PC端的浏览器就可以直接基于获取到的加载网页的总时长以及加载网页的总数据量计算得到平均加载速率。
使用终端设备操作系统的手机在加载网页时,常使用webview控件。当终端设备的webview控件获取到网页的URL后,webview需要对待加载的网页的URL进行解析,将一个URL拆解为多个资源请求,之后,基于多个资源请求分别请求不同的资源数据和超文本标记语言(hyper text markup language,HTML)等内容。当webview获取到所有的资源请求结果后,再将这些资源请求结果组合起来并进行渲染,最终展示我们可以看到的网页。
从理论上来看,终端设备可以在上述webview加载网页的过程中获取到网页加载的总时间以及网页加载的总数据量,之后,根据平均加载速率的计算公式,得到平均加载速率。
一些示例中,终端设备中安装的智慧空间应用程序可以实现对webview加载网页的过程中网络性能的检测。以终端设备为手机为例,如图2所示,手机中安装有智慧空间应用程序,手机100通过路由器200与服务器300连接。智慧空间应用程序可以为用户提供用于管理路由器的功能。
在一些应用场景中,智慧空间应用程序中包括对路由器进行管理的路由卡片,用户可以通过路由卡片对路由器实现管理操作,并实现对网络性能的管理。例如,路由卡片对应的管理界面中包括智能检测选项,例如,终端设备检测到用户对如图3中(a)所示的路由卡片控件301的点击操作之后,手机上显示如图3中(b)所示的管理界面。该管理界面中包括智能检测卡片,且该智能检测卡片上包括有对于网络性能的评分以及该评分所对应的等级。终端设备在检测到用户对图3中(b)显示的控件302的点击操作后,手机显示如图3中(c)所示的与智能检测卡片对应的操作界面。在该与智能检测卡片对应的操作界面中包括体检控件303。终端设备检测到用户对该控件的点击操作后,手机显示具体的体检项目,例如,如图3中(d)所示,终端设备显示的体检项目包括宽带测试、网页体验、视频体验、网络连通、连接速率、路由状态、信号质量以及干扰分析等。终端设备在检测到用户对图3中(d)的一键体检控件304的点击操作后,手机可以分别执行与体检项目对应的每一测试项,并得到对应的测试结果。
如图3中(e)所示的宽带测试对应的测试结果中显示,当前宽带的网速是30M,且当前网速属于较慢的水平。并且,宽带测试结果中还包括具体的平均上传速度以及平均下载速度,以及基于当前宽带的网速为用户发出的提醒信息。又如,网页体验的测试结果中显示的总结论表示,当前上网体验较好,且给出了网页加载的相关参数,如平均完全加载时间、平均加载速率以及平均响应时间。再如,视频体验的测试结果中显示的总结论表示,当前观看视频的体验为流畅,且用户可以观看蓝光(1080P)的视频。此外,该界面中还给出了视频加载的相关参数,如缓冲时延、缓冲速率以及卡顿次数等。如此,无论用户是否懂得与网络相关的理论知识,都能基于测试结果从宽带、网页、视频等方面对网络性能进行了解。
可以理解地,由于手机显示屏幕中显示内容有限,因此,图3中(e)仅示出了宽带测试、网页体验以及视频体验对应的测试结果,实际图3中(e)所示的界面中包括所有体检项目对应的测试结果,用户可以通过滑动屏幕对每个体检项目对应的测试结果进行查看。
然而,由于webview是完全被封装起来的,在利用webview加载网页的过程中,是由webview自行进行请求和渲染,终端设备无法直接在上述过程中拿到webview加载每一资源请求对应的资源请求结果,也就无法获取载网页所需资源数据的总数据量,且无法计算得到平均加载速率。
目前,为了能够计算出平均加载速率,终端设备可以再开启一个线程,用于获取webview加载网页所需资源数据的总数据量,从而实现上述智慧空间应用程序的检测功能。
在一些实施例中,终端设备可以在webview加载网页的线程开启的同时,再开启一个自定义的可视化网络性能测试线程,以获取webview加载网页的总数据量。例如,如图4所示,带有箭头的直线表示时间轴,时间轴下方的线段表示运行的线程,线段的长度表示运行所占用的时间。在t1时刻,webview加载网页的线程a1以及数据获取线程b开始运行。在t2时刻,webview加载网页的线程a1以及数据获取线程b结束运行,而webview渲染网页的线程a2开始运行。在t3时刻,线程a2结束运行,终端设备即可计算并显示出测量出的平均加载速率。
然而在上述过程中,同时运行的线程a1以及线程b会对带宽同时进行占用,因此线程b实际获取到的数据量是线程a1请求的数据量以及线程b运行所产生的数量的总和,如此,由这种方法获取到的总数据量偏大,计算得到的平均加载速率也会偏大。
为了避免自定义的可视化网络性能测试线程与webview加载网页的线程同时占用带宽的问题,终端设备可以先运行webview加载网页的线程,在webview加载出网页之后,再使用自定义的数据获取线程获取webview加载网页的总数据量。比如,webview完成网页A的加载之后,终端设备可以调用OkHTTP请求向服务器发送与网页A对应的网页资源请求,该网页资源请求与webview加载网页时向服务器发送的,并在收到服务器回复的网页资源数据后,对网页资源数据的数据量大小进行统计,就可以得到webview相同的网页所请求的总数据量。在webview加载出网页之后开启自定义的数据获取线程,可以避免自定义的数据获取线程占用webview加载网页线程的带宽,从而能够准确的获取到总数据量。
例如,如图5所示,带有箭头的直线表示时间轴,时间轴下方的线段表示运行的线程,线段的长度表示运行所占用的时间,在t1时刻,webview加载网页的线程a1开始运行,在t2时刻,webview加载网页的线程a1结束运行,而webview渲染网页的线程a2,以及数据获取线程b开始运行。此时线程a1以及线程b没有同时运行,线程b不会在线程a1运行时占用带宽,因此线程b实际获取到的数据量与线程a1请求的数据量相同。然而,在t3时刻,webview渲染网页的线程a2结束运行后,线程b仍然处于运行状态,直至t4时刻。可以看出,图5中t1时刻到t4时刻的总时间,相对于图4中t1时刻到t3时刻的总时间较长。也就是说,上述过程会拉长整个测试的时间,增加用户等待测试结果的时间。
例如,在网络状况好的情况下,假如线程a1与线程b均占用10s,线程a2占用2s,利用图4中的方式进行网络性能测试时,用户等待的总时间为t1时刻到t3时刻为12s,而利用图5中的方式进行网络性能测试时,用户等待的总时间为t1时刻到t4时刻为20s。可以看出图5中的测试方式使得用户等待的时间更久。进一步地,在网络状况不好的情况下,用户等待的时间会变得更长,因此,采用图4中的测试方式会降低用户的检测体验。
针对于上述问题,本申请提供一种网页资源请求方法,能够通过其他方式,在不影响webview解析网页的URL以及渲染网页的情况下,获取到加载以及渲染网页所需的所有资源数据,从而保证用户等待时长不增加,且终端设备可以高效准确的获取到资源数据,以便于高效准确的测试出网络性能参数。
以下,图6示出了本申请实施例提供的一种终端设备100的结构示意图。终端设备100可以包括处理器610,外部存储器接口620,内部存储器621,通用串行总线(universalserial bus,USB)接口630,充电管理模块640,电源管理模块641,电池642,天线1,天线2,移动通信模块650,无线通信模块660,音频模块670,扬声器670A,受话器670B,麦克风670C,耳机接口670D,传感器模块680,按键690,马达691,指示器692,摄像头693,显示屏694,以及用户标识模块(subscriber identification module,SIM)卡接口695等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器610可以包括一个或多个处理单元,例如:处理器610可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器610中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器610中的存储器为高速缓冲存储器。该存储器可以保存处理器610刚用过或循环使用的指令或数据。如果处理器610需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器610的等待时间,因而提高了系统的效率。
在一些实施例中,处理器610可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块640用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块640为电池642充电的同时,还可以通过电源管理模块641为终端设备供电。电源管理模块641用于连接电池642,充电管理模块640与处理器610。电源管理模块641接收电池642和/或充电管理模块640的输入,为处理器610,内部存储器621,外部存储器,显示屏694,摄像头693,和无线通信模块660等供电。在一些实施例中,电源管理模块641可以设置于处理器610中。在另一些实施例中,电源管理模块641和充电管理模块640也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块650,无线通信模块660,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。
移动通信模块650可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块650可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块650可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块650还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块660可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块660可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块660经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器610。无线通信模块660还可以从处理器610接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块650耦合,天线2和无线通信模块660耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。
一些示例中,终端设备在接收到加载网页的指令后,可以通过无线通信技术从服务器处获取与网页对应的资源数据,之后,终端设备基于资源数据进行网页渲染,并将渲染后的网页显示于终端设备的显示屏中。
终端设备100通过GPU,显示屏694,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏694和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器610可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。在一些实施例中,终端设备在获取到用于表示网络性能的数据之后,可以基于这些数据显示与网络检测应用程序对应的界面,例如,终端设备获取到加载网页过程的平均加载速率等数据后,可显示图3中(e)所示的界面。
显示屏694用于显示图像,视频等。显示屏694包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLED,Micro-OLED,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏694,N为大于1的正整数。
外部存储器接口620可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口620与处理器610通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器621可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器610通过运行存储在内部存储器621的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器621可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器621可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端设备100可以通过音频模块670,扬声器670A,受话器670B,麦克风670C,耳机接口670D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
传感器模块680可以包括触摸传感器680K。触摸传感器680K,也称“触控面板”。触摸传感器680K可以设置于显示屏694,由触摸传感器680K与显示屏694组成触摸屏,也称“触控屏”。触摸传感器680K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏694提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器680K也可以设置于终端设备100的表面,与显示屏694所处的位置不同。
按键690包括开机键,音量键等。按键690可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。马达691可以产生振动提示。马达691可以用于来电振动提示,也可以用于触摸振动反馈。指示器692可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口695用于连接SIM卡。SIM卡可以通过插入SIM卡接口695,或从SIM卡接口695拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口695可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口695可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口695也可以兼容不同类型的SIM卡。SIM卡接口695也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的终端设备操作系统为例,示例性说明终端设备100的软件结构。
上述终端设备可以采用分层架构将软件分成若干个层,每一层都有清晰的角色和分工,层与层之间通过软件接口通信。
本申请实施例以图7所示的系统架构,终端设备100的软件被分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(runtime)和系统库,以及内核层。
应理解,图7所示软件分层仅为示例性的,实际实施时可以包括更多或者更少的层。例如,还可以包括硬件抽象层,硬件抽象层位于内核层以及硬件层之间。
应用程序层可以包括一系列应用程序包。如图7所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,浏览器,网络测试等应用程序。
其中,网络测试应用程序表示具备测试网络性能功能的应用程序,本申请实施例并不限定该应用程序的名称。在一些实施例中,在终端设备中安装的设置应用程序具备测试网络性能功能的情况下,该设置应用程序可被称为网络测试应用程序。在另一些实施例中,某即时通信应用程序具备测试网络性能功能,则该即时通信应用程序也可被称为网络测试应用程序。例如,图2所示,具备网络性能测试的智慧空间应用程序,为网络测试应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图7所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器、OkHTTP等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件,webview等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括网络性能检测图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
其中,webview可以解析网页的第一统一资源定位器URL,第一URL包括至少一个资源数据对应的第二URL。
一些示例中,视图系统中还包括WebViewClient,终端设备可以通过WebViewClient中的shouldinterceptRequest方法拦截webview分析网页的URL得到的至少一个资源数据的URL。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
OkHTTP可以向服务器发送第二URL对应的至少一个资源数据的请求,并获取服务器回复的资源数据。
Runtime包括核心库和虚拟机。Runtime负责终端设备操作系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是终端设备操作的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,通信驱动。通信驱动用于驱动移动通信模块650,无线通信模块660,调制解调处理器以及基带处理器等器件。
需要在此说明的是,在网络性能测试的过程中,系统库主要用于为应用程序框架层提供所需要的系统级实现,比如库提供数据库支持,3D绘图支持,浏览器内核支持等。
以下根据图7,对终端设备通过webview实现网页加载过程进行简单说明。相关技术提供了一种网页加载以及渲染的方法。终端设备获取到用户在浏览器的地址栏中输入的网页URL后,将URL输入至webview中(图7中过程①)。之后,webview解析该网页URL得到多个资源URL,再基于每个资源URL向通信驱动发送驱动请求(图7中的过程②),随后,通信驱动可以驱动网络设备(图7中的过程③)向服务器发送资源请求。网络设备还可以接收服务器针对每个资源URL反馈的网页资源数据,并将网页资源数据反馈给webview(图7中的过程④),以使webview可以对所有的网页资源数据进行渲染,得到最终展示于显示屏中的网页。
结合图4以及图5,以及前述相关描述中,可以看出,通过上述过程对资源数据请求后,得到的数据量不准确,或者需要用户等待较长的时间。
为了解决上述技术问题,在本申请实施例提供的网页资源请求方法中,网络测试应用程序向webview发送用于测试的网页URL(图7中的过程⑤),在webview将该URL分解为多个资源URL后,终端设备利用本申请实施例提供一种OkHTTP基于webview解析网页的URL得到的资源URL,通过网络驱动向服务器发送资源请求的动作,使得终端设备中不再执行图7中的过程②。OkHTTP在获取到所有资源URL(图7中的过程⑥)之后,可以代替webview,向通信驱动发送驱动请求(图7中的过程⑦)随后,通信驱动可以驱动网络设备(图7中的过程③)向服务器发送资源请求。网络设备在接收服务器针对每个资源URL反馈的网页资源数据后,可以对基于网页资源数据获取网络性能参数,再将网页资源数据以及网页性能参数通过OkHTTP反馈给webview(图7中的过程⑧以及过程⑨),以使webview可以对所有的网页资源数据以及网页性能参数进行渲染,最终显示包括网络性能参数的可视化界面。
如图8所示,线程a1为webview对URL进行解析的过程,线程b的执行过程包括图7中的过程⑥、过程⑦、过程③、过程⑧以及过程⑨。线程a2为OkHTTP将网页的资源数据以及网页性能参数反馈给webview之后,webview基于网页的资源数据做的渲染过程。利用线程b可以获取请求到的资源数据。并且可以基于资源数据获取到用于指示资源数据的数据量的指示信息。之后,线程b将这些资源数据给到webview,即可通过线程a2实现页面的渲染,得到如图3中的(e)展示的页面,并且,终端设备还可以获取到加载网页的总时长。如此,线程b既不会与线程a(指webview加载网页以及渲染网页的总过程,即图4和图5中的线程a1)同时执行,避免对带宽的占用,保证获取的资源数据大小的准确性。并且,线程b也不会在线程a完整的执行完后再重复的执行一遍,导致用户等待的时长增加,降低终端设备的使用体验。
在此过程中,OkHTTP拦截webview得到的资源URL后,基于资源URL发起资源请求,而webview则不会再重复的基于资源URL发起资源请求,可以避免OkHTTP以及webview同时占用带宽,从而保证能够准确的获取数据量,并且,OkHTTP基于资源URL发送一次请求后,终端设备就可以计算并显示网络性能参数,因此,不会导致等待时长增加的问题。
参见图9,图9为本申请提供的一种网页资源请求方法的流程示意图。
在第一时段内,终端设备执行如下步骤:
步骤S901、解析网页的第一统一资源定位器URL,第一URL包括至少一个资源数据对应的第二URL。
示例性的,结合图8,终端设备可以通过线程a1在t1时刻至t2时段内执行对网页URL的解析操作。一些示例中,由webview执行线程a1的解析操作。
在第一时段之后的第二时段内,执行如下步骤:
步骤S902、向服务器发送第二URL对应的至少一个资源数据的请求;
步骤S903、获取服务器基于请求回复的资源数据。
示例性的,结合图8,终端设备可以通过线程b在t2时刻至t3时段内,执行上述步骤S902以及步骤S903。一些示例中,由OkHTTP向服务器发送资源数据的请求,并接收服务器回复的资源数据请求。
在一些实施例中,终端设备从服务器处获取的资源数据中,可以包括指示信息,指示信息用于指示资源数据的数据量。可选地,指示信息可以包括在资源数据中,也可以为独立于资源数据存在的指示信息。
可选地,在第二时段之后的第三时段内,如图8所示,终端设备可以通过线程a2,执行如下步骤:基于资源数据渲染得到网页。
在一些实施例中,该网页资源请求方法适用于检测网络性能的场景。下面,对本申请实施例提供的网页资源请求方法进行详细说明。
如图10所示,本申请实施例提供的网页资源请求方法包括如下步骤:
步骤S1001、响应于接收到网络性能测试指令,网络性能测试应用程序获取网页URL。
在本申请实施例中,终端设备检测到用户对图3中(d)一键体检控件304的点击操作,可以被视为接收到网络性能测试指令。
在一些实施例中,网页URL可以为终端设备中预先设置好的。例如,网络性能检测应用程序在安装至终端设备中后,将用于测试网络性能的网页URL存储于终端设备中。
一些示例中,当终端设备在检测到用户对图3中(d)一键体检控件304的点击操作后,终端设备从存储器中获取预先存储的所有网页URL。
一些示例中,在终端设备中预先设置有多个网页URL的情况下,终端设备还可以从预先存储的多个网页URL中随机选择至少一个网页URL。
步骤S1002、网络性能测试应用程序将网页URL发送至webview。
步骤S1003、webview对网页URL进行解析,并得到多个资源URL。
webview在加载一个网页时,并非仅发出一次请求就可获取到全部的资源数据,而是需要对不同的资源数据进行分别的请求。因此,webview在拿到网页URL后,首先会对网页URL进行解析,将网页URL拆分为多个资源URL。例如,购物网页由图片、视频以及文字等内容,那么该购物网页URL可以分别被拆分为用于请求图片的资源URL,用于请求视频的资源URL,以及用于请求文字的资源URL。
步骤S1004、响应于得到多个资源URL,拦截所有资源URL。
在一些实施例中,可以使用自定义的WebViewClient重写shouldinterceptRequest方法拦截所有的资源URL。WebViewClient是用于帮助webview处理各种通知、请求事件的工具。在本方法中,对WebViewClient中的shouldinterceptRequest方法进行重写,以使通过WebViewClient中的shouldinterceptRequest方法可以拦截资源URL。
一些示例中,shouldInterceptRequest方法的拦截原理是在响应阶段拦截下资源URL,然后用其他方法对资源URL进行资源请求,并且,webview不再基于资源URL向服务器发送请求。
步骤S1005、分别请求每个资源URL,并得到服务器回复的所有资源数据。
在一些实施例中,终端设备可以利用OkHTTP请求每个资源URL。
步骤S1006、基于服务器回复的所有资源数据确定网络性能参数。
在一些实施例中,网络性能测试应用程序中包括用于计算网络性能参数的进程,该进程可以在收到服务器回复的所有资源数据后,统计每个资源数据的数据量大小之和,得到加载网页所需的总数据量大小。之后,该进程还可以基于总数据量大小与使用webview加载网页的加载总时长计算得到平均加载速率。
一些示例中,部分资源URL对应的回复头中包括该资源数据的数据大小,对于这些回复,进程可以直接基于回复头拿到资源数据的数据大小。但是对于回复头中没有资源数据大小的回复,进程需要基于该回复资源数据估算资源数据量。
可选地,在步骤S1006之后,为了保证webview可以继续渲染网页,可以通过下述方法(如图10中虚线框2内的步骤)将资源数据发送给webview。
步骤S1007、将Response类型的回复转换为WebResourceResponse类型的回复。
其中,回复即指前述实施例中的资源数据。
在终端设备利用OkHTTP或其他方法请求每个资源URL对应资源数据的情况下,终端设备从服务器处获取的回复的类型为Response,而webview可以处理的回复类型为WebResourceResponse类型,因此,终端设备可以将Response类型的回复转换为WebResourceResponse类型的回复。
在一些实施例中,可以通过下述过程将Response类型的回复转换为WebResourceResponse类型的回复:首先,获取用于请求Response类型回复的请求头,并从该请求头中获取内容类型(Content-type)、编码类型。
其中, Content-type、编码类型为请求头中的常见的关键对象。Content-Type,一般是指网页中存在的 Content-Type,用于定义网页文件的内容的类型,决定浏览器将以什么形式读取这个网页文件。也就是说,Content-Type可以告诉客户端实际返回的内容的内容类型。编码类型是指网页文件的编码方式,决定浏览器将以什么编码读取这个网页文件。一些示例中,浏览器的原生 form 表单,如果不设置编码类型,那么最终就会以application/x-www-form-urlencoded 方式提交数据。
那么,终端设备便可以利用对象的构造方法将Content-type、编码类型构造为WebResourceResponse类型的头。之后,终端设备将Response类型回复的数据部分(body)转换为字节输入流类(inputStream)的响应流。随后,终端设备将Content-type、编码类型以及响应流组合成WebResourceResponse类型的回复中的对象,即resourceResponse。
在一些实施例中,resourceResponse的head为map类型的键值对,其与Response类型的回复的string的head不同,因此,终端设备可以将Response类型的回复中的head中添加冒号后,再转为map类型的键值对,将转换得到的map类型的键值对作为resourceResponse的head。
步骤S1008、将WebResourceResponse类型的回复以及网络性能参数发送给webview。
一些实施例中,网络性能参数可以依据实际应用场景确定,例如,网络性能参数可以包括平均加载速率、平均完全加载时间、平均响应时间。
步骤S1009、webview基于WebResourceResponse类型的回复以及网络性能参数渲染出网络性能展示页面。
如此,通过上述步骤S1007-步骤S1009,可以保证webview可以接收到webview能够处理的WebResourceResponse类型的资源数据。
在一些实施例中,上述方法应用于检测网络性能的场景,检测得到的网络性能参数包括如下至少一项参数:网页的加载时长、网页的平均加载速率。其中,网页的平均加载速率是基于网页的加载时长以及资源数据的数据量确定的。
一些实例中,如图8所示,网页的加载时长可以为t1时刻至t3时刻的时长。
一些示例中,如图9所对应的实施例中,网页的加载时长可以为第一时段对应的时长与第二时段对应的时长的和。
在一些实施例中,如图10所示,虚线框1内的步骤S1001以及步骤S1002为可选地步骤。相应地,在终端设备不执行步骤S1001以及步骤S1002的情况下,终端设备在执行步骤S1003时,可以通过webview获取预设好的网页URL,并对其进行解析,得到多个资源URL。
在一些实施例中,终端设备可以通过其他方式获取webview解析得到的多个资源URL。例如,直接获取,或者通过其他拦截方法获取。此处不限定终端设备获取webview解析得到的多个资源URL的具体方式。
在一些实施例中,该网页资源请求方法适用于网页展示的场景。下面,简单对本申请实施例提供的网页资源请求方法进行详细说明。
一些示例中,在步骤S1005之后,终端设备可以获取到服务器回复的所有资源数据。那么终端设备可以基于用户的需求对资源数据进行修改,以使终端设备可以基于修改后的资源数据渲染出符合用户需求的网页。例如,可以在服务器回复的所有资源数据中添加或者减少指定的字段,又如,可以将服务器回复的所有资源数据替换为其他内容,再如,还可以过滤服务器回复的所有资源数据中的部分内容,可以实现在页面中过滤掉广告或者其它内容的效果。
例如,终端设备获取到服务器回复的所有资源数据为网页游戏的资源数据,为了避免孩子查看网页游戏,那么,终端设备中被孩子的监护人输入了禁止访问一切网页游戏的需求,此时,孩子输入网页游戏的网址后,终端设备上实际显示的第一界面中可以包括提示禁止访问的信息。
如图8所示,线程a1为webview对URL进行解析的部分,线程b为上述步骤S1004-步骤S1008的过程,线程a2为步骤S1009。可以看出,上述方案可以将获取网页资源数据的过程和基于网页资源数据渲染的过程进行解耦,利用线程b可以获取请求到的资源数据统计数据量大小以及加载网页所用的资源数据。之后,线程b将这些资源数据给到webview,即可通过线程a2实现页面的渲染,得到如图3中的(e)展示的页面。如此,线程b既不会执行与线程a相同的步骤,导致等到时长增加,也无需与线程a一同执行避免对带宽的占用,保证获取的资源数据大小的准确性。
以上结合图6-图10详细说明了本申请实施例提供的网页资源请求方法。以下结合图11详细说明本申请实施例提供的终端设备。
在一种可能的设计中,图11为本申请实施例提供的终端设备的结构示意图。如图11所示,终端设备1100可以包括:显示单元1101、处理单元1102以及收发单元1103。终端设备1100可用于实现上述方法实施例中涉及的终端设备的功能。
可选地,显示单元1101,用于支持终端设备1100显示界面内容;和/或,支持终端设备1100执行图9中的方法;还用于支持终端设备1100执行图10中的方法。
可选地,处理单元1102,用于支持终端设备1100执行图9中的方法;还用于支持终端设备1100执行图10中的方法。
可选地,收发单元1103,用于支持终端设备1100执行图9中的方法;还用于支持终端设备1100执行图10中的方法。
其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。终端设备1100中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的网页资源请求方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。
可选地,图11所示的终端设备1100还可以包括存储单元(图11中未示出),该存储单元中存储有程序或指令。当处理单元1102以及收发单元1103执行该程序或指令时,使得图11所示的终端设备1100可以执行上述方法实施例中所述的网页资源请求方法。
图11所示的终端设备1100的技术效果可以参考上述方法实施例中所述的网页资源请求方法的技术效果,此处不再赘述。
除了以终端设备1100的形式以外,本申请实施例提供的技术方案也可以为终端设备中的功能单元或者芯片,或者与终端设备匹配使用的装置。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述终端设备上运行时,使得该终端设备执行上述方法实施例中的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序,当计算机程序在终端设备上运行时,使得终端设备执行上述方法实施例中的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种网页资源请求方法,其特征在于,应用于终端设备,所述方法包括:
第一时段内,解析网页的第一统一资源定位器URL,第一URL包括至少一个资源数据对应的第二URL;
在所述第一时段之后的第二时段内,执行如下操作:
向服务器发送所述第二URL对应的至少一个资源数据的请求;
获取所述服务器基于所述请求回复的资源数据。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于检测网络性能参数,所述网络性能参数包括如下至少一项参数:所述网页的加载时长、所述网页的平均加载速率。
3.根据权利要求2所述的方法,其特征在于,所述平均加载速率是基于所述加载时长以及所述资源数据的数据量确定的。
4.根据权利要求2或3所述的方法,其特征在于,所述加载时长是所述第一时段对应的时长与所述第二时段对应的时长。
5.根据权利要求1所述的方法,其特征在于,获取所述服务器基于所述请求回复的资源数据之后,所述方法还包括:
将所述资源数据发送至网络视觉webview;
响应于所述webview基于所述资源数据渲染得到所述网页。
6.根据权利要求5所述的方法,其特征在于,所述资源数据的类型包括Response类型以及WebResourceResponse类型,所述将所述资源数据发送至webview之前,所述方法还包括:
将Response类型的所述资源数据转换为WebResourceResponse类型的所述资源数据;
将WebResourceResponse类型的所述资源数据发送至所述webview。
7.根据权利要求6所述的方法,其特征在于,所述Response类型的资源数据包括第一回复头以及第一回复主体,所述WebResourceResponse类型的资源数据包括第二回复头以及第二回复主体;
所述第二回复头包括第一关键对象; 所述第一关键对象是利用对象的构造方法将第二关键对象转换得到的,所述第二关键对象是所述第一回复头中的;
所述第二回复主体包括所述第二关键对象以及响应流,所述响应流是将所述第一回复主体转换为字节输入流类得到的。
8.根据权利要求7所述的方法,其特征在于,所述第一关键对象包括内容类型以及编码类型。
9.根据权利要求7或8所述的方法,其特征在于,利用对象的构造方法将所述第一关键对象转换为第二关键对象,包括:
将所述第一关键对象转换为map类型的键值对,所述map类型的键值对为所述第二关键对象。
10.根据权利要求1-3中任一项所述的方法,其特征在于,解析网页的第一统一资源定位器URL之前,通过WebViewClient中的shouldinterceptRequest方法拦截所述至少一个资源数据的第二URL。
11.根据权利要求1-3中任一项所述的方法,其特征在于,向服务器发送所述第二URL对应的至少一个资源数据的请求,包括:
通过OkHTTP向所述服务器发送所述第二URL对应的至少一个资源数据的请求。
12.一种终端设备,其特征在于,所述终端设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述终端设备执行如权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311472945.9A CN117216428B (zh) | 2023-11-07 | 2023-11-07 | 一种网页资源请求方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311472945.9A CN117216428B (zh) | 2023-11-07 | 2023-11-07 | 一种网页资源请求方法、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117216428A true CN117216428A (zh) | 2023-12-12 |
CN117216428B CN117216428B (zh) | 2024-04-16 |
Family
ID=89039275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311472945.9A Active CN117216428B (zh) | 2023-11-07 | 2023-11-07 | 一种网页资源请求方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216428B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104361051A (zh) * | 2014-10-29 | 2015-02-18 | 中国联合网络通信集团有限公司 | 一种网页服务质量的检测方法及装置 |
CN109313661A (zh) * | 2016-05-27 | 2019-02-05 | 微软技术许可有限责任公司 | 针对原生移动应用中托管的网络应用的网页加速 |
CN109586988A (zh) * | 2017-09-28 | 2019-04-05 | 中国移动通信有限公司研究院 | 一种网页打开时延测试方法、网络设备及智能网关 |
CN112214701A (zh) * | 2020-10-14 | 2021-01-12 | 青岛海尔科技有限公司 | 页面的展示方法及系统、存储介质、电子装置 |
CN113360807A (zh) * | 2021-06-24 | 2021-09-07 | 平安普惠企业管理有限公司 | 混合模式移动应用的页面显示方法、装置及相关设备 |
-
2023
- 2023-11-07 CN CN202311472945.9A patent/CN117216428B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104361051A (zh) * | 2014-10-29 | 2015-02-18 | 中国联合网络通信集团有限公司 | 一种网页服务质量的检测方法及装置 |
CN109313661A (zh) * | 2016-05-27 | 2019-02-05 | 微软技术许可有限责任公司 | 针对原生移动应用中托管的网络应用的网页加速 |
CN109586988A (zh) * | 2017-09-28 | 2019-04-05 | 中国移动通信有限公司研究院 | 一种网页打开时延测试方法、网络设备及智能网关 |
CN112214701A (zh) * | 2020-10-14 | 2021-01-12 | 青岛海尔科技有限公司 | 页面的展示方法及系统、存储介质、电子装置 |
CN113360807A (zh) * | 2021-06-24 | 2021-09-07 | 平安普惠企业管理有限公司 | 混合模式移动应用的页面显示方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117216428B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2022211850B2 (en) | Application function implementation method and electronic device | |
CN111221845A (zh) | 一种跨设备信息搜索方法及终端设备 | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
CN113835569A (zh) | 终端设备、应用内部功能的快捷启动方法和存储介质 | |
CN113835571A (zh) | 一种终端设备、信息展示方法和存储介质 | |
CN114915618B (zh) | 升级包下载方法及装置 | |
CN114741256A (zh) | 传感器监听方法、装置及终端设备 | |
CN117216428B (zh) | 一种网页资源请求方法、终端设备及计算机可读存储介质 | |
CN113810857B (zh) | 一种信标消息处理方法以及系统 | |
CN113642010B (zh) | 一种获取扩展存储设备数据的方法及移动终端 | |
CN115981576B (zh) | 共享数据的方法、电子设备及存储介质 | |
CN116662270B (zh) | 文件解析方法及相关装置 | |
CN116033157B (zh) | 投屏方法和电子设备 | |
US20240036891A1 (en) | Sub-application running method and apparatus, electronic device, program product, and storage medium | |
WO2024093700A1 (zh) | 服务流转方法、装置及存储介质 | |
CN116546042A (zh) | IoT设备控制方法、设备、系统和计算机可读存储介质 | |
CN117714279A (zh) | 设备管理的方法、路由器及可读存储介质 | |
CN117762537A (zh) | 卡片分享方法及电子设备 | |
CN116846853A (zh) | 一种信息处理方法及电子设备 | |
CN117714413A (zh) | 确定设备品牌信息的方法、路由器及可读存储介质 | |
CN113536387A (zh) | 一种检测内核数据完整性的终端和方法 | |
CN115344160A (zh) | 一种终端设备、桌面显示方法和存储介质 | |
CN117472604A (zh) | 一种任务接续方法、电子设备、程序产品及介质 | |
CN117857646A (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN113434900A (zh) | 一种发送设备、电子终端及就诊信息的传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |