CN117707386A - 检测快应用卡片性能的方法、电子设备及存储介质 - Google Patents
检测快应用卡片性能的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117707386A CN117707386A CN202311131406.9A CN202311131406A CN117707386A CN 117707386 A CN117707386 A CN 117707386A CN 202311131406 A CN202311131406 A CN 202311131406A CN 117707386 A CN117707386 A CN 117707386A
- Authority
- CN
- China
- Prior art keywords
- card
- application
- performance
- fast application
- fast
- 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 228
- 230000006870 function Effects 0.000 claims abstract description 142
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000007405 data analysis Methods 0.000 claims abstract description 13
- 230000009471 action Effects 0.000 claims description 124
- 238000001514 detection method Methods 0.000 claims description 39
- 238000009877 rendering Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 11
- 230000007334 memory performance Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 abstract description 5
- 239000010410 layer Substances 0.000 description 26
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 238000004458 analytical method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- GRRMZXFOOGQMFA-UHFFFAOYSA-J YoYo-1 Chemical compound [I-].[I-].[I-].[I-].C12=CC=CC=C2C(C=C2N(C3=CC=CC=C3O2)C)=CC=[N+]1CCC[N+](C)(C)CCC[N+](C)(C)CCC[N+](C1=CC=CC=C11)=CC=C1C=C1N(C)C2=CC=CC=C2O1 GRRMZXFOOGQMFA-UHFFFAOYSA-J 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种检测快应用卡片性能的方法、电子设备及存储介质,涉及终端技术领域。通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,并与预设标准参数进行比较,确定第一快应用卡片的性能结果为合格或不合格。本申请制定了快应用卡片的性能评价标准,能够基于上架待审核的快应用卡片RPK文件,检测快应用卡片的相应性能信息,能够直观地评估上架卡片在内存、功耗以及时延等性能方面是否达标。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种检测快应用卡片性能的方法、电子设备及存储介质。
背景技术
快应用是新型的手机应用形态,无需下载安装,能够即点即用。卡片是属于快应用中定义的一个页面,是以嵌入其他应用进行展示的一种信息载体。一个快应用可以对应多张卡片,每张卡片只能对应一个页面。快应用卡片可以在各类使用场景的原生应用中嵌入展示,比如:负一屏、桌面、快服务中心、全局搜索等。
目前,快应用卡片种类繁多,性能各异,为了快应用卡片规范化,需要对快应用卡片进行性能检测,只有满足性能标准的快应用卡片,才能应用于手机。因此,亟需一种能够检测快应用卡片性能是否达标的方法。
发明内容
本申请提供一种检测快应用卡片性能的方法、电子设备及存储介质,制定了快应用卡片的性能评价标准,并且能够针对上架待审核的快应用卡片RPK文件,检测快应用卡片的相应性能信息,能够直观地评估上架卡片在内存、功耗以及时延等性能方面是否达标。
第一方面,本申请提供一种检测快应用卡片性能的方法,该方法包括:通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数;其中,多个性能参数包括内存性能参数、时延性能参数和/或功耗性能参数;根据第一快应用卡片的多个性能参数和预设标准参数,确定第一快应用卡片的性能结果(性能结果为不合格或合格);通过电子设备的显示屏显示第一快应用卡片的多个性能参数以及性能结果。
通过本申请实施例提供的检测快应用卡片性能的方法,通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,并与预设标准参数进行比较,确定第一快应用卡片的性能结果为合格或不合格。本申请制定了快应用卡片的性能评价标准,并且能够针对上架待审核的快应用卡片RPK文件,检测快应用卡片的相应性能信息,能够直观地评估上架卡片在内存、功耗以及时延等性能方面是否达标。
其中,第一快应用卡片加载过程的各个阶段包括卡片SDK初始化、卡片VDom解析、卡片首屏加载、卡片全部加载、卡片渲染、卡片网络请求、卡片加载图片容器等。
其中,第一快应用卡片的多个性能参数可以包括以下至少一项:卡片VDom解析时长、卡片首屏加载时长、卡片全部加载时长、页面渲染次数/时长、网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数、图片容器大小、图片请求次数、卡片添加之前PSS、卡片加载完成PSS、卡片占用PSS。
在一种可能实现方式中,所述方法应用于电子设备,电子设备安装有快应用调试器和快应用引擎。其中,快应用调试器用于指示快应用引擎加载第一快应用卡片;快应用引擎用于创建JavaScript线程,并通过JavaScript线程加载第一快应用卡片。其中,快应用调试器用于向快应用引擎注册对第一快应用卡片进行性能监听,并创建预设接口函数。
本申请方案可以根据实际使用需求,制定快应用卡片性能标准,并且提供一个标准化工具“快应用调试器”程序,该“快应用调试器”程序可以用于在快应用RPK上架审核时,检测快应用RPK的相应性能信息。快应用RPK的相应性能信息包括卡片性能参数。通过快应用卡片性能标准和标准化工具,可以很直观地评估上架卡片的功耗性能是否达标。
在一种可能实现方式中,预设接口函数为onPerformanceCallback接口函数,预设接口函数支持被快应用调试器和快应用引擎调用。
通过本申请方案,快应用调试器向快应用引擎注册卡片性能监听,并且在卡片原监听接口setRenderListener基础上,增加性能回调(onPerformanceCallback)接口,便于获取卡片加载过程的各个阶段的性能参数。
在一种可能实现方式中,第一快应用卡片加载过程的各个阶段包括第一阶段和第二阶段,第一阶段对应的预设方法函数为第一方法函数,第二阶段对应的预设方法函数为第二方法函数。所述在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段,包括:在第一阶段,快应用引擎触发执行第一方法函数,并调用预设接口函数将第一方法函数的特定字段回调给快应用调试器;以及,在第二阶段,快应用引擎触发执行第二方法函数,并调用预设接口函数将第二方法函数的特定字段回调给快应用调试器。
需要说明的是,上述第一阶段和第二阶段、第一方法函数和第二方法函数均为示例性地说明。第一快应用卡片加载过程的各个阶段包括两个或更多个阶段,不限于上述第一阶段和第二阶段。每个阶段对应一个方法函数。
在一种可能实现方式中,所述对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,包括:快应用调试器对第一方法函数的特定字段进行数据解析,获取第一快应用卡片的第一性能参数;快应用调试器对第二方法函数的特定字段进行数据解析,获取第一快应用卡片的第二性能参数。其中,第一快应用卡片的多个性能参数包括第一性能参数和第二性能参数。
通过上述方案,快应用调试器根据action字段进行数据解析,获取卡片加载各个阶段的时间。快应用调试器可以记录在卡片调试过程中的不同阶段的参数值,并根据记录的这些参数值确定卡片相关性能信息。
在一种可能实现方式中,第一方法函数为onPerformance(action,key,time)函数,第一方法函数的特定字段包括action、key和time;其中,action为卡片加载过程的各个阶段对应的标识,key为卡片加载过程的各个阶段对应的参数名称,time为卡片加载过程的各个阶段对应的时间。
在一种可能实现方式中,第二方法函数为onPerformance(action,info)函数,第二方法函数的特定字段包括action和info;其中,action为卡片加载过程的各个阶段对应的标识,info为卡片加载过程的各个阶段对应的性能信息。
在一种可能实现方式中,在通过JavaScript线程加载第一快应用卡片之前,所述方法还包括:响应于用户操作,快应用调试器启动对第一快应用卡片进行性能检测,并开始计时。
在一种可能实现方式中,在快应用调试器启动对第一快应用卡片进行性能检测之后,在根据第一快应用卡片的多个性能参数,确定第一快应用卡片的性能结果之前,所述方法还包括:在计时时长达到预设周期时长后,快应用调试器停止对第一快应用卡片进行性能检测。
在本申请实施例中,预设周期时长可以为15秒,作为快应用卡片的检测周期。
在一种可能实现方式中,上述多个性能参数包括内存性能参数,内存性能参数包括用于加载第一快应用卡片所需的第一内存占用量。
在快应用调试器启动对第一快应用卡片进行性能检测之后,所述方法还包括:快应用调试器调用System.gc()函数执行内存垃圾清理;快应用调试器统计第一快应用卡片在加载前的内存大小;在计时时长达到预设周期时长后,快应用调试器统计第一快应用卡片在加载后的内存大小;快应用调试器根据第一快应用卡片在加载前的内存大小以及在加载后的内存大小,确定第一内存占用量。
其中,在卡片加载前先清除内存垃圾,统计第一PSS内存值,并进行15秒的延迟作为内存的统计周期,当15秒周期到时,再次统计第二PSS内存值,根据第二PSS内存值和第一PSS内存值之间的差值,计算卡片加载带来的内存增值。
通过上述方案,在快应用卡片下载安装成功后,若用户点击快应用调试器的界面中的开始调试控件,则快应用调试器可以调用System.gc()函数进行内存垃圾清理。通过主动进行内存垃圾清理,可以准确地统计出卡片加载前PSS内存大小。
在一种可能实现方式中,上述多个性能参数包括时延性能参数,时延性能参数包括卡片虚拟Dom解析时长、卡片首屏加载时长、卡片全部加载时长,和/或渲染时长。
所述对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,包括:快应用调试器通过调用预设接口函数获取到特定字段;其中,特定字段包括第一字段、第二字段和第三字段;其中,第一字段携带卡片加载过程的各个阶段对应的标识,第二字段携带卡片加载过程的各个阶段对应的参数名称,第三字段携带卡片加载过程的各个阶段对应的时间;快应用调试器对特定字段进行解析,得到卡片加载过程的各个阶段的执行时间,并基于卡片加载过程的各个阶段的执行时间求时间差,确定时延性能参数。
通过上述方案,快应用调试器注册卡片性能监听回调onPerformanceCallback,在卡片渲染过程中,回调当前卡片渲染的时机和时间等。快应用调试器可以根据从快应用引擎回调的特定字段进行数据解析,获取卡片加载各个阶段的时间。
例如,下面列出了各个标记分别代表不同的阶段:action=0,代表开始加载。action=8,代表VDom开始解析。action=9,代表VDom解析完成。action=11,代表首屏渲染。action=10,代表刷新。
在一种可能实现方式中,上述多个性能参数包括功耗性能参数,功耗性能参数包括网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数、图片容器大小,和/或图片请求次数。
所述对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,包括:快应用调试器通过调用预设接口函数获取到特定字段;其中,特定字段包括第一字段和第四字段;其中,第一字段携带卡片加载过程的各个阶段对应的标识,第四字段携带卡片加载过程的各个阶段对应的性能信息;快应用调试器对特定字段进行解析,得到功耗性能参数。
通过上述方案,在卡片进行网络请求时,将请求URL和当前时间作为参数,通过onPerformanceCallback接口回调给快应用调试器。在网络请求返回时,根据reponse报文计算报文大小,将结束时间、请求URL、请求时间、数据大小作为参数,通过onPerformanceCallback接口回调给快应用调试器。快应用调试器在收到数据后,根据action字段进行数据解析赋值。
通过上述方案,在卡片使用图像组件进行背景图设置时,将图片URL和当前时间作为参数,触发onPerformance(action,info)方法,并通过onPerformanceCallback回调给快应用调试器。快应用调试器在收到数据后,根据action字段获取图片资源加载的次数。
通过上述方案,在卡片更新数据信息时,将图片URL、当前时间、图片大小和控件大小作为参数,触发onPerformance(action,info)方法,并通过onPerformanceCallback回调给快应用调试器。快应用调试器在收到数据后,根据action字段获取图片大小和容器的大小。
在一种可能实现方式中,所述根据第一快应用卡片的多个性能参数和预设标准参数,确定第一快应用卡片的性能结果,包括:将多个性能参数中每个性能参数值与对应的预设标准参数进行比较,根据比较结果确定多个性能参数中每个性能参数的分数;根据多个性能参数中所有性能参数的分数,确定第一快应用卡片的整体性能评分;根据第一快应用卡片的整体性能评分与预设分数阈值的比较结果,确定第一快应用卡片的性能结果。
在一种可能实现方式中,所述根据多个性能参数中所有性能参数的分数,确定第一快应用卡片的整体性能评分,包括:对多个性能参数中所有性能参数的分数进行加权求和,得到第一快应用卡片的整体性能评分;其中,所述多个性能参数中的每个性能参数预设有对应的权重值。
通过本申请方案,快应用调试器计算并统计得到卡片性能参数,然后确定快应用卡片的多个性能参数分别对应的分数,对快应用卡片的多个性能参数分别对应的分数进行加权求和,得到快应用卡片的整体性能评分。根据快应用卡片的整体性能评分与预设分数阈值的比较结果,确定快应用卡片的性能结果,性能结果即当前周期检测结果。快应用调试器展示当前周期检测结果,当前周期检测结果包括卡片性能信息以及调试结果。
在一些实施例中,调试结果为及格或不及格。
在另一些实施例中,调试结果为及格、不及格或优秀。
在一种可能实现方式中,快应用调试器包括卡片软件开发工具包SDK。其中,所述通过调用预设接口函数获取预设方法函数的特定字段,包括:快应用调试器通过卡片SDK调用预设接口函数,获取预设方法函数的特定字段。
在一种可能实现方式中,在通过JavaScript线程加载第一快应用卡片之前,所述方法还包括:电子设备安装并下载快应用调试器;电子设备显示快应用调试器的应用图标;响应于用户对快应用调试器的应用图标的操作,电子设备启动快应用调试器,并加载快应用引擎;快应用引擎包括快应用RPK文件。
所述通过JavaScript线程加载第一快应用卡片,包括:响应于用户选中第一快应用卡片对应的快应用RPK文件并触发开始检测的操作,电子设备通过快应用引擎创建JavaScript线程,并加载第一快应用卡片。
第二方面,本申请提供一种检测快应用卡片性能的装置,该装置包括用于执行上述第一方面中的方法的单元。该装置可对应于执行上述第一方面中描述的方法,该装置中的单元的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
其中,上述第一方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,处理模块或单元、显示模块或单元等。
第三方面,本申请提供一种电子设备,所述电子设备包括处理器、处理器以及存储器中存储的计算机程序或指令,处理器用于执行计算机程序或指令,使得第一方面中的方法被执行。
第四方面,本申请提供一种计算机可读存储介质,其上存储有用于实现第一方面中的方法的计算机程序(也可称为指令或代码)。例如,该计算机程序被计算机执行时,使得该计算机可以执行第一方面中的方法。
第五方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。
第六方面,本申请提供一种芯片系统,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。可选地,所述芯片系统还包括存储器,存储器与处理器通过电路或电线连接。
第七方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序(也可称为指令或代码),所述计算机程序被电子设备执行时使得电子设备实现第一方面中的方法。
可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的电子设备显示快应用卡片的示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3A为本申请实施例提供的一种电子设备的软件架构示意图一;
图3B为本申请实施例提供的一种电子设备的软件架构示意图二;
图4为本申请实施例提供的一种检测快应用卡片性能的方法的流程示意图;
图5为本申请实施例提供的快应用卡片性能参数的示意图;
图6为本申请实施例提供的检测快应用卡片性能的方法中PSS内存的示意图;
图7A和图7B为本申请实施例提供的检测快应用卡片性能的方法的应用场景示意图;
图8为本申请实施例提供的一种检测快应用卡片性能的方法的时序示意图;
图9为本申请实施例提供的另一种检测快应用卡片性能的方法的时序示意图;
图10为本申请实施例提供的检测快应用卡片性能的装置的示意性框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
快应用是一种新型的应用形态,以往的手机端应用主要有两种方式:网页、原生应用。网页无需安装,却体验不是很好;原生应用体验流畅,却需要从应用商店下载安装,难以一步直达用户。快应用的出现,能够让用户无需下载安装,并且还能流畅的体验应用内容,能够即点即用。
快应用卡片是属于快应用中定义的一个页面,是以嵌入其他应用进行展示的一种信息载体。一个快应用可以对应多张卡片,每张卡片只能对应一个页面。快应用卡片可以在各类使用场景的原生应用中嵌入展示,比如:负一屏、桌面、快服务中心、全局搜索等。
示例性地,图1中的(a)示出了在快服务中心界面中显示快应用卡片“头条热榜”的示意图。
示例性地,图1中的(b)示出了在负一屏界面中显示快应用卡片“出行导航”的示意图。
示例性地,图1中的(c)示出了在桌面界面中显示快应用卡片“航班日程”的示意图。
目前,快应用卡片种类繁多,性能各异,为了快应用卡片规范化,需要对快应用卡片进行性能检测,只有满足性能标准的快应用卡片,才能应用于手机。因此,亟需一种能够检测快应用卡片性能是否达标的方法。
基于此,本申请实施例提供一种检测快应用卡片性能的方法及电子设备,通过在手机系统底层进行改进,以提高用户体验。
为了更好地理解本申请实施例,以下先对本申请实施例进行简要说明:
通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数;其中,多个性能参数包括内存性能参数、时延性能参数和/或功耗性能参数;根据第一快应用卡片的多个性能参数和预设标准参数,确定第一快应用卡片的性能结果(性能结果为不合格或合格);通过电子设备的显示屏显示第一快应用卡片的多个性能参数以及性能结果。
通过本申请实施例提供的检测快应用卡片性能的方法,通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,并与预设标准参数进行比较,确定第一快应用卡片的性能结果为合格或不合格。本申请制定了快应用卡片的性能评价标准,并且能够针对上架待审核的快应用卡片RPK文件,检测快应用卡片的相应性能信息,能够直观地评估上架卡片在内存、功耗以及时延等性能方面是否达标。
以下,先结合附图对本申请实施例提供的检测快应用卡片性能的方法应用的电子设备进行说明。
示例性的,本申请实施例中的电子设备可以是手机、平板电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、可穿戴式设备(如:智能手表、智能手环),等具备语音通信功能的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
示例地,以电子设备为手机为例,图2示出了本申请实施例提供的另一种电子设备的结构示意图。也即,示例性的,图2所示的电子设备可以是手机。
如图2所示,手机可以包括:处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,USB)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370A,受话器(即听筒)370B,麦克风370C,耳机接口370D,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identification module,SIM)卡接口395等。
示例性地,上述传感器模块可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器以及骨传导传感器等传感器。在本申请实施例中,电子设备可以通过接近光传感器(即光线传感器)、距离传感器等传感器来检测用户耳朵是否贴靠在听筒附近。例如,电子设备可以通过距离传感器检测手机前面板(或者屏幕)前方是否有遮挡,以及遮挡物与屏幕之间的距离,确定当前用户耳朵是否贴靠在听筒附近。
可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,处理器310用于:通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数;其中,多个性能参数包括内存性能参数、时延性能参数和/或功耗性能参数;根据第一快应用卡片的多个性能参数,确定第一快应用卡片的性能结果(性能结果为不合格或合格);并指示电子设备的显示屏显示第一快应用卡片的多个性能参数以及性能结果。
控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机的结构限定。在另一些实施例中,手机也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
手机的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
手机可以通过GPU,显示屏394,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏394用于显示图像,视频等。
在本申请实施例中,显示屏394用于显示快应用调试器的应用图标以及快应用调试器的交互界面。
在本申请实施例中,显示屏394还用于显示第一快应用卡片的多个性能参数以及性能结果。
在本申请实施例中,快应用卡片的入口可以设置在显示屏的不同界面,具体可以由系统预设,也可以由用户自定义设置。例如可以在显示屏的桌面上显示快应用卡片,也可以在显示屏的负一屏显示快应用卡片,还可以在显示屏的快服务中心显示快应用卡片,或者可以在锁屏界面中显示快应用卡片。对于具有小屏的折叠屏电子设备而言,可以在小屏上显示快应用卡片。
外部存储器接口320可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机的存储能力。内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行手机的各种功能应用以及数据处理。例如,在本申请实施例中,处理器310可以通过执行存储在内部存储器321中的指令,内部存储器321可以包括存储程序区和存储数据区。
手机可以通过音频模块370,扬声器370A,受话器(即听筒)370B,麦克风370C,耳机接口370D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
以上是以电子设备为例对本申请实施例作出的具体说明。应该理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。电子设备可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
本申请实施例提供的电子设备可以是用户设备(user equipment,UE),例如可以为移动终端(例如用户手机)、平板电脑、桌面型、膝上型笔记本电脑、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)等设备。
另外,在上述硬件之上,运行有操作系统,操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。在操作系统上可以安装运行应用程序。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图3A是本申请实施例的电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层(applications),应用程序框架层(application framework),安卓运行时(AndroidRuntime)和系统库,以及内核层(kernel)。
其中,应用程序层可以包括一系列应用程序包。例如,应用程序层可以包括系统桌面APP,负一屏APP,快服务中心APP等应用程序(应用程序可以简称为应用),本申请实施例对此不做任何限制。
本申请实施例中,应用程序层还可以包括快应用调试器APP和快应用引擎APP。
如图3B所示,快应用调试器APP包括卡片软件开发工具包(software developmentkit,SDK),快应用引擎APP包括快应用RPK文件,该文件的后缀名为.rpk。
其中,快应用引擎APP为电子设备中预安装的应用程序,用于实现快应用卡片的下载、安装以及更新。快应用引擎APP还用于创建卡片、加载卡片以及加载页面,创建卡片的过程包括创建JS线程、绑定JS服务,以及绑定V8。快应用引擎APP还用于执行卡片渲染动作。快应用引擎APP还用于对卡片进行网络请求。
在本申请实施例中,在快应用调试器APP和快应用引擎APP之间提供了onPerformanceCallback回调函数,用于获取快应用卡片的各方面性能参数值。
其中,快应用调试器APP可以作为快应用引擎APP的宿主,用于通过本申请实施例提供的onPerformanceCallback回调函数,获取快应用引擎APP中的快应用RPK文件对应的性能参数。
其中,快应用RPK文件对应的性能参数可以包括以下至少一项:卡片VDom解析时长、卡片首屏加载时长、卡片全部加载时长、页面渲染次数、网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数、图片容器大小、图片请求次数、卡片添加之前PSS、卡片加载完成PSS、卡片占用PSS。具体将在下文中进行详细描述。
需要说明的是,以上性能参数为示例性地列举,可以理解,在实际实现时,本申请实施例中的性能参数还可以为其他可能的参数,具体可以根据实际使用需求确定,本申请实施例不作限定。
本申请实施例中,应用程序层还可以包括情景感知模块、业务逻辑处理模块和业务呈现模块等。情景感知模块、业务逻辑处理模块和业务呈现模块可以是独立的APP,或者可以分别集成在不同的APP中,或者可以集成在同一个APP中,本申请不做限定。
其中,情境感知模块,常驻运行或以低功耗形式运行,具有感知外部事实或者环境的能力。情境感知模块可以通过应用程序接口(application programming interface,API)从应用程序层的其他应用程序或应用程序框架层或系统层或内核层来检测相关事件和获取事件的状态,比如检测蓝牙连接、网络连接、监测用户短信、定制定时器等。在本申请实施例中,情境感知模块主要作用是监听是否添加快应用卡片。情境感知模块还可以用于获取快应用卡片的参数信息。情境感知模块可以将监听到的快应用卡片以及参数信息,通知给业务逻辑处理模块。
业务逻辑处理模块(如:计算引擎)具有业务逻辑处理能力,用于根据情境感知模块监听到的快应用卡片以及参数信息,以及预设的逻辑算法进行数据处理或逻辑判断,确定在桌面或负一屏界面中按照参数信息显示快应用卡片。
业务呈现模块(如:YOYO建议),用于根据业务逻辑处理模块的指示,在电子设备的屏幕上显示快应用卡片。通过快应用卡片实现的推荐服务,信息展示更直观,服务推荐更全面,关联性更显著。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3A所示,应用程序框架层可以包括窗口管理器,JS(JavaScript)服务,视图系统,资源管理器等,本申请实施例对此不做任何限制。
JS服务用于为快应用引擎提供卡片创建、卡片渲染等服务。
窗口管理器用于管理窗口程序,例如用于管理YOYO建议提供的窗口程序。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,地图等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。
例如,在本申请实施例中,视图系统可用于在桌面中显示地图卡片。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:openGL ES),二维图形引擎(例如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维图层和三维图层的融合。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
为了便于说明,在图中还体现了与上述软件结构交互的硬件层。例如,硬件层可以包括显示屏。
需要说明的是,本申请实施例虽然以系统为例进行说明,但是其基本原理同样适用于基于/>或/>等操作系统的电子设备。
本申请实施例提供的检测快应用卡片性能的方法的执行主体可以为上述的电子设备,也可以为该电子设备中能够实现该检测快应用卡片性能的方法的功能模块和/或功能实体,并且本申请方案能够通过硬件和/或软件的方式实现,具体的可以根据实际使用需求确定,本申请实施例不作限定。下面以电子设备为例,结合附图对本申请实施例提供的检测快应用卡片性能的方法进行示例性的说明。
下面将结合附图,通过下述多个示例性实施例对本申请实施例进行举例说明。以下实施例中的方法均可以在具有上述硬件结构和软件架构的电子设备中实现。电子设备的硬件结构图可以如图2所示,电子设备的软件结构框图可以如图3A所示,但本申请实施例并不限于此。为了便于说明,本申请实施例中均以电子设备为如图2所示的手机为例。
下面结合具体的实施例介绍本申请实施例提供的检测快应用卡片性能的方法。
首先需要说明的是,本申请实施例可以根据实际使用需求,制定快应用卡片性能标准,并且提供一个标准化工具“快应用调试器”程序,该“快应用调试器”程序可以用于在快应用RPK上架审核时,检测快应用RPK的相应性能信息。快应用RPK的相应性能信息包括卡片性能参数。通过快应用卡片性能标准和标准化工具,可以很直观地评估上架卡片的功耗性能是否达标。
在一种实施例中,快应用卡片性能标准划分为合格和优秀两种标准。
其中,电子设备针对快应用卡片的每个性能参数,分别确定合格或优秀。
其中,“合格”对应第一分数,“优秀”对应第二分数。
例如,第一分数可以定义为6分,第二分数可以定义为10分。
在一种实施例中,电子设备可以根据快应用卡片的所有性能参数的分数,确定快应用卡片的整体性能评分。
在一种实施例中,电子设备可以根据快应用卡片的整体性能评分,判断快应用卡片是否合格。
在另一种实施例中,电子设备可以根据快应用卡片的整体性能评分,判断快应用卡片是合格,还是优秀。
需要说明的是,本申请实施例以划分合格和优秀两种标准为例进行示例性说明,可以理解,在实际实现时,还可以将快应用卡片性能标准划分为更多标准,具体可以根据实际使用需求确定,本申请实施例不作限定。
图5是本申请实施例提供的检测快应用卡片性能的方法的流程示意图。参照图5所示,该方法包括下述的步骤S101-S104。
S101,当第一快应用卡片的RPK文件运行时,调用第一回调函数获取第一快应用卡片的多个性能参数。
其中,第一快应用卡片为上架待审核的快应用卡片。
在本申请实施例中,在第一快应用卡片的RPK文件运行时,电子设备可以执行多个动作(action),并记录执行每个动作时的时间。
在本申请实施例中,对于多个动作,分别用不同的数字来标记。
例如,action=0,表示开始运行第一快应用卡片的RPK文件。此时记录VDom开始运行时间。
例如,action=8,表示VDom开始解析。此时记录VDom开始解析时间。
例如,action=9,表示VDom完成。此时记录VDom完成时间。
例如,action=10,表示刷新。此时记录刷新时间。
例如,action=11,表示首屏渲染。此时记录首屏渲染时间。
需要说明的是,这里action采用数字标记为示例性地说明,在实际实现时,还可以采用其他字符标记,本申请不作限定。并且,数字标记的具体取值可以根据实际使用需求设置,本申请实施例不作限定。
在本申请实施例中,如图4所示,快应用卡片对应的性能参数包括时延类性能参数、功耗类性能参数和内存类性能参数。
第一类:时延类性能参数
在本申请实施例中,时延类性能参数可以包括卡片VDom解析时长、卡片首屏加载时长、卡片全部加载时长、渲染次数。
(1)卡片VDom解析时长
卡片VDom解析时长,指卡片解析VDom树完成时间。
VDom指虚拟Dom,采用JavaScript对象描述真实Dom,通过JavaScript对象与真实Dom建立了一一对应的关系。对于Dom的更改,通过找到相应对象,也就找到了相应的Dom节点,再对Dom进行更新。
示例性地,卡片VDom解析可以包括下述两个动作:
(a)action=8开始解析,时间T8;
(b)action=9开始构建页面,时间T9;
电子设备通过日志,记录action=8的时间和action=9的时间。
电子设备可以计算时间差T9-T8,将该时间差作为卡片VDom解析时长。
需要说明的是,如果VDom树过于复杂,卡片的index.js文件过大,则会增加卡片的实际渲染时间。因此需要合理定义卡片VDom解析时长。
例如,卡片VDom解析时长在[300毫秒(ms),400ms],定义为合格。卡片VDom解析时长大于400ms,定义为不合格。
再例如,卡片VDom解析时长小于300ms,定义为优秀。
(2)卡片首屏加载时长
卡片首屏加载时长,指卡片页面首屏加载所需的时间,具体指从加载卡片开始,到首个VDom树构建完成的时间。因此卡片首屏加载时长也称为解析首屏VDom所需的时间。
在本申请实施例中,卡片首屏加载可以包括下述两个动作:
(a)action=9开始构建页面,时间T9;
(b)action=11页面创建完成,时间T11;
电子设备通过日志,记录action=9的时间和action=11的时间。
电子设备可以计算时间差T11-T9,将该时间差作为卡片首屏加载时长。
需要说明的是,如果卡片首屏加载时长过长,那么会增加卡片的实际渲染时间,因此需要合理定义卡片VDom解析时长。
例如,首屏VDom解析时间在[50毫秒(ms),100ms],定义为合格。首屏VDom解析时间大于100ms,定义为不合格。
再例如,首屏VDom解析时间小于50ms,定义为优秀。
(3)卡片全部加载时长
卡片全部加载时长,指卡片加载完成所需的时间,具体指从加载卡片开始,到卡片内容全部完成的时间。
在本申请实施例中,卡片全部加载可以包括下述两个动作:
(a)action=0加载开始,时间T0;
(b)action=11页面创建完成,时间T11;
电子设备通过日志,记录action=0的时间和action=11的时间。
电子设备可以计算时间差T11-T0,将该时间差作为卡片全部加载时长。
在本申请实施例中,卡片全部加载可以包括下述两个动作:
(a)action=0开始加载,时间T0;
(b)action=10页面刷新,时间T10;
电子设备通过日志记录action=0的时间和action=10的时间。
电子设备可以计算时间差T10-T0,将该时间差作为卡片全部加载时长。
需要说明的是,如果其中包含很多的网络请求和网络图片,会导致卡片的加载完成时间严重超标。因此需要合理定义卡片全部加载时长。
例如,卡片全部加载时长在[500ms,1000ms]范围内,定义为合格。卡片全部加载时长大于1000ms,定义为不合格。
再例如,卡片全部加载时长小于500ms,定义为优秀。
(4)卡片渲染次数;
卡片渲染次数,指卡片页面显示刷新的次数,具体是指从加载卡片开始,到卡片内容全部加载完成的过程中,中间执行的创建页面的次数。
在本申请实施例中,卡片渲染可以包括下述两个动作:
(a)action=10页面刷新;
(b)action=11页面创建完成。
电子设备通过日志记录action=11和action=10过程中执行的创建页面次数,该记录次数为卡片渲染次数。
需要说明的是,如果加载卡片时,卡片渲染的次数越多,则卡片的UI内容突闪的次数也越多,相应地、也会增加卡片加载完成时间。因此需要合理定义卡片渲染次数。
例如,卡片渲染次数等于2次,定义为合格。卡片渲染次数大于2次,定义为不合格。
再例如,卡片渲染次数等于1次,定义为优秀。
第二类:功耗类性能参数
在本申请实施例中,功耗类性能参数可以包括网络请求参数和图片参数。
其中,网络请求参数可以包括网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数。图片参数可以包括图片容器大小、图片请求次数。
(1)网络请求次数
例如,网络请求次数等于2次,定义为合格。
再例如,网络请求次数等于1次,定义为优秀。
(2)网络请求数据大小
例如,网络请求数据大小小于或等于100KB,定义为合格。
(3)网络请求单次最大耗时
例如,网络请求单次最大耗时在[200ms,400ms]范围内,定义为合格。
再例如,网络请求单次最大耗时小于200ms,定义为优秀。
(4)请求错误次数
例如,请求错误次数等于0次,定义为合格。
(5)图片请求次数
例如,图片请求次数等于2次,定义为合格。
再例如,图片请求次数等于1次,定义为优秀。
(6)图片大小;
例如,图片的宽和高小于或等于容器的宽和高,定义为合格。其中,容器指用于放置图片的控件。
下面示例性地列出了网络请求相关参数的日志:
请求接口:action=100;
返回结果:action=200,info:Bundle[{key_url=接口路径,key_time=时间戳,key_response_data_size=字节,key_response_time=耗时}];
失败:action=201。
下面示例性地列出了请求图片和图片加载的相关日志:
请求图片:action=600;
图片加载:action=601,info:Bundle[{key_url=接口路径,key_time=时间戳,key_image=[图片款,图片高,容器宽,容器高]}]。
第三类:内存类性能参数
在本申请实施例中,内存类性能参数可以包括卡片添加之前PSS、卡片加载完成PSS、卡片占用PSS。
其中,如图6所示,PSS(proportional set size,比例设置大小)是单个进程运行时实际占用的物理内存(包含比例分配共享库占用的内存),PSS中的共享库内存是按照比例计算的。一个共享库有N个进程使用,那么该库比例分配给PSS的大小为:1/N。
PSS可以明确表示单个进程在系统总内存中的实际使用量。
需要说明的是,本申请实施例以PSS为例进行示例性说明,在实际实现时,还可以采用其他参数衡量内存耗用情况。
(1)卡片添加之前PSS。电子设备记录在卡片SDK初始化前的PSS内存大小。
(2)卡片加载完成PSS。电子设备记录在卡片加载完成后的PSS内存大小。
(3)卡片占用PSS。
其中,卡片加载完成PSS减去卡片添加之前PSS,得到卡片占用PSS。
例如,卡片添加之前PSS为2MB,卡片加载完成PSS为3MB,卡片占用PSS为1MB。
示例性地,以2×2卡片为例,PSS在[4.5MB,4MB]内,定义为合格,PSS小于4MB,定义为优秀。
需要说明的是,上述示例性地列举了快应用卡片的多个性能参数,在实际实现时,还可以采用其他性能参数,本申请不作限定。上述表1示例性地给出了快应用卡片的多个性能参数的标准指标。
表1
在本申请实施例中,可以预设快应用卡片的检测周期。
例如,在本申请实施例中,预设检测快应用卡片的周期为15秒。从用户点击开始调试控件起开始计时,当15秒时间到时,快应用调试器将停止检测。
S102,确定第一快应用卡片的多个性能参数分别对应的分数。
若上所述,快应用卡片性能标准划分为合格和优秀两种标准。电子设备针对快应用卡片的每个性能参数,分别确定合格或优秀。
其中,“合格”对应第一分数,“优秀”对应第二分数。例如,第一分数可以定义为6分,第二分数可以定义为10分。
S103,对第一快应用卡片的多个性能参数分别对应的分数进行加权求和,得到第一快应用卡片的整体性能评分。
电子设备可以根据快应用卡片的所有性能参数的分数,确定第一快应用卡片的整体性能评分。
在本申请实施例中,可以针对快应用卡片的多个性能参数,预设对应的评分权重。上述表1示出了快应用卡片的多个性能参数的预设评分权重。
举例来说,第一快应用包括A1、A2、A2三个性能参数,A1、A2、A2三个性能参数的预设评分权重分别为B1、B2、B3。如果针对A1、A2、A2三个性能参数计算得到的分数分别为C1、C2、C3,那么第一快应用卡片的整体性能评分为:B1*C1+B2*C2+B3*C3。
在一些实施例中,B1、B2、B3在[0,1]范围内取值,且B1+B2+B3=1。例如,B1、B2、B3分别为0.3、0.5、0.2。
在另一些实施例中,B1、B2、B3的取值大于或等于1。例如,B1、B2、B3分别为3、5、2。
S104,根据第一快应用卡片的整体性能评分与预设分数阈值的比较结果,确定第一快应用卡片的性能结果。
其中,预设分数阈值可以根据实际使用需求进行设置。
在一些实施例中,在快应用卡片的性能参数的预设评分权重之和等于1的情况下,预设分数阈值可以预设为百分比值或者小数值。
例如,预设分数阈值可以预设为60%。
例如,预设分数阈值可以预设为0.6。
在另一些实施例中,在快应用卡片的性能参数的预设评分权重之和大于1的情况下,预设分数阈值可以预设为大于1的整数值。
例如,预设分数阈值可以预设为60分。
在本申请实施例中,电子设备可以根据快应用卡片的整体性能评分与预设分数阈值进行比较,判断快应用卡片是否合格。
如果快应用卡片的整体性能评分大于或等于60分或者60%或者0.6,那么电子设备可以确定快应用卡片为合格。
如果快应用卡片的整体性能评分小于60分或者60%或者0.6,那么电子设备可以确定快应用卡片为不合格。
也就是说,第一快应用卡片的性能结果为不合格或合格。
在本申请实施例中,电子设备可以根据快应用卡片的整体性能评分与预设分数阈值进行比较,判断快应用卡片是不合格、合格还是优秀。
其中,预设分数阈值包括分数阈值1和分数阈值2,分数阈值2大于分数阈值1。
例如,分数阈值1可以预设为60分,分数阈值可以预设为90分。
如果快应用卡片的整体性能评分大于或等于60分且小于90分,那么电子设备可以确定快应用卡片为合格。
如果快应用卡片的整体性能评分大于或等于90分,那么电子设备可以确定快应用卡片为优秀。
如果快应用卡片的整体性能评分小于60分,那么电子设备可以确定快应用卡片为不合格。
也就是说,第一快应用卡片的性能结果为不合格、合格或者优秀。
在本申请实施例中,快应用调试器可以展示第一快应用卡片的性能结果。其中,第一快应用卡片的性能结果包括卡片性能信息以及调试结果,调试结果为及格、不及格或优秀。
以上详细说明了快应用卡片的性能参数,以及根据快应用卡片的性能参数判断快应用卡片的性能结果的过程。下面结合附图说明本申请实施例提供的检测快应用卡片性能的方法应用于电子设备时的界面交互示意图。
首先,电子设备安装快应用调试器。具体地,可以先将快应用调试器APK下载到电子设备,然后用户通过点击安装或者通过adb命令进行安装。
如图7A中的(a)所示,在电子设备成功安装快应用调试器APK的情况下,电子设备在桌面界面中显示快应用调试器的应用图标11。
需要说明的是,预测试的卡片RPK已经预先下载并安装到电子设备的快应用引擎中。
电子设备接收用户对快应用调试器的应用图标11的操作,电子设备响应于该操作,运行快应用调试器。
如图7A中的(b)所示,电子设备从桌面界面跳转到快应用调试器的界面12,在快应用调试器的界面12中包括应用模式和卡片模式。如图7A中的(b)所示,快应用调试器处于“卡片模式”。
电子设备接收用户对快应用调试器的界面12中的“本地安装”控件13的操作。如图7A中的(c)所示,响应于该操作,快应用调试器加载快应用引擎已下载并安装的卡片,并且电子设备的显示界面从快应用调试器的界面12跳转到RPK文件选取界面14。
电子设备接收用户选择预测试的卡片RPK文件“card.rpk”的操作。如图7A中的(d)所示,电子设备响应于该操作,显示卡片预览控件15和卡片性能控件16。卡片预览控件15用于触发放大显示快应用卡片,供预览查看。卡片性能控件16用于触发对快应用卡片进行性能测试。
电子设备接收用户对卡片性能控件16的操作。如图7A中的(e)所示,电子设备响应于该操作,将显示页面跳转到卡片性能展示界面17。
卡片性能展示界面17中显示有开始检测控件18、重新检测控件19、移除卡片控件20、卡片缩略图21,以及卡片各方面性能参数列表22。
开始检测控件18用于触发对预测试的卡片开始进行性能检测。
重新检测控件19用于重新触发对预测试的卡片开始进行性能检测。
移除卡片控件20用于触发将预测试的卡片移除。
快应用卡片缩略图21用于展示卡片被加载后的显示效果。
卡片各方面性能参数列表22包括内存,网络,图片,渲染等维度统计。例如,卡片各方面性能参数可以包括卡片VDom解析时长、卡片首屏加载时长、卡片全部加载时长、渲染次数、网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数、图片容器大小、图片请求次数、卡片添加之前PSS、卡片加载完成PSS、卡片占用PSS。
需要说明的是,在开始检测之前,卡片各方面性能参数列表22中的性能参数为空。
电子设备接收用户对开始检测控件18的操作。如图7A中的(f)所示,电子设备响应于该操作,对预测试的卡片开始进行性能检测,检测时长例如为15秒,当性能检测结束后,卡片各方面性能参数列表22中显示对应的性能参数。
在另一些实施例中,如图7B所示,卡片性能展示界面中还显示有卡片综合评分23,用于说明卡片调试结果为不合格,或者为合格,或者为优秀。
电子设备可以将快应用卡片加载到电子设备的某一宿主应用。本申请实施例中,可以在宿主应用内添加快应用卡片并显示快应用卡片。其中,宿主应用可以为负一屏、桌面、快服务中心、全局搜索等。
第一实现例
图8示出了第一实施例中在调试快应用卡片时快应用调试器和快应用引擎之间的交互时序图。
S201,快应用引擎下载并安装快应用卡片,并且快应用引擎可以用于更新快应用卡片。
S202,用户点击快应用调试器的应用图标,触发快应用调试器启动。
S203-S206,快应用调试器启动,触发快应用引擎初始化。在快应用引擎完成初始化后,支持运行快应用RPK文件。
S207-S208,响应于用户对开始调试控件的点击操作,快应用调试器指示快应用引擎创建卡片。
S209,快应用引擎基于快应用调试器的指示,创建JS线程,绑定JS服务,绑定V8引擎,由此创建快应用卡片。
S210,快应用调试器指示快应用引擎加载快应用卡片。
S211,快应用调试器指示快应用引擎加载页面。
S212,快应用引擎基于快应用调试器的指示,执行与加载快应用卡片以及加载页面相关的程序,各个程序有对应的标记action=0、…、action=8、action=9、action=10、action=11等。
S213,在快应用引擎执行完与加载快应用卡片以及加载页面相关的程序之后,快应用引擎向快应用调试器返回完成消息。
S214,快应用调试器指示快应用引擎发起卡片网络请求。
S215,快应用引擎基于快应用调试器的指示,通过上传(upload)/获取(fetch)接口,发送网络请求,进行卡片网络请求检测。
S216,在快应用引擎完成卡片网络请求检测后,快应用引擎加载图片(image)组件。
S217,快应用引擎向快应用调试器返回完成消息。
由此,快应用调试器与快应用引擎通过交互,完成对快应用卡片的调试。
第二实施例
下面结合附图说明本申请实施例提供的检测快应用卡片性能的方法的具体实现方式。其中,电子设备中安装有快应用调试器和快应用引擎。快应用引擎为无页面的应用程序,用于实现卡片下载、安装以及更新。快应用调试器用于检测快应用的性能或者快应用卡片的性能。
需要说明的是,快应用调试器可以认为是快应用引擎的宿主。快应用调试器与快应用引擎进行交互,实现快应用卡片性能检测。
图9示出了本申请第二实施例提供的检测快应用卡片性能的方法中快应用调试器和快应用引擎之间的交互时序图。为了相对于上述第一实施例,更明显地体现本申请的改进点,图9中的加粗加黑的文字表示本申请第二实施例相对于第一实施例的改进点。
S301,快应用引擎下载、安装快应用卡片,并且快应用引擎可以用于更新快应用卡片。
S302,用户点击快应用调试器的应用图标,触发快应用调试器启动。
S303-S306,快应用调试器启动,触发快应用引擎初始化。在快应用引擎完成初始化后,支持运行快应用RPK文件。
本申请第二实施例的S301-S306与第一实施例的S201-S206实现过程相同。
S307-S309,响应于用户对开始调试控件的点击操作,快应用调试器清除内存垃圾,并统计卡片加载前PSS内存。
与第一实施例不同之处在于,在本申请第二实施例中,在快应用卡片下载安装成功后,若用户点击快应用调试器的界面中的开始调试控件,则快应用调试器可以调用System.gc()函数进行内存垃圾清理。通过主动进行内存垃圾清理,可以准确地统计出卡片加载前PSS内存大小。
在本申请实施例中,可以预设快应用卡片的检测周期。
例如,预设15秒为一个检测周期。
例如,通过设置函数handler.sendEmptyMessageDelayed(1000,15000ms)来设置快应用卡片的检测周期。其中,标记字段为1000,延时为15000ms,即15秒。
在本申请实施例中,从用户点击开始调试控件起开始计时,当15秒时间到时,快应用调试器将停止检测并展示当前周期检测结果。其中,当前周期检测结果包括卡片性能信息以及调试结果,调试结果为及格、不及格或优秀。
S310-S311,快应用调试器指示快应用引擎创建卡片。快应用引擎基于快应用调试器的指示,创建JS线程,绑定JS服务,绑定V8引擎,由此创建快应用卡片。
S312,快应用调试器向快应用引擎注册卡片性能监听。
与第一实施例不同之处在于,在本申请第二实施例中,快应用调试器向快应用引擎注册卡片性能监听,并且在卡片原监听接口setRenderListener基础上,增加性能回调(onPerformanceCallback)接口。
这样,快应用调试器在注册卡片性能监听之后,在快应用引擎执行VDom解析、首屏渲染、加载、刷新的过程中,快应用调试器的卡片SDK可以通过onPerformanceCallback接口,从快应用引擎侧获取卡片性能数据,并将该卡片性能数据回调给快应用调试器。
S313-S315,快应用调试器指示快应用引擎加载快应用卡片,并且快应用调试器指示快应用引擎加载页面。快应用引擎基于快应用调试器的指示,执行与加载快应用卡片以及加载页面相关的程序,各个程序有对应的标记action=0、…、action=8、action=9、action=10、action=11等。
示例性,下面列出了各个标记分别代表不同的阶段:
action=0,代表开始加载。
action=8,代表VDom开始解析。
action=9,代表VDom解析完成。
action=11,代表首屏渲染。
action=10,代表刷新。
S316,快应用引擎解析VDom,触发运行onPerformance(action,key,time)函数。快应用引擎通过onPerformanceCallback接口,将onPerformance(action,key,time)函数的参数值回调给快应用调试器。
其中,onPerformance(action,key,time)函数的参数包括action、key以及time。
参数action为标识,通过action取不同的值进行表示卡片调试过程中的不同阶段。示例性地,取值为0、1,…,8,9,10,11,…。
参数key表示不同属性的参数的名称。
参数time表示不同属性的参数对应的具体执行时间。
与第一实施例不同之处在于,在本申请第二实施例中,当快应用引擎在进行VDom解析,执行应用更改动作(applyChangeAction)方法时,快应用引擎触发onPerformance(action,key,time)函数,并且快应用引擎通过onPerformanceCallback接口,将onPerformance(action,key,time)函数的参数值回调给快应用调试器,快应用调试器可以记录这些参数值,并根据记录的这些参数值确定卡片相关性能信息。
S317,快应用调试器记录action=8,VDom开始解析的时机和时间。
S318,快应用调试器记录action=9,VDom解析完成时间。
S319,快应用调试器记录action=11,首屏渲染时间。
S320,快应用调试器记录action=10,刷新时间。
与第一实施例不同之处在于,在本申请第二实施例中,快应用调试器根据action字段进行数据解析,获取卡片加载各个阶段的时间。快应用调试器可以记录在卡片调试过程中的不同阶段的参数值,并根据记录的这些参数值确定卡片相关性能信息。
下面示例性地说明根据记录的这些参数值确定卡片VDom解析时长、卡片首屏加载时长、卡片全部加载时长等卡片相关性能信息的过程。
卡片相关性能信息:卡片VDom解析时长
在本申请实施例中,卡片VDom解析可以包括下述两个动作:
(a)action=8开始解析,时间T8;
(b)action=9开始构建页面,时间T9;
快应用调试器通过日志,记录action=8的时间和action=9的时间。
快应用调试器可以计算时间差T9-T8,将该时间差作为卡片VDom解析时长。
卡片相关性能信息:卡片首屏加载时长
在本申请实施例中,卡片首屏加载可以包括下述两个动作:
(a)action=9开始构建页面,时间T9;
(b)action=11页面创建完成,时间T11;
快应用调试器通过日志,记录action=9的时间和action=11的时间。
快应用调试器可以计算时间差T11-T9,将该时间差作为卡片首屏加载时长。
卡片相关性能信息:卡片全部加载时长
在本申请实施例中,卡片全部加载可以包括下述两个动作:
(a)action=0加载开始,时间T0;
(b)action=11页面创建完成,时间T11;
快应用调试器通过日志,记录action=0的时间和action=11的时间。
快应用调试器可以计算时间差T11-T0,将该时间差作为卡片全部加载时长。
或者,在本申请实施例中,卡片全部加载可以包括下述两个动作:
(a)action=0开始加载,时间T0。
(b)action=10页面刷新,时间T10。
快应用调试器通过日志记录action=0的时间和action=10的时间。
快应用调试器可以计算时间差T10-T0,将该时间差作为卡片全部加载时长。
S321,快应用调试器指示快应用引擎发起卡片网络请求。
S322,快应用引擎基于快应用调试器的指示,通过调用上传(upload)/获取(fetch)接口发送网络请求,进行卡片网络请求检测。
S323,在卡片调用快应用引擎网络请求开始和结束时,快应用引擎确定当前时间以及请求结束时间,返回报文大小作为info参数,触发运行onPerformance(action,info)函数,并通过调用onPerformanceCallback接口,将onPerformance(action,info)函数的参数值回调给快应用调试器。
其中,onPerformance(action,info)函数的参数包括action和info。参数info可以用于指示报文大小。
S324,快应用调试器从网络请求开始回调网络请求的次数,并统计出网络请求次数。
S325,快应用调试器记录网络请求结果,该网络请求结果包括数据报文大小,请求错误次数,请求耗时等。
S326,快应用引擎通过图像(Image)控件调用setSource方法和updateImageInfo方法,加载图片。
S327,在图像控件调用setSource方法时,快应用引擎触发onPerformance(action,info)函数,并通过onPerformanceCallback接口将onPerformance(action,info)函数的参数值回调给快应用调试器。
例如,action=600。info用于表示图片资源加载情况。
S328,快应用调试器根据action=600,统计出图片资源加载次数。
快应用调试器根据action字段进行数据解析,获取图片资源加载的次数。
S329,在图像控件调用updateImageInfo方法时,快应用引擎触发onPerformance(action,info)函数,并通过onPerformanceCallback接口将onPerformance(action,info)函数的参数值回调给快应用调试器。
例如,action=601。info用于表示当前图片的大小和图像控件的大小。
S330,快应用调试器根据action=601,统计出当前图片的大小和图像控件的大小。
快应用调试器根据action字段进行数据解析,获取当前图片的大小和图像控件的大小。
其中,图像控件指用于承载图片的容器。
S331,当达到15秒周期时,快应用调试器计算卡片加载完成后PSS内存。
从用户点击开始调试控件起开始计时,当15秒时间到时,快应用调试器停止检测。
S332,快应用调试器展示当前周期检测结果。
在本申请实施例中,如上所述,快应用调试器计算并统计得到卡片性能参数,然后确定快应用卡片的多个性能参数分别对应的分数,对快应用卡片的多个性能参数分别对应的分数进行加权求和,得到快应用卡片的整体性能评分。根据快应用卡片的整体性能评分与预设分数阈值的比较结果,确定快应用卡片的性能结果,性能结果即当前周期检测结果。
快应用调试器展示当前周期检测结果,当前周期检测结果包括卡片性能信息以及调试结果,调试结果为及格、不及格或优秀。
由此,快应用调试器与快应用引擎进行交互,完成对快应用卡片的性能检测。
本申请方案基于当前快应用联盟卡片渲染、网络流量和图片加载流程进行改进,能够检测快应用RPK的相应性能信息。本申请方案包括如下四方面改进点:
1)卡片加载:注册卡片性能监听回调onPerformanceCallback,在卡片渲染过程中,回调当前卡片渲染的时机和时间,快应用调试器根据action字段进行数据解析,获取卡片加载各个阶段的时间。
2)网络:在卡片进行网络请求时,将请求URL和当前时间作为参数,通过onPerformanceCallback接口回调给快应用调试器。
在网络请求返回时,根据reponse报文计算报文大小,将结束时间、请求URL、请求时间、数据大小作为参数,通过onPerformanceCallback接口回调给快应用调试器。
快应用调试器在收到数据后,根据action字段进行数据解析赋值。
3)内存:在卡片加载前先清除内存垃圾,统计第一PSS内存值,并进行15秒的延迟作为内存的统计周期,当15秒周期到时,再次统计第二PSS内存值,根据第二PSS内存值和第一PSS内存值之间的差值,计算卡片加载带来的内存增值。
4)图片:在卡片使用图像组件进行背景图设置时,将图片URL和当前时间作为参数,触发onPerformance(action,info)方法,并通过onPerformanceCallback回调给快应用调试器。快应用调试器在收到数据后,根据action字段获取图片资源加载的次数。
在卡片更新数据信息时,将图片URL、当前时间、图片大小和控件大小作为参数,触发onPerformance(action,info)方法,并通过onPerformanceCallback回调给快应用调试器。快应用调试器在收到数据后,根据action字段获取图片大小和容器的大小。
本申请实施例可以根据实际使用需求,制定快应用卡片性能标准,并且提供一个标准化工具“快应用调试器”程序,该“快应用调试器”程序可以用于在快应用RPK上架审核时,检测快应用RPK的相应性能信息。通过快应用卡片性能标准和标准化工具,可以很直观地评估上架卡片的功耗性能是否达标。
在实际实现时,各大厂商在快应用卡片上架时,可以使用本申请实施例提供的标准化工具作为卡片性能的自测和验收工具。
需要说明的是,在本申请实施例中,“大于”可以替换为“大于或等于”,“小于或等于”可以替换为“小于”,或者,“大于或等于”可以替换为“大于”,“小于”可以替换为“小于或等于”。
本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
上文主要从方法步骤的角度对本申请实施例提供的方案进行了描述。可以理解的是,为了实现上述功能,实施该方法的电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
本申请实施例可以根据上述方法示例,对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有其它可行的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图10为本申请实施例提供的检测快应用卡片性能的装置400的示意性框图。该装置400可以用于执行上文方法实施例中电子设备所执行的动作。该装置400包括处理单元410和显示单元420。
处理单元410,用于通过JavaScript线程加载第一快应用卡片;注册对所述第一快应用卡片进行性能监听;在所述第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取所述预设方法函数的特定字段;对所述预设方法函数的特定字段进行数据解析,得到所述第一快应用卡片的多个性能参数;其中,所述多个性能参数包括内存性能参数、时延性能参数和/或功耗性能参数;根据所述第一快应用卡片的所述多个性能参数和预设标准参数,确定所述第一快应用卡片的性能结果,所述性能结果为不合格或合格;
显示单元420,用于显示所述第一快应用卡片的所述多个性能参数以及所述性能结果。
通过本申请实施例提供的检测快应用卡片性能的装置,通过JavaScript线程加载第一快应用卡片;注册对第一快应用卡片进行性能监听;在第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取预设方法函数的特定字段;对预设方法函数的特定字段进行数据解析,得到第一快应用卡片的多个性能参数,并与预设标准参数进行比较,确定第一快应用卡片的性能结果为合格或不合格。本申请制定了快应用卡片的性能评价标准,能够基于上架待审核的快应用卡片RPK文件,检测快应用卡片的相应性能信息,能够直观地评估上架卡片在内存、功耗以及时延等性能方面是否达标。
根据本申请实施例的装置400可对应于执行本申请实施例中描述的方法,并且装置400中的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
本申请还提供一种芯片,该芯片与存储器耦合,该芯片用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。
本申请还提供一种电子设备,该电子设备包括芯片,该芯片用于读取并执行存储器存储的计算机程序或指令,使得各实施例中的方法被执行。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的检测快应用卡片性能的方法。
本实施例还提供了一种计算机程序产品,该计算机可读存储介质存储有程序代码,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的检测快应用卡片性能的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的检测快应用卡片性能的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种检测快应用卡片性能的方法,其特征在于,所述方法包括:
通过JavaScript线程加载第一快应用卡片;
注册对所述第一快应用卡片进行性能监听;
在所述第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取所述预设方法函数的特定字段;
对所述预设方法函数的特定字段进行数据解析,得到所述第一快应用卡片的多个性能参数;其中,所述多个性能参数包括内存性能参数、时延性能参数和/或功耗性能参数;
根据所述第一快应用卡片的所述多个性能参数和预设标准参数,确定所述第一快应用卡片的性能结果,所述性能结果为不合格或合格;
通过电子设备的显示屏显示所述第一快应用卡片的所述多个性能参数以及所述性能结果。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于所述电子设备,所述电子设备安装有快应用调试器和快应用引擎;
其中,所述快应用调试器用于指示所述快应用引擎加载所述第一快应用卡片;
其中,所述快应用引擎用于创建所述JavaScript线程,并通过所述JavaScript线程加载所述第一快应用卡片;
其中,所述快应用调试器还用于向所述快应用引擎注册对所述第一快应用卡片进行性能监听,并创建所述预设接口函数。
3.根据权利要求2所述的方法,其特征在于,所述第一快应用卡片加载过程的各个阶段包括第一阶段和第二阶段,所述第一阶段对应的预设方法函数为第一方法函数,所述第二阶段对应的预设方法函数为第二方法函数;
所述在所述第一快应用卡片加载过程的各个阶段,分别触发执行对应的预设方法函数,并通过调用预设接口函数获取所述预设方法函数的特定字段,包括:
在所述第一阶段,所述快应用引擎触发执行所述第一方法函数,并调用所述预设接口函数将所述第一方法函数的特定字段回调给所述快应用调试器;以及,
在所述第二阶段,所述快应用引擎触发执行所述第二方法函数,并调用所述预设接口函数将所述第二方法函数的特定字段回调给所述快应用调试器。
4.根据权利要求3所述的方法,其特征在于,所述对所述预设方法函数的特定字段进行数据解析,得到所述第一快应用卡片的多个性能参数,包括:
所述快应用调试器对所述第一方法函数的特定字段进行数据解析,获取所述第一快应用卡片的第一性能参数;
所述快应用调试器对所述第二方法函数的特定字段进行数据解析,获取所述第一快应用卡片的第二性能参数;
其中,所述第一快应用卡片的多个性能参数包括所述第一性能参数和所述第二性能参数。
5.根据权利要求3或4所述的方法,其特征在于,
所述第一方法函数为onPerformance(action,key,time)函数,所述第一方法函数的特定字段包括所述action、所述key和所述time;其中,所述action为卡片加载过程的各个阶段对应的标识,所述key为卡片加载过程的各个阶段对应的参数名称,所述time为卡片加载过程的各个阶段对应的时间。
6.根据权利要求3至5中任一项所述的方法,其特征在于,
所述第二方法函数为onPerformance(action,info)函数,所述第二方法函数的特定字段包括action和info;其中,所述action为卡片加载过程的各个阶段对应的标识,所述info为卡片加载过程的各个阶段对应的性能信息。
7.根据权利要求2至6中任一项所述的方法,其特征在于,所述预设接口函数为onPerformanceCallback接口函数,所述预设接口函数支持被所述快应用调试器和所述快应用引擎调用。
8.根据权利要求2至7中任一项所述的方法,其特征在于,在所述通过JavaScript线程加载第一快应用卡片之前,所述方法还包括:
响应于用户操作,所述快应用调试器启动对所述第一快应用卡片进行性能检测,并开始计时。
9.根据权利要求8所述的方法,其特征在于,在所述快应用调试器启动对所述第一快应用卡片进行性能检测之后,在所述根据所述第一快应用卡片的所述多个性能参数,确定所述第一快应用卡片的性能结果之前,所述方法还包括:
在计时时长达到预设周期时长后,所述快应用调试器停止对所述第一快应用卡片进行性能检测。
10.根据权利要求2至9中任一项所述的方法,其特征在于,所述多个性能参数包括所述内存性能参数,所述内存性能参数包括用于加载所述第一快应用卡片所需的第一内存占用量;
在所述快应用调试器启动对所述第一快应用卡片进行性能检测之后,所述方法还包括:
所述快应用调试器调用System.gc()函数执行内存垃圾清理;
所述快应用调试器统计所述第一快应用卡片在加载前的内存大小;
在计时时长达到预设周期时长后,所述快应用调试器统计所述第一快应用卡片在加载后的内存大小;
所述快应用调试器根据所述第一快应用卡片在加载前的内存大小以及在加载后的内存大小,确定所述第一内存占用量。
11.根据权利要求2至10中任一项所述的方法,其特征在于,所述多个性能参数包括时延性能参数,所述时延性能参数包括卡片虚拟Dom解析时长、卡片首屏加载时长、卡片全部加载时长,和/或渲染时长;
所述对所述预设方法函数的特定字段进行数据解析,得到所述第一快应用卡片的多个性能参数,包括:
所述快应用调试器通过调用所述预设接口函数获取到特定字段;其中,所述特定字段包括第一字段、第二字段和第三字段;其中,所述第一字段携带卡片加载过程的各个阶段对应的标识,所述第二字段携带卡片加载过程的各个阶段对应的参数名称,所述第三字段携带卡片加载过程的各个阶段对应的时间;
所述快应用调试器对所述特定字段进行解析,得到卡片加载过程的各个阶段的执行时间,并基于卡片加载过程的各个阶段的执行时间求时间差,确定所述时延性能参数。
12.根据权利要求2至11中任一项所述的方法,其特征在于,所述多个性能参数包括功耗性能参数,所述功耗性能参数包括网络请求次数、网络请求数据大小、网络请求单次最大耗时、请求错误次数、图片容器大小,和/或图片请求次数;
所述对所述预设方法函数的特定字段进行数据解析,得到所述第一快应用卡片的多个性能参数,包括:
所述快应用调试器通过调用所述预设接口函数获取到特定字段;其中,所述特定字段包括第一字段和第四字段;其中,所述第一字段携带卡片加载过程的各个阶段对应的标识,所述第四字段携带卡片加载过程的各个阶段对应的性能信息;
所述快应用调试器对所述特定字段进行解析,得到所述功耗性能参数。
13.根据权利要求2至12中任一项所述的方法,其特征在于,所述根据所述第一快应用卡片的所述多个性能参数和预设标准参数,确定所述第一快应用卡片的性能结果,包括:
将所述多个性能参数中每个性能参数值与对应的预设标准参数进行比较,根据比较结果确定所述多个性能参数中每个性能参数的分数;
根据所述多个性能参数中所有性能参数的分数,确定所述第一快应用卡片的整体性能评分;
根据所述第一快应用卡片的整体性能评分与预设分数阈值的比较结果,确定所述第一快应用卡片的性能结果。
14.根据权利要求13所述的方法,其特征在于,所述根据所述多个性能参数中所有性能参数的分数,确定所述第一快应用卡片的整体性能评分,包括:
对所述多个性能参数中所有性能参数的分数进行加权求和,得到所述第一快应用卡片的整体性能评分;
其中,所述多个性能参数中的每个性能参数预设有对应的权重值。
15.根据权利要求2至14中任一项所述的方法,其特征在于,所述快应用调试器包括卡片软件开发工具包SDK;
其中,所述通过调用预设接口函数获取所述预设方法函数的特定字段,包括:
所述快应用调试器通过所述卡片SDK调用所述预设接口函数,获取所述预设方法函数的特定字段。
16.根据权利要求2至15中任一项所述的方法,其特征在于,在所述通过JavaScript线程加载第一快应用卡片之前,所述方法还包括:
所述电子设备安装并下载所述快应用调试器;
所述电子设备显示所述快应用调试器的应用图标;
响应于用户对所述快应用调试器的应用图标的操作,所述电子设备启动所述快应用调试器,并加载所述快应用引擎;所述快应用引擎包括快应用RPK文件;
所述通过JavaScript线程加载第一快应用卡片,包括:
响应于用户选中所述第一快应用卡片对应的快应用RPK文件并触发开始检测的操作,所述电子设备通过所述快应用引擎创建所述JavaScript线程,并加载所述第一快应用卡片。
17.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器上的计算机程序,所述处理器用于执行所述计算机程序,以使得所述电子设备实现如权利要求1至16中任一项所述的方法。
18.一种芯片系统,包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器用于执行所述计算机程序,以实现如权利要求1至16中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311131406.9A CN117707386B (zh) | 2023-08-31 | 检测快应用卡片性能的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311131406.9A CN117707386B (zh) | 2023-08-31 | 检测快应用卡片性能的方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117707386A true CN117707386A (zh) | 2024-03-15 |
CN117707386B CN117707386B (zh) | 2024-10-25 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118505875A (zh) * | 2024-07-16 | 2024-08-16 | 安创启元(杭州)科技有限公司 | 一种可自动调整渲染策略的渲染方法、装置及计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908904A (zh) * | 2019-11-15 | 2020-03-24 | 北京小米移动软件有限公司 | 调试快应用的方法、调试快应用的装置及电子设备 |
US20210019446A1 (en) * | 2019-07-15 | 2021-01-21 | Bull Sas | Device and method for analyzing performances of a web application |
CN112346947A (zh) * | 2020-11-16 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 性能检测方法、装置、电子设备和计算机可读介质 |
CN114880224A (zh) * | 2022-05-10 | 2022-08-09 | 中国工商银行股份有限公司 | 软件性能测试的方法、装置、存储介质以及电子设备 |
CN116069619A (zh) * | 2022-11-30 | 2023-05-05 | 百度在线网络技术(北京)有限公司 | 一种小程序性能检测方法、装置、电子设备及介质 |
CN116661882A (zh) * | 2022-11-22 | 2023-08-29 | 荣耀终端有限公司 | 预加载小程序的方法、电子设备及存储介质 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210019446A1 (en) * | 2019-07-15 | 2021-01-21 | Bull Sas | Device and method for analyzing performances of a web application |
CN110908904A (zh) * | 2019-11-15 | 2020-03-24 | 北京小米移动软件有限公司 | 调试快应用的方法、调试快应用的装置及电子设备 |
CN112346947A (zh) * | 2020-11-16 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 性能检测方法、装置、电子设备和计算机可读介质 |
CN114880224A (zh) * | 2022-05-10 | 2022-08-09 | 中国工商银行股份有限公司 | 软件性能测试的方法、装置、存储介质以及电子设备 |
CN116661882A (zh) * | 2022-11-22 | 2023-08-29 | 荣耀终端有限公司 | 预加载小程序的方法、电子设备及存储介质 |
CN116069619A (zh) * | 2022-11-30 | 2023-05-05 | 百度在线网络技术(北京)有限公司 | 一种小程序性能检测方法、装置、电子设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118505875A (zh) * | 2024-07-16 | 2024-08-16 | 安创启元(杭州)科技有限公司 | 一种可自动调整渲染策略的渲染方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338910B (zh) | 日志数据处理、显示方法、装置、设备及存储介质 | |
CN111192005B (zh) | 政务业务处理方法、装置、计算机设备及可读存储介质 | |
CN115016866A (zh) | 应用启动时的数据处理方法、电子设备及存储介质 | |
CN111078556B (zh) | 应用测试方法及装置 | |
CN116265972B (zh) | 一种移动设备的功耗显示方法及移动设备 | |
CN111897525A (zh) | 大数据处理方法及系统 | |
KR20200015000A (ko) | 메모리 누수 검출 방법 및 그 전자 장치 | |
KR20180131863A (ko) | 스마트 워치에 대한 정보를 제공하는 전자 장치와 이의 동작 방법 | |
CN114706633B (zh) | 预加载方法、电子设备及存储介质 | |
CN111966491A (zh) | 统计占用内存的方法及终端设备 | |
CN114443189B (zh) | 一种图像处理方法和电子设备 | |
CN110995842A (zh) | 业务数据下载方法、装置、设备及存储介质 | |
CN113868132A (zh) | 一种应用程序测试方法、装置、电子设备及存储介质 | |
CN117707386B (zh) | 检测快应用卡片性能的方法、电子设备及存储介质 | |
CN117707386A (zh) | 检测快应用卡片性能的方法、电子设备及存储介质 | |
CN111880996B (zh) | 一种裸机数据采集方法、装置、设备及可读存储介质 | |
CN113407879A (zh) | 一种数据上报方法、装置及可读介质 | |
CN113392120A (zh) | 获取SQLite的执行信息的方法及装置 | |
CN117130688B (zh) | 快应用卡片加载方法、电子设备及存储介质 | |
CN116719455B (zh) | 应用服务推荐的方法、电子设备及存储介质 | |
CN116701134B (zh) | 一种数据处理方法和电子设备 | |
CN113691676B (zh) | 设备状态提示方法、装置、存储介质及电子设备 | |
CN117591488B (zh) | 一种文件检测方法、装置、存储介质及电子设备 | |
CN116088955B (zh) | 进程处理方法和终端设备 | |
CN117724780B (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 |