CN117724780B - 一种信息获取方法 - Google Patents
一种信息获取方法 Download PDFInfo
- Publication number
- CN117724780B CN117724780B CN202310807289.7A CN202310807289A CN117724780B CN 117724780 B CN117724780 B CN 117724780B CN 202310807289 A CN202310807289 A CN 202310807289A CN 117724780 B CN117724780 B CN 117724780B
- Authority
- CN
- China
- Prior art keywords
- view
- sub
- interface
- electronic device
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000000694 effects Effects 0.000 claims description 119
- 230000015654 memory Effects 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 abstract description 214
- 230000002159 abnormal effect Effects 0.000 abstract description 32
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 3
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种信息获取方法,涉及电子设备技术领域,实现对界面异常显示的自动检测。该方案具体为:该方法应用于电子设备,该电子设备安装有第一应用程序,在该第一应用程序运行时,该电子设备的显示屏显示与该第一应用程序对应的第一界面。该方法包括:该电子设备检测到用户第一操作时,加载第一视图。该第一操作用以指示运行该第一应用程序。该第一视图包括至少一个子视图。在该第一视图加载完成后,获取该第一视图包括的子视图的数量。确定该第一视图的子视图的数量小于预设阈值,获取并存储第一信息。该第一视图加载完成后,该显示屏显示第二界面,该第二界面与该第一界面不同。该第一信息对应于该第二界面。
Description
技术领域
本申请实施例涉及电子设备技术领域,尤其涉及一种信息获取方法。
背景技术
目前,电子设备中的目标应用程序在运行时,可以通过下发界面显示指令,指示电子设备执行对目标应用程序的界面的渲染操作。电子设备在完成对应界面的渲染操作后,通过电子设备的显示屏向用户展示目标应用程序对应的界面。
在一些实现中,电子设备在显示目标应用程序对应的界面时,会出现显示异常的情况。导致电子设备在显示屏上没有显示目标应用程序对应的页面内容,或者对应用程序对应的页面内容显示不完整的问题。例如,电子设备在显示目标应用程序对应的界面时,出现黑屏,或者白屏等情况。当电子设备出现黑屏,或者白屏等情况时,用户无法通过电子设备操作该目标应用程序,进而影响用户的使用体验。
发明内容
本申请实施例提供一种信息获取方法,实现在界面出现异常显示时,获取界面的相关信息。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,一种信息获取方法,该方法应用于电子设备,该电子设备配置有显示屏,该电子设备安装有第一应用程序,在该第一应用程序运行时,该电子设备的显示屏显示与该第一应用程序对应的第一界面。该第一界面包括至少一个显示元素。该方法包括:接收用户的第一操作,该第一操作用以指示运行该第一应用程序。响应于该第一操作,该电子设备加载第一视图。该第一视图用于显示该第一界面,该第一视图包括至少一个子视图。在该第一视图加载完成后,获取该第一视图包括的子视图的数量。确定该第一视图的子视图的数量小于预设阈值,获取并存储第一信息。该第一视图加载完成后,该显示屏显示第二界面,该第二界面与该第一界面不同。该第一信息对应于该第二界面。
在一些实现中,电子设备在显示第一界面时,如果第一视图中子视图的数量小于预设阈值时,会导致第一界面显示异常。因此在上述方案中,电子设备在确定第一视图包括的子视图的数量小于预设阈值时,获取并存储第一界面对应的第一信息。这样,后续开发人员就可以根据该第一信息确定第一界面出现了异常显示,并可以根据该第一信息分析第一界面出现异常显示的原因。
可选的,该第二界面与该第一界面不同,包括:该第二界面显示有第一界面的部分显示元素,或者,该第二界面不显示该第一界面的任何显示元素。
可选的,该获取该第一视图的子视图的数量,包括:针对该第一视图中的每个子视图,执行遍历处理。该电子设备配置有计数器,该遍历处理包括:判断第一子视图的标识为第一值或第二值,第一值指示该第一子视图存在至少一个第二子视图,该第二子视图是该第一子视图的子节点。该第一子视图是该第一视图中的任一个子视图。在该第一子视图的标识为该第一值的情况下,确定该第二子视图的数量为第三值,该计数器加该第三值。完成对该第一视图中的每个子视图的遍历处理后,将该计数器的值加1确定为该第一视图的子视图的数量。
在上述方案中,电子设备提供了一种获取第一视图中子视图数量的实现方式。电子设备在获取所述第一视图包括的子视图的数量时,通过对第一视图中的每一个子视图执行遍历处理,获取以每一个子视图为父节点的子视图的数量。并将以每一个子视图为父节点的子视图的数量对应加到计数器中。在第一视图中的所有子视图的遍历处理完成后,当前计数器的数值不包括第一个执行遍历处理的子视图。因此,还需要将当前计数器的数值加1。由此,实现对第一视图中子视图数量的获取。
可选的,该第一视图的子视图包括DecorView,该第一视图中不同于该DecorView的子视图以该DecorView为根节点。该预设阈值为与该DecorView对应的第一阈值。该第一视图的子视图的数量小于预设阈值,包括:该第一视图的子视图的数量小于该第一阈值。在一些实现中,在第一视图的子视图为DecorView时,如果第一视图的子视图的数量小于第一阈值,则会导致第一界面显示异常。因此,基于上述方案,电子设备在第一视图的子视图的数量小于第一阈值时,开发人员可以根据第一信息确定第一界面显示异常,并可以根据该第一信息分析第一界面出现异常显示的原因。
可选的,该第一视图的子视图包括ContentFrameLayout。该第一视图中不同于该ContentFrameLayout的子视图以该ContentFrameLayout为根节点。该预设阈值为与该ContentFrameLayout对应的第二阈值。该第一视图的子视图的数量小于预设阈值,包括:该第一视图的子视图的数量小于该第二阈值。在一些实现中,在第一视图的子视图为ContentFrameLayout时,如果第一视图的子视图的数量小于第二阈值,则会导致第一界面显示异常。因此,基于上述方案,电子设备在第一视图的子视图的数量小于第二阈值时,开发人员可以根据第一信息确定第一界面显示异常,并可以根据该第一信息分析第一界面出现异常显示的原因。
可选的,该第一视图的子视图包括第一子视图集合和第二子视图集合。其中,该第一子视图集合包括DecorView,该第一子视图集合中不同于该DecorView的子视图以该DecorView为根节点。该第二子视图集合包括ContentFrameLayout,该第二子视图集合中不同于该ContentFrameLayout的子视图以该ContentFrameLayout为根节点。该预设阈值包括与该DecorView对应的第一阈值,以及与该ContentFrameLayout对应的第二阈值。该第一视图的子视图的数量小于预设阈值,包括:该第一子视图集合的子视图的数量小于该第一阈值,或者该第二子视图集合的数量小于该第二阈值。
在上述方案中,第一视图的子视图包括第一子视图集合和第二子视图集合,第一子视图集合包括DecorView,第二子视图集合包括ContentFrameLayout。在一些实现中,在第一子视图集合的子视图的数量小于第一阈值,或者在第二子视图集合的子视图的数量小于第二阈值时,则会导致第一界面显示异常。因此,基于上述方案,电子设备在第一子视图集合的子视图的数量小于第一阈值,或者在第二子视图集合的子视图的数量小于第二阈值时,开发人员可以根据第一信息确定第一界面显示异常,并可以根据该第一信息分析第一界面出现异常显示的原因。
可选的,在获取该第一视图包括的子视图数量之前,该方法还包括:确定该第一应用程序不包括在预设的应用白名单中,该应用白名单包括至少一个应用程序。在该应用白名单中的任一个应用程序运行时,该电子设备不会加载该ContentFrameLayout。在一些实现中,电子设备中包括特殊应用。由于电子设备在显示特殊应用的界面时,不会加载ContentFrameLayout。基于上述方案,电子设备可以避免在第一应用为特殊应用的情况下,对第一界面是否显示异常进行误判。
可选的,该电子设备包括存储器,该存储器的第一地址用于存储该第一视图。在该获取该第一视图包括的子视图的数量之前,该方法还包括:从该第一地址获取该第一视图。
可选的,在从该第一地址获取该第一视图之前,该方法还包括:执行第一时长的延时线程。
可选的,该从该第一地址获取该第一视图包括:在该第一时长的延时线程执行结束时,从该第一地址获取该第一视图。在上述方案中,第一检测模块在第一视图加载完成后,继续执行第一时长的延时线程。在第一时长的延时线程执行结束后,电子设备再从第一地址获取第一视图。这样,后续电子设备获取到的第一视图的子视图的数量更加准确。进而使得开发人员根据第一信息对第一界面是否显示异常的判断更加准确。
可选的,在该从该第一地址获取该第一视图之前,该方法还包括:判断该第一界面显示在焦点窗口。其中,第一界面显示在焦点窗口对应于第一界面显示在当前该电子设备的显示屏上。其中,在判断该第一界面显示在焦点窗口时,该第一时长的延时线程执行结束。在上述方案中,电子设备在第一时长的延时线程执行结束后,判断所述第一界面的窗口为焦点窗口。在第一界面的窗口为焦点窗口时,即在第一界面显示在当前电子设备的显示屏时,电子设备再获取第一视图。在另一些实现中,第一检测模块还可以在确定第一视图加载完成后,判断所述第一界面的窗口为焦点窗口。在第一界面的窗口为焦点窗口时,电子设备再获取第一视图。这样,可以降低电子设备因获取该第一视图以及执行后续处理时产生的功耗。
可选的,该电子设备包括活动管理器,该活动管理器用于加载该第一视图。该判断该第一界面显示在焦点窗口包括:在该活动管理器未执行onPause()方法时,判断该第一界面为焦点窗口。这样,电子设备可以根据活动管理器是否调用onPause()方法,实现对第一界面的窗口是否为焦点窗口的判断。
可选的,该电子设备包括信息获取模块,该电子设备通过该信息获取模块获取该第一信息,在该获取该第一信息之前,该方法还包括:向该信息获取模块发送该第一指令。该第一指令用于指示该信息获取模块获取该第一信息。这样,便于信息获取模块在接收到第一指令时,继续执行第一信息获取的操作。
可选的,该信息获取模块获取该第一信息包括:该信息获取模块接收到该第一指令后,向该活动管理器发送信息获取请求。该信息获取请求用于指示该活动管理器返回该第一信息。基于上述方案,信息获取模块通过向活动管理器发送信息获取请求,实现第一信息的获取。
可选的,在该执行第一时长的延时线程之前,该方法还包括:确定该第一视图加载完成。这样,后续电子设备获取到的第一视图的子视图的数量更加准确。进而使得开发人员根据第一信息对第一界面是否显示异常的判断更加准确。
可选的,该确定该第一视图加载完成包括:向该活动管理器发送回调请求。其中,该回调请求用于指示该活动管理器在执行第一函数时返回回调信息。该第一函数在该第一视图加载完成后执行。该回调信息用于指示该第一视图加载完成。在接收到回调信息时,确定该第一视图加载完成。基于上述方案,电子设备向活动管理器发送回调请求。响应于该回调请求,活动管理器在加载第一视图结束后,向电子设备发送回调信息,指示第一视图加载完成。由此,使得电子设备在接受到回调信息时,确定第一视图加载完成。
可选的,该电子设备配置有云服务器,该存储第一信息包括:将该第一信息存储到该存储器中。或者,将该第一信息存储到该云服务器中。这样,便于后续开发人员根据存储器中的第一信息,或者云服务器中的第一信息,对第一界面异常显示的原因进行分析。
可选的,该方法还包括:响应于该第一操作,该电子设备加载第一act ivity。该第一act ivity对应于该第一界面。该第一信息包括第一应用程序的名称,第一视图的子视图的数量,以及第一act ivity的类名。这样,后续开发人员就可以根据该第一信息确定第一界面出现了异常显示,并可以根据该第一信息分析第一界面出现异常显示的原因。
第二方面,一种电子设备,该电子设备包括一个或多个处理器,一个或多个存储器。该一个或多个存储器与该一个或多个处理器耦合,该一个或多个存储器存储有计算机指令。该电子设备还包括显示屏,该显示屏用于显示电子设备中应用程序的图像界面。当该一个或多个处理器执行该计算机指令时,使得该电子设备执行如第一方面及其可选的设计中任一种信息获取方法。
第三方面,一种芯片系统,该芯片系统包括处理器和通信接口。该处理器用于从存储介质中调用并运行该存储介质中存储的计算机程序,执行如第一方面及其可选的设计中任一种信息获取方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第一方面及其可选的设计中任一种信息获取方法。
第五方面,提供一种计算机程序产品,该计算机程序包括指令,在计算机运行该指令时,执行如第一方面及其可选的设计中任一种信息获取方法。
可以理解的是,上述第二方面到第五方面提供的技术方案,可以分别对应到前述设计中提供的电路板检测方法,能够获取的有益效果类似,不再赘述。
附图说明
图1为一种电子设备界面的示意图;
图2为另一种电子设备界面的示意图;
图3为本申请实施例提供的一种电子设备的组成示意图;
图4为本申请实施例提供的另一种电子设备的组成示意图;
图5为本申请实施例提供的另一种电子设备的组成示意图;
图6为本申请实施例提供的一种信息获取方法的流程示意图;
图7为本申请实施例提供的另一种信息获取方法的流程示意图;
图8为本申请实施例提供的一种信息获取方法的示意图;
图9为本申请实施例提供的另一种信息获取方法的流程示意图;
图10为本申请实施例提供的另一种信息获取方法的示意图;
图11为本申请实施例提供的另一种信息获取方法的流程示意图;
图12为本申请实施例提供的另一种信息获取方法的流程示意图;
图13为本申请实施例提供的另一种电子设备的组成示意图;
图14为本申请实施例提供的一种芯片系统的组成示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,电子设备中的应用程序在运行时,通过下发界面显示指令,指示电子设备执行对应界面的渲染操作。电子设备在完成对应界面的渲染操作后,通过电子设备的显示屏向用户展示应用程序对应的界面。
示例性的,参考图1,以该电子设备为手机为例。电子设备中可以安装有备忘录、游戏以及即时通信等应用程序。以即时通信应用程序(以下简称为即时通信应用)为例,用户输入第一操作,该第一操作用于指示电子设备运行即时通信应用。该第一操作可以为点击图标101。响应于第一操作,电子设备运行该即时通信应用,显示如图1所示的界面102。在该界面102上可以包括各种显示元素,如按钮,消息对话框,标题栏,以及导航控件等。电子设备可以通过这些显示元素,实现与用户之间的交互。在本申请的一些实施例中,界面102又可以称为第一界面。
可以理解的是,电子设备可以通过加载一个或多个视图,实现对即时通信应用的主界面的渲染,显示如界面102所示的各种显示元素。其中,每个视图与界面102上的显示元素相对应。
在一些实现中,电子设备在显示界面102时,会出现显示异常的情况。导致电子设备在显示屏上没有显示界面102上的显示元素,或者显示界面102上的部分显示元素。
例如,参考图2,电子设备在检测到用户点击图标101的操作时,会显示如图2所示的界面103。在界面103上,即时通信应用相关的页面内容没有向用户展示。该相关的页面内容包括如界面102上所示的消息对话框等其他显示元素。另外,界面103上大部分显示为黑色。也可以说,电子设备在显示即时通信应用的界面时出现了黑屏的情况。在本申请的一些实施例中,界面103又可以称为第二界面。
需要说明的是,上述示例是以电子设备在显示应用程序对应的界面时出现黑屏为例进行说明的。在另外一些实现中,电子设备在显示界面102时,还会出现白屏,或者透明屏等异常显示的情况。类似的,电子设备在出现白屏,或者透明屏的情况下,在显示屏上也不会显示界面102上的显示元素,或者显示界面102上的部分显示元素。另外,当前界面大部分显示为白色,或者透明色。
另外,上述示例均是以电子设备第一次运行即时通信应用为例进行说明的。在本申请的另一些实施例中,电子设备在从其他应用程序(如游戏应用)切换到即时通信应用对应的界面时,也会出现如图2所示的异常显示的情况。
在图2所示意的示例中,用户无法在界面103上进行任何操作,进而影响用户对应用程序的使用。
结合前述说明,电子设备在显示应用程序对应的界面的过程中,需要通过加载一个或多个视图,显示应用程序对应界面上的显示元素。在本申请的实施例中,如果电子设备加载的视图的数量不满足预设阈值,则电子设备就会出现如图2所示的界面显示异常的情况。导致电子设备在显示屏上没有显示应用程序对应界面上的显示元素,或者显示应用程序对应界面上的部分显示元素。
本申请实施例提供一种信息获取方法,电子设备在加载完第一视图后,判断第一视图中所包括的子视图的数量是否超过预设阈值。在第一视图中所包括的子视图的数量小于预设阈值时,获取并存储该界面的相关信息。界面的相关信息包括该界面对应的activity的类名,应用程序的包名,以及第一视图包括的子视图的数量。这样,实现电子设备在界面出现异常显示时,获取界面的相关信息。便于后续根据该界面的相关信息分析界面异常信息的原因。
以下将结合附图对本申请实施例提供的技术方案进行详细说明。
需要说明的是,本申请实施例提供的方案可以应用于电子设备中。
本申请实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、车载设备、超级移动个人计算机(u ltra-mobi le persona l computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(persona l d igita l ass i stant,PDA)、增强现实(augmented rea l ity,AR)\虚拟现实(vi rtua l rea l ity,VR)设备等,本申请实施例对该电子设备的具体形态不作特殊限制。
作为一种实现,该电子设备可以具有如图3所示的电子设备400的结构。
如图3所示,电子设备400可以包括处理器410,外部存储器接口420,内部存储器421,通用串行总线(un iversa l ser ia l bus,USB)接口430,充电管理模块440,电源管理模块441,电池442,天线1,天线2,移动通信模块450,无线通信模块460,音频模块470,扬声器470A,受话器470B,麦克风470C,耳机接口470D,传感器模块480,按键490,马达491,指示器492,摄像头模组493,显示屏494,以及用户标识模块(subscr iber ident ificat ionmodu le,SIM)卡接口495等。其中传感器模块480可以包括压力传感器480A,陀螺仪传感器480B,气压传感器480C,磁传感器480D,加速度传感器480E,距离传感器480F,接近光传感器480G,指纹传感器480H,温度传感器480J,触摸传感器480K,环境光传感器480L,骨传导传感器480M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备400的具体限定。在本申请另一些实施例中,电子设备400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器410可以包括一个或多个处理单元,例如:处理器410可以包括应用处理器(app l icat ion processor,AP),调制解调处理器,图形处理器(graph ics process ingun it,GPU),图像信号处理器(image s igna l processor,ISP),控制器,视频编解码器,数字信号处理器(d igita l s igna l processor,DSP),基带处理器,和/或神经网络处理器(neura l-network process ing un it,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器410中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器410中的存储器可以为高速缓冲存储器。该存储器可以保存处理器410用过或使用频率较高的指令或数据。如果处理器410需要使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器410的等待时间,因而提高了系统的效率。
电子设备400可以通过GPU,显示屏494,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏494和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器410可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏494用于显示图像,视频等。显示屏494包括显示面板。显示面板可以采用液晶显示屏(l iqu id crysta l d i sp l ay,LCD),有机发光二极管(organ ic l ight-emitt ing d iode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matr ix organ ic l ight emitt ing d iode的,AMOLED),柔性发光二极管(f lex light-emitt ing d iode,FLED),量子点发光二极管(quantum dot l ight emitt ing diodes,QLED)等。在一些实施例中,装配有第一主板和第三小板的电子设备400可以包括1个或多个显示屏494。
本申请实施例涉及的电子设备还可以具有分层架构。该分层架构包括若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。
示例性的,图4示出了一种电子设备的组成示意。如图4所示,该电子设备中的分层架构从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runt ime,ART)和系统库,硬件抽象层(Hardware Abstract Layer,HAL),内核层以及硬件层。
应用程序层可以包括一系列应用程序包。
如图4所示,应用程序层可以包括音乐,视频,通话,铃声,闹钟,蓝牙,导航,设置,图库,第一应用等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(app l icat ionprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,活动管理器,输入管理器,资源管理器,通知管理器,视图系统等。
窗口管理器提供窗口管理服务(Window Manager Service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入系统的中转站。
在本申请的实施例中,应用程序的图形用户界面对应一个或多个活动,而活动又包括一个或多个视图;窗口管理器可以将需要显示的图形用户界面所包括的视图添加到图3中的显示屏494上,或者用于从图3中的显示屏494上显示的图形用户界面中移除视图。
活动管理器可以提供活动管理服务(Act ivity Manager Service,AMS),AMS可以用于系统组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
输入管理器可以提供输入管理服务(I nput Manager Service,IMS),IMS可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以包括一个或多个视图。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(aheador t ime,AOT)编译技术和及时(just in t ime,J I T)编译技术。
安卓运行时还包括核心库。核心库主要用于提供基本的Java类库的功能,例如基础数据结构、数学、IO、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了API。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库,以及媒体框架(Med ia Framework)等。
其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。硬件抽象层至少包括显示模块,以及音频模块等。
内核层是硬件和软件之间的层。内核层至少包括显示驱动,以及音频驱动。
硬件层包括存储器和显示屏。该存储器可以为图3中处理器410中设置的存储器,显示屏可以为图3所示的显示屏494。存储器和显示屏可以与前述所描述的软件模块进行交互,实现本申请实施例所提供的方法。
示例性的,图5示出了本申请实施例提供的另一种电子设备的分层架构示意图。在如图5所示的应用程序框架层中还可以包括检测模块,活动管理器,以及信息获取模块。
以下以电子设备中的第一应用程序(以下简称为第一应用)为例,对图5中的各个模块进行功能介绍。
在一些实现中,电子设备在运行第一应用时,电子设备可以通过加载第一视图,实现第一应用对应的第一界面的显示。该第一视图可以包括一个或多个子视图,每个子视图对应于第一界面上所包括的显示元素。
检测模块用于判断第一视图中子视图的数量是否超过预设阈值。结合前述说明,在第一视图中子视图的数量小于预设阈值时,会使得第一界面出现如图2所示的异常情况。检测模块在判断第一视图中子视图的数量小于预设阈值时,向信息获取模块发送第一指令,来指示信息获取模块获取第一信息。第一信息与第一界面相对应。第一信息可以包括第一应用的包名,第一视图中的子视图的数量。
在另一些实现中,电子设备在运行第一应用时,还会启动第一act ivity,以及加载第一视图,实现第一界面的显示。第一act ivity与第一界面对应。此时,第一信息可以包括第一act ivity的类名,第一应用的包名,第一视图中的子视图的数量。
活动管理器用于负责活动进程的创建和已经创建的活动进程的生命周期的维护。以及实现各个应用程序的导航回退功能。例如,电子设备在运行第一应用时,活动管理器可以启动第一act ivity进程,实现对第一界面的显示。其中,第一act ivity也可以为第一活动。
信息获取模块在接收到检测模块发送的第一指令后,进行第一信息的获取。这样,便于后续开发人员根据该第一信息确定第一界面显示异常,并根据该第一信息分析第一界面异常显示的原因。
在本申请的实施例中,电子设备可以设置有如图5所示的硬件层。该硬件层至少包括显示屏和存储器。显示屏用于显示应用程序相关的页面内容等。存储器用于存储第一信息,便于后续的使用。该硬件层可以和上述检测模块,信息管理器,以及信息模块之间进行交互,实现对第一界面异常显示的自动检测和判断,获取第一界面异常显示时的第一信息。
以下将结合前述说明中的检测模块,活动管理器,以及信息获取模块,对本申请实施例提供的界面显示的检测方案进行详细说明。
示例性,参考图6,以第一应用以及第一应用对应的第一界面为例,第一应用在加载的过程中,可以向活动管理器发送界面显示指令。该界面显示指令用于指示电子设备显示第一界面,如显示如图1中的界面102。
活动管理器用于启动第一act ivity,实现对第一界面的显示。该第一act ivity为第一应用的表示层,在本申请中可以对应于第一界面。
上述是以电子设备第一次运行第一应用的第一界面为例进行说明的。在本申请的另一些实施例中,电子设备从其他应用(如游戏应用)对应的界面切换到该第一界面时,活动管理器也会启动第一act ivity。
活动管理器还可以用于在第一act ivity启动的过程中,加载第一视图,从而控制显示屏显示第一界面。电子设备可以通过第一视图,实现第一界面与用户之间的交互,使得用户可以操作第一应用。
在一些实现中,该第一视图的子视图可以为DecorView,DecorView为第一视图中不同于DecorView的子视图的根节点。
在另一些实现中,该第一视图的子视图可以为ContentFrameLayout,ContentFrameLayout为第一视图中不同于ContentFrameLayout的子视图的根节点。
在又一些实现中,该第一视图可以包括第一子视图集合和第二子视图集合。其中,该第一子视图集合包括DecorView,DecorView为第一子视图集合中不同于DecorView的子视图的根节点。该第二子视图集合包括ContentFrameLayout,ContentFrameLayout为第一子视图集合中不同于ContentFrameLayout的子视图的根节点。
活动管理器还可以用于向信息获取模块发送第一信息。该第一信息包括第一activity的类名,第一应用的包名,以及第一视图包括的子视图的数量。其中,活动管理器可以从检测模块中获取第一视图的子视图的数量。
检测模块用于判断第一视图中子视图的数量是否超过预设阈值,并在判断第一视图中子视图的数量小于预设阈值时,向信息获取模块发送第一指令,来指示信息获取模块获取第一信息。
例如,以第一视图的子视图为DecorView为例,预设阈值对应为第一阈值。第一视图的子视图数量小于第一阈值对应于第一界面显示异常。检测模块在第一视图的子视图数量小于第一阈值的情况下,向信息获取模块发送第一指令,来指示信息获取模块获取第一信息。
又如,在第一视图的子视图为ContentFrameLayout时,预设阈值对应为第二阈值。第一视图的子视图数量小于第二阈值对应于第一界面显示异常。检测模块在在第一视图的子视图数量小于第二阈值的情况下,向信息获取模块发送第一指令,来指示信息获取模块获取第一信息。
又如,在第一视图的子视图包括第一子视图集合和第二子视图集合,该第一子视图集合包括DecorView,该第二子视图集合包括ContentFrameLayout时,检测模块在第一子视图集合的子视图的数量小于第一阈值,或者第二子视图集合的数量小于第二阈值的情况下,向信息获取模块发送第一指令,来指示信息获取模块获取第一信息。其中,第一子视图集合的子视图的数量小于第一阈值,或者第二子视图集合的数量小于第二阈值对应于第一界面显示异常。
在本申请的一些实施例中,检测模块可以在检测到活动管理器对第一视图加载完成的情况下,获取第一视图中包括的子视图的数量。然后检测模块根据第一视图中包括的子视图的数量,判断第一视图中包括的子视图的数量是否超过预设阈值。
需要说明的是,在本申请的实施例中,活动管理器在完成第一视图的加载操作后,可以执行第一方法。
作为一种示例,该第一方法可以为onResume()方法。onResume()方法被执行时对应于第一界面显示在焦点窗口。例如,在第一界面显示在焦点窗口的情况下,第一界面上的按钮可点击,文本框可输入等。在电子设备第一次加载第一应用的第一界面时,或者电子设备从其他应用(如游戏应用)对用的界面切换显示该第一界面时,活动管理器可以执行该onResume()方法。
结合前述说明,检测模块可以在第一应用下发界面显示指令时,向活动管理器发送回调请求。该回调请求用于指示在活动管理器开始执行第一方法时,返回回调信息。该回调信息可以用于指示对第一视图的加载完成。这样,检测模块在接收到该回调信息后,确定第一视图的加载完成。检测模块将继续进行后续的处理。
作为另一种实现方式,检测模块预设有T1时长的延时线程。检测模块还可以在接收到活动管理器发送的回调信息后,执行T1(如5S)时长的延时线程。在T1时长的延时线程执行完成后,检测模块再获取第一视图中包括的子视图的数量。此时,活动管理器对第一界面的渲染操作执行结束,即对第一视图的加载完成。这样,使得检测模块获取的第一视图中包括的子视图的数量更加准确。在本申请的另一些实施例中,T1又可以称为第一时长。
可以理解的是,在一些实现中,在加载第一视图的过程中,电子设备还可以切换显示其他应用程序(如游戏应用)对应的界面。此时,第一应用的第一界面对用户不可见。
在本申请的另一些实施例中,检测模块在开始获取第一视图中包括的子视图的数量之前,还需要判断第一界面是否显示在焦点窗口。第一界面显示在焦点窗口对应于第一界面显示在当前电子设备的显示屏上,即第一界面对用户可见。检测模块可以在判断第一界面显示在焦点窗口的情况下,开始获取第一视图中包括的子视图的数量。
作为又一种实现方式,检测模块可以在接收到活动管理器发送的回调信息时,执行T1时长的延时线程,和/或执行对第一界面是否显示在焦点窗口的判断,再获取第一视图中包括的子视图的数量。
例如,检测模块在接收到活动管理器发送的回调信息时,执行T1(如5S)时长的延时线程。在T1时长的延时线程执行结束后,检测模块判断第一界面是否显示在焦点窗口。在判断第一界面显示在焦点窗口的情况下,检测模块开始获取第一视图中包括的子视图的数量。
信息获取模块用于从活动管理器中获取第一信息。
示例性的,信息获取模块可以在接收到检测模块发送的第一指令时,向活动管理器发送信息获取请求。该信息获取请求用于指示活动管理器返回第一信息。信息获取模块在获取到该第一信息时,可以将该第一信息存储到存储器中。便于后续在使用该第一信息时,从存储器中读取该第一信息。
存储器用于存储第一信息,便于在后续使用时从存储器中读取该第一信息。
该硬件层中的显示屏即为图3所示的显示屏494。该显示屏在活动管理器完成第一视图的加载后,可以显示第一界面。例如,显示屏在第一视图加载完成后,显示如图1所示的界面102,或者显示如图2所示的界面103。
以上示例中,是结合图6,从各个模块功能的角度对本申请实施例提供的方案进行说明的。以下结合图7所示的模块之间的交互,继续对本申请实施例提供的方案进行说明。
示例性的,参考图7,电子设备在开始加载第一应用的第一界面时,通过第一应用向活动管理器发送界面显示指令,指示活动管理器执行对第一界面的渲染操作,实现对第一界面的显示。
此外,应用程序框架层中的各个模块可以互相配合,按照如下交互流程,实现本申请实施例提供的方案。
以下以第一视图的子视图为DecorView为例,对本申请实施例提供的方案进行详细的说明。
S701、活动管理器启动第一act ivity,加载DecorView。
需要说明的是,在本申请的一些实施例中,DecorView为第一视图中不同于DecorView的子视图的根节点。第一视图中不同于DecorView的子视图的根节点包括:以DecorView为父节点的子视图,即DecorView的子视图;还包括以DecorView的子视图为父节点的子视图,以及还包括其他以DecorView为根节点的子视图。
例如,参考图8,第一视图的子视图包括DecorView,视图A1,视图A2,视图B1,视图B2以及视图B3等。视图A1,视图A2,视图B1,视图B2以及视图B3等均以DecorView为根节点。
示例性的,活动管理器在接收到第一应用发送的界面显示指令后,启动第一界面对应的第一act ivity,加载DecorView,实现第一界面的显示。
S702、检测模块A向活动管理器发送第一回调请求。
在本申请的实施例中,检测模块可以为检测模块A。检测模块A执行对第一视图的子视图的数量是否超过第一阈值的判断。检测模块A可以在第一视图的子视图(即DecorView)加载完成的情况下,执行对第一视图的子视图的数量是否超过第一阈值的判断。
示例性的,检测模块A可以在第一应用下发界面显示指令时,向活动管理器发送第一回调请求,用于指示活动管理器在开始执行第一方法时,返回第一回调信息。其中,第一方法是在活动管理器加载DecorView完成后,开始执行的。第一回调信息用于指示加载DecorView完成。
结合前述说明,该第一方法可以为onResume()方法。这样,检测模块A通过发送第一回调请求,确定DecorView是否加载完成。
S703、活动管理器在开始执行第一方法时,向检测模块A发送第一回调信息。
示例性的,活动管理器在开始执行第一方法时,可以向检测模块A发送第一回调信息,来指示加载DecorView完成。
例如,以S702中的第一方法为onResume()方法为例,活动管理器在完成DecorView的加载操作后,开始执行onResume()方法。此时,活动管理器可以向检测模块A发送第一回调信息,来指示对DecorView的加载完成。
需要说明的是,在电子设备第一次加载第一应用的第一界面时,或者电子设备从其他应用(如游戏应用)对用的界面切换显示该第一界面时,活动管理器都对应执行onResume()方法。
在本申请的实施例中,检测模块A接收到该第一回调信息后,确定DecorView的加载完成。可以继续进行后续的处理,实现对第一视图的子视图的数量是否超过第一阈值的判断。
S704、检测模块A执行T1时长的延时线程。
示例性的,检测模块A中预设有T1时长的延时线程。检测模块A在接收到S703中的第一回调信息时,可以执行该T1(如5S)时长的延时线程。检测模块A在完成T1时长的延时线程后,再进行对第一视图的子视图的数量是否超过第一阈值的判断。这样,后续检测模块A获取到的第一视图的子视图的数量更加准确。
S705、检测模块A判断第一界面是否显示在焦点窗口。
结合前述说明,在第一界面显示在焦点窗口时,第一界面对应显示在电子设备的显示屏上,即第一界面对用户可见。
在本实施例中,检测模块A执行对第一视图的子视图的数量是否超过第一阈值的判断之前,还可以对第一界面是否显示在焦点窗口进行判断。并在第一界面显示在焦点窗口的情况下,执行对第一视图的子视图的数量是否超过第一阈值的判断处理。
作为一种实现,检测模块A根据第一act ivity中是否调用onPause()方法,判断第一界面是否显示在焦点窗口。其中,第一act ivity中调用onPause()方法对应于第一activity暂停,即第一界面不在焦点窗口显示。第一act ivity中未调用onPause()方法对应于第一界面显示在焦点窗口。
在本申请的另一些实施例中,检测模块A在执行对第一视图的子视图的数量是否超过第一阈值的判断之前,可以执行S704,和/或S705的操作。具体内容可参考S704,以及S705中的说明。
可以理解的是,检测模块A在执行S704中的T1时长的延时线程时,电子设备可以切换显示其他应用程序(如游戏应用)对应的界面。此时,第一界面从对用户可见变成对用户不可见。因此,模块检测模块A在执行S704和S705的操作时,需要先执行S704的操作,再执行S705的操作。
在一些实现中,如果在检测模块A执行S704的操作过程中,电子设备切换显示其他应用程序(如游戏应用)对应的界面,检测模块A判断第一界面没有显示在焦点窗口。在这种情况下,检测模块A将不进行S706的操作。
在另一些实现中,如果检测模块A在执行S704的操作后,判断第一界面显示在焦点窗口。在这种情况下,检测模块A继续执行S706的操作。
以下以检测模块A先执行S704的操作,再执行S705的操作为例,对S706的操作进行说明。
S706、获取DecorView的信息。
在本申请的一些实施例中,检测模块A在完成T1时长的延时线程后,并在第一界面显示在焦点窗口的情况下,开始获取DecorView。
作为一种实现方式,检测模块A可以从活动管理器中获取DecorView的信息。该信息可以包括DecorView的名称,或者存储地址等。检测模块A获取到DecorView的信息后,可以继续进行S707的操作。
S707、检测模块A判断第一视图包括的子视图的数量是否超过第一阈值。
示例性的,参考图9,检测模块A可以根据图9中所提供的方案,判断第一视图的子视图的数量是否超过第一阈值。第一视图的子视图数量小于第一阈值对应于第一界面显示异常。
以下以检测模块A获取到的DecorView的信息包括DecorView的存储地址,该存储地址对应于第一存储地址为例,对图9中的所提供的方案进行说明。在本申请的另一些实施例中,第一存储地址又可以称为第一地址。
如图9所示,该方案包括:
S901、从第一存储地址中获取DecorView。
在本申请的实施例中,检测模块A可以从第一存储地址中,获取DecorView。便于检测模块A后续获取第一视图的子视图数量。检测模块A获取DecorView后,可以对DecorView继续执行S902的操作。
S902、判断第一视图的子视图是否为视图组。
需要说明的是,以第一视图的子视图为第一子视图为例,第一子视图可以为单一视图,或者视图组。视图组对应于第一子视图包括至少一个第二子视图,第二子视图以第一子视图为父节点。单一视图对应于子第一视图不包括第二子视图。
在本申请的实施例中,第一子视图上预设有第一标识。第一标识包括第一值,或者第二值。其中,第一值用于指示第一子视图为视图组,第二值用于指示第一子视图为单一视图。检测模块A可以根据第一标识判断第一视图的子视图是否为视图组。
示例性的,第一子视图可以包括一级子视图,或者二级子视图,或者三级子视图等。其中,一级子视图为二级子视图的父节点,二级子视图为三级子视图的父节点。
在本示例中,一级子视图为DecorView。在一级子视图为视图组的情况下,第一视图中以一级子视图为父节点的子视图为二级子视图。类似的,在二级子视图为视图组的情况下,第一视图中以二级子视图为父节点的子视图为三级子视图。
以第一视图中包括一级子视图,二级子视图,以及三级子视图等为例,检测模块A判断第一视图的子视图是否为视图组,可以包括判断一级子视图,二级子视图,以及三级子视图等是否为视图组。
例如,检测模块A可以根据一级子视图的第一标识,判断一级子视图是否为视图组。
在一些实现中,一级子视图的第一标识对应为第二值,检测模块A判断一级子视图为单一视图。在一级子视图为单一视图的情况下,检测模块A继续进行S903的操作。
在另一些实现中,一级子视图的第一标识对应为第一值,检测模块A判断一级子视图为视图组。在一级子视图为视图组的情况下,检测模块A继续进行S904的操作。
另外,在本实现中,电子设备中包括第二方法。检测模块A在判断一级子视图为视图组后,可以通过调用第二方法,获取一级子视图中包括的二级子视图。
示例性的,参考图8,检测模块A调用第二方法,获取一级子视图(即DecorView)中包括的二级子视图。该二级子视图可以包括视图A1,以及视图A2。在本示例中,检测模块A还需要继续判断二级子视图是否为视图组,即判断视图A1,以及视图A1是否为视图组。在本申请的一些实施例中,二级子视图的数量可以成为第三值。
例如,检测模块A可以根据视图A1的第一标识,判断视图A1是否为视图组。视图A1的第一标识可以对应为第一值,或者第二值。检测模块A对视图A1的处理方式与一级子视图类似,具体内容可参考一级子视图中的说明,此处不再赘述。
类似的,检测模块A可以根据视图A2对应的第一标识,判断视图A2是否为视图组。
在一些实现中,视图A2的第一标识对应为第二值,检测模块A判断视图A2为单一视图。在视图A2为单一视图的情况下,检测模块A继续进行S903的操作。
在另一些实现中,视图A2对应的第一标识对应为第一值。检测模块A可以根据该第一值,判断视图A2为视图组。检测模块A在判断视图A2为视图组后,执行S904的操作,并通过调用第一方法,获取视图A2中包括的三级子视图。
示例性的,继续参考图8,检测模块A调用第一方法,获取视图A2中包括的三级子视图。该三级子视图可以包括视图B2,以及视图B3。
在本示例中,检测模块A可以继续判断视图B2,以及视图B3是否为视图组。检测模块A对视图B2以及视图B3的处理方式与一级子视图相同,具体内容可参考一级子视图中的说明,此处不再赘述。
可以理解的是,上述示例是以一级子视图,二级子视图,以及三级子视图为例,对检测模块A执行对第一视图的子视图是否为视图组的判断进行说明的。本申请实施例对第一视图中所包括的子视图不做任何限制。例如,在本申请的另一些实施例中,三级子视图中还可以包括四级子视图,检测模块A可以继续对四级子视图执行上述的操作。从而实现对第一视图的子视图的数量的获取。
S903、计数器加1。
示例性的,检测模块A在判断当前子视图不是视图组时,将计数器加1。
在本申请的另一些实施例中,检测模块A将计数器加1后,还可以继续进行S905操作。
S904、计数器加1。
示例性的,检测模块A在判断当前子视图为视图组时,将计数器加1。另外,在本示例中,检测模块A将计数器加1后,继续执行S902的操作。
在本申请的另一些实施例中,检测模块A将计数器加1后,还可以继续进行S905操作。
S905、判断当前计数器的数值是否超过第一阈值。
示例性的,检测模块A在执行S903,或者S904的操作后,计数器的数值相应变化。检测模块A可以判断当前计数器的数值是否超过第一阈值。
以第一阈值为13为例,对检测模块A判断当前计数器的数值是否超过第一阈值的实现方式进行说明。
在一些实现中,检测模块A判断当前计数器的数值超过13,即对应于第一界面显示正常。在这种情况下,检测模块A对第一视图的子视图数量是否超过第一阈值的判断结束。检测模块A不再执行S902的操作。
可以理解的是,在一些实现中,第一视图的子视图数量远远超过第一阈值。这样,在当前计数器的数值超过第一阈值的情况下,检测模块A可以减少循环执行S902的次数。
在另一些实现中,检测模块A判断当前计数器的数值小于13。在这种情况下,检测模块A需要继续执行S906的操作。
S906、判断对S902的操作是否执行结束。
可以理解的是,在一些实现中,检测模块A判断当前计数器的数值小于第一阈值的情况下,仍在继续执行S902的操作。例如,结合S902的说明,检测模块A在判断一级子视图为视图组的情况下,继续对一级子视图中包括的二级子视图执行S902的操作。即当前计数器的数值只包括一级子视图的数量,不包括二级子视图的数量。因此,检测模块A还需要判断对S902的操作是否执行结束,再确定第一视图的子视图数量是否超过第一阈值。
示例性,检测模块设置有第一结束标识。其中,第一结束标识包括第四值和第五值。第四值用于指示S902的操作结束,第五值用于指示S902的操作未结束。检测模块可以根据第一结束标识,判断S902的操作是否结束。
在一些实现中,检测模块A在当前计数器的数值小于第一阈值的情况下,根据第一结束标识为第五值,判断S902的操作执行未结束。即当前计数器的数值不包括第一视图中所有的子视图的数量。检测模块A继续执行S902的操作。
在另一些实现中,检测模块A在当前计数器的数值小于第一阈值的情况下,根据第一结束标识为第四值,判断S902的操作执行结束,即当前计数器的数值包括第一视图中所有的子视图的数量。在这种情况下,检测模块A执行S907的操作。
S907、发送第一指令。
在本申请的实施例中,检测模块A在当前计数器的数值小于第一阈值,并且对S902的操作执行结束的情况下,确定第一视图的子视图数量小于第一阈值。检测模块A在确定第一视图的子视图数量小于第一阈值的情况下,发送第一指令。第一指令用于指示活动管理器获取第一信息。
在图9所示的示例中,是以检测模块A同时执行S902和S905的操作为例进行说明的。在本申请的另一些实施例中,检测模块A还可以在S902执行结束的情况下,即当前计数器的数值包括第一视图中所有子视图的数量时,再进行S905的操作。
此时,检测模块A可以直接根据当前计数器的数值,确定第一视图的子视图数量是否超过第一阈值。
例如,在当前计数器的数值超过第一阈值时,检测模块A确定第一视图的子视图数量超过第一阈值。检测模块A完成了对第一视图的子视图数量是否超过第一阈值的判断。
又如,在当前计数器的数值小于第一阈值时,检测模块A确定第一视图的子视图数量小小于第一阈值,并继续进行S907的操作。
S708、检测模块A向信息获取模块发送第一指令。
示例性的,检测模块A在判断第一视图的子视图的数量小于第一阈值的情况下,向信息获取模块发送第一指令,用于指示信息获取第一界面处于异常显示状态时的第一信息。
在一些实现中,活动管理器执行加载第一act ivity的操作时,该第一信息包括第一act ivity的类名,第一应用的包名,以及第一视图中所包括的子视图数量。
在另一些实现中,活动管理器没有执行加载第一act ivity的操作时,该第一信息包括第一应用的包名,以及第一视图中所包括的子视图数量。
需要说明的是,该S708的操作即为检测模块A在确定第一视图的子视图数量小于第一阈值时执行的S907操作。
S709、信息获取模块向活动管理器发送信息获取请求。
示例性的,信息获取模块接收到第一指令后,可以向活动管理器发送信息获取请求。该信息获取请求用于指示活动管理器返回第一信息。由此实现第一信息的获取。
在本申请的实施例中,活动管理器在获取到第一信息后,还可以继续进行S710的操作。
S710、活动管理器向信息获取模块发送第一信息。
示例性的,活动管理器接收到信息获取请求后,可以将该第一信息发送给信息获取模块。其中,第一视图的子视图数量可以是活动管理器从检测模块中获取的。信息获取模块获取到该第一信息后,继续进行S711的操作。
S711、信息获取模块将第一信息存储到存储器中。
示例性的,信息获取模块获取到第一信息后,可以将该第一信息存储到存储器中。这样,便于在后续使用该第一信息时,从存储器中读取该第一信息。
在本申请的另一些实施例中,参考图10,电子设备中包括云服务器,电子设备还可以将该第一信息发送到该云服务器上,便于开发人员从云服务器中获取第一信息,分析电子设备对第一界面异常显示的原因。
在一些实现中,电子设备可以在后台进程较少的情况下,将该第一信息发送到云服务器上。其中,后台进程较少可以包括处理器使用率低于第三预设阈值,或者内存占用率低于第四预设阈值。
在另一些实现中,电子设备还可以在处于充电状态下,将该第一信息发送到云服务器上。
需要说明的是,电子设备将第一信息发送到云服务器上的操作是在用户授权的情况下进行。例如,用户可以通过加入产品改进计划的方式,允许电子设备将第一信息发送到云服务器上。
上述示例均是以电子设备第一次加载第一应用的第一界面为例进行说明的。在本申请的另一些实施例中,电子设备从其他应用(如游戏应用)对应的界面切换显示该第一界面时,活动管理器也会执行图7和图9中所示意的方法。
需要说明的是,在本申请的一些实现中,在电子设备从其他应用程序的界面切换显示到该第一界面之前,检测模块A已经判断第一视图的子视图数量小于第一阈值。在这种情况下,电子设备在从其他应用程序的界面切换显示第一界面时,测模块A不再针对第一界面执行如图7和图9所示的操作。
示例性的,检测模块A在判断第一视图的子视图数量小于第一阈值的情况下,可以对第一界面设置已检测标识。该已检测标识用于指示检测模块A已完成对第一视图的子视图数量是否超过第一阈值的判断。检测模块A可以根据第一界面是否设置有已检测标识,判断是否对第一界面执行对第一视图的子视图数量是否超过第一阈值的判断。
结合图7至图9的说明,在活动管理器对DecorView加载完成的情况下,检测模块A在判断第一视图的子视图数量小于第一阈值的情况下,信息获取模块通过向活动管理器发送信息获取请求,获取到第一信息,并将该第一信息存储在存储器,和/或将第一信息发送到电子设备的云服务器中。这样,电子设备就可以实现对第一界面异常显示的自动检测。并在第一界面异常显示时,获取第一信息。便于后续开发人员根据该第一信息对第一界面异常显示的原因进行分析。
在上述申请的实施例中,是以第一视图的子视图为DecorView为例,对检测模块A判断第一视图的子视图的数量是否超过第一阈值的具体实现方式进行说明的。在本申请的另一些实施例中,第一视图的子视图可以为ContentFrameLayout,检测模块可以为检测模块B,检测模块B可以执行对第一视图的子视图的数量是否超过第二阈值的判断。
示例性的,参考图11,检测模块B可以根据图11中所提供的方案,实现对第一视图的子视图数量是否超过第二阈值的判断。
需要说明的是,检测模块在执行图11中的方案前,需要先获取ContentFrameLayout的信息。ContentFrameLayout的信息包括ContentFrameLayout的名称,或者存储地址等。
作为一种示例,检测模块可以从第一act ivity中获取ContentFrameLayout的信息。
以下以检测模块B获取到的ContentFrameLayout的信息包括ContentFrameLayout的存储地址,该存储地址对应于第二存储地址为例,对图11中的所提供的方案进行说明。在本申请的另一些实施例中,第二存储地址又可以称为第一地址。
如图11所示,该方案包括:
S1101、从第二存储地址中获取ContentFrameLayout。
在本申请的实施例中,检测模块B可以从第二存储地址中,获取ContentFrameLayout。便于检测模块B后续根据ContentFrameLayout获取第一视图的子视图数量。检测模块B获取ContentFrameLayout后,可以对ContentFrameLayout继续执行S1102的操作。
S1102、判断第一视图的子视图是否为视图组。
在本申请的实施例中,以第一视图的子视图为第三子视图为例,第三子视图上预设有第一标识。第一标识包括第一值,或者第二值。其中,第一值用于指示第三子视图为视图组,第二值用于指示第三子视图为单一视图。检测模块A可以根据第一标识判断第一视图的子视图是否为视图组。在本申请的一些实施例中,第三子视图又可以称为第一子视图。
在本示例中,检测模块B对第一视图的子视图的处理方式与S902中的处理方式类似,具体内容可参考S902的说明,此处不再赘述。
S1103、计数器加1。
示例性的,检测模块B在判断当前视图不是视图组时,将计数器加1。
在本申请的另一些实施例中,检测模块B将计数器加1后,继续进行S1105操作。
S1104、计数器加1。
示例性的,检测模块B在判断当前视图为视图组时,将计数器加1。另外,在本示例中,检测模块B将计数器加1后,继续执行S1102的操作。
在本申请的另一些实施例中,检测模块B将计数器加1后,还可以继续进行S1105操作。
S1105、判断当前计数器的数值是否超过第二阈值。
示例性的,检测模块B在执行S1103,或者S1104的操作后,计数器的数值相应变化。检测模块B可以判断当前计数器的数值是否超过第二阈值。
以第二阈值为5为例,对检测模块B判断当前计数器的数值是否超过第二阈值的实现方式进行说明。
在一些实现中,检测模块B判断当前计数器的数值超过5,即对应于第一界面显示正常。在这种情况下,检测模块B对第一视图的子视图数量是否超过第二阈值的判断结束。检测模块B不再执行S1102的操作。
可以理解的是,在一些实现中,第一视图的子视图数量远远超过第二阈值。这样,在当前计数器的数值超过第二阈值的情况下,检测模块B可以不再执行S1102的操作。即减少了检测模块循环执行S1102的次数。
在另一些实现中,检测模块B判断当前计数器的数值小于5。在这种情况下,检测模块B需要继续执行S1106的操作。
S1106、判断对S1102的操作是否执行结束。
可以理解的是,在一些实现中,检测模块B判断当前计数器的数值小于第二阈值的情况下,仍在继续执行S1102的操作。例如,结合前述说明,检测模块B在判断一级子视图为视图组的情况下,继续对一级子视图中包括的二级子视图执行S1102的操作。即当前计数器的数值只包括一级子视图的数量,不包括二级子视图的数量。因此,检测模块B还需要判断对S1102的操作是否执行结束,再确定第一视图的子视图数量是否超过第二阈值。
在一些实现中,检测模块B在当前计数器的数值小于第二阈值的情况下,判断S1102的操作执行未结束。即当前计数器的数值不包括第一视图中所有的子视图的数量。检测模块B可以继续执行S1102的操作。
在另一些实现中,检测模块B在当前计数器的数值小于第二阈值的情况下,判断S1102的操作执行结束,即当前计数器的数值包括第一视图中所有的子视图的数量。
在这种情况下,检测模块B执行S1107的操作。
S1107、发送第一指令。
在本申请的实施例中,检测模块B在当前计数器的数值小于第二阈值,并且对S902的操作执行结束的情况下,确定第一视图的子视图数量小于第二阈值。检测模块B在确定第一视图的子视图数量小于第二阈值的情况下,发送第一指令。第一指令用于指示活动管理器获取第一信息。
需要说明的是,在一些实现中,电子设备中包括特殊应用。其中,电子设备在显示特殊应用的界面时,不会加载ContentFrameLayout。因此,在检测模块B开始执行图11中所示的方案之前,还需要判断第一界面对应的第一应用是否为特殊应用。
示例性的,电子设备中预设有应用白名单,该应用白名单中包括至少一个特殊应用的包名。检测模块B可以根据第一应用的包名是否包括在白名单中,判断第一应用是否为特殊应用。
在一些实现中,检测模块B在判断第一应用不是特殊应用后,再根据图11所示的方案,判断第一视图的子视图数量是否超过第二阈值。这样,避免在第一应用为特殊应用的情况下,检测模块B对第一界面执行如图11所示的操作,对第一视图的子视图数量是否超过第二阈值进行误判。
在本申请的另一些实施例中,若第一应用为特殊应用,电子设备可以通过检测模块A执行如图9所示的方案,实现对第一视图的子视图数量是否超过第一阈值的判断。
在上述图11的说明中,电子设备可以通过检测模块B实现对第一视图的子视图数量是否超过第二阈值的判断。在本申请的一些实施例中,参考图12,检测模块B还可以和如图6所示的各个模块相互配合,实现本申请实施例提供的方案。
如图12所示,该方案包括:
S1201、活动管理器启动第一act ivity,加载ContentFrameLayout。
需要说明的是,在本申请的一些实施例中,ContentFrameLayout为第一视图中不同于ContentFrameLayout的子视图的根节点。第一视图中不同于ContentFrameLayout的子视图的根节点包括:以ContentFrameLayout为父节点的子视图,即ContentFrameLayout的子视图;还包括以ContentFrameLayout的子视图为父节点的子视图,以及还包括其他以DecorView为根节点的子视图。
示例性的,活动管理器在接收到第一应用发送的界面显示指令后,启动第一界面对应的第一act ivity,加载ContentFrameLayout,实现第一界面的显示。
S1202、检测模块B向活动管理器发送第二回调请求。
示例性的,检测模块B可以在第一应用下发界面显示指令时,向活动管理器发送第二回调请求,用于活动管理器开始执行第一方法时,返回第二回调信息。其中,第一方法是在活动管理器加载ContentFrameLayout完成后,开始执行的。第二回调信息用于指示加载DecorView完成。
结合前述说明,该第一方法可以为onResume()方法。这样,检测模块B通过发送第一回调请求,确定ContentFrameLayout是否加载完成。
S1203、活动管理器在开始执行第一方法时,向检测模块B发送第二回调信息。
S1204、检测模块B执行T1时长的延时线程。
S1205、检测模块B判断第一界面是否显示在焦点窗口。
在本申请的实施例中,S1203至S1205与图7中的S703至S705的实现方式类似,可参考S703至S705的说明,具体实施例可以相互参考,此处不再赘述。
S1206、检测模块B判断第一应用是否为特殊应用。
结合前述说明,检测模块B可以根据第一应用的包名是否在电子设备的应用白名单中,判断第一应用是否为特殊应用。
在本申请的实施例中,检测模块B判断第一应用不是特殊应用时,继续执行S1207的操作。
在本申请的另一些实施例中,检测模块B判断第一应用为特殊应用时,将不再执行S1207及其后续的处理。
S1207、检测模块B获取ContentFrameLayout的信息。
结合前述说明,作为一种实现方式,检测模块B检测模块可以从第一act ivity中获取ContentFrameLayout的名称,或者存储地址等信息。检测模块B获取到ContentFrameLayout的信息后,继续执行S1208的操作。
S1208、检测模块B判断第一视图包括的子视图的数量是否超过第二阈值。
在本申请的实施例中,第一视图所包括的子视图的数量小于第二阈值对应于第一界面显示异常;检测模块B在第一视图所包括的子视图的数量小于第二阈值的情况下,继续执行S1209的操作。
作为一种实现方式,检测模块B判断第一视图所包括的子视图的数量是否超过第二阈值的实现方式可参考图11中的说明,具体实施例可以相互参考,此处不再赘述。
S1209、检测模块B向信息获取模块发送第一指令。
在本申请的实施例中,S1209与图7中的S708的实现方式类似,具体内容可参考S708的说明,此处不再赘述。
S1210、信息获取模块向活动管理器发送信息获取请求。
示例性的,信息获取模块接收到第一指令后,可以向活动管理器发送信息获取请求。该信息获取请求用于获取第一信息。该第一信息包括第一act ivity的类名,第一应用的包名,以及第一视图所包括的子视图数量。这样,便于开发人员后续根据该第一信息,分析该第一界面异常显示的原因。
S1211、活动管理器向信息获取模块发送第一信息。
S1212、信息获取模块将第一信息存储到存储器中。
在本申请的实施例中,S1211至S1212分别与图7中的S710至S711的实现方式类似,具体内容可参考S710至S711的说明,此处不再赘述。
在本申请的另一些实施例中,电子设备还可以将该第一信息发送到该云服务器上,便于开发人员从云服务器中获取第一信息,分析电子设备对第一界面异常显示的原因。电子设备将第一信息发送到云服务器上与电子设备将该第一信息发送到云服务器上的实现方式类似,具体内容可参考图10中的说明,此处不再赘述。
需要说明的是,在本申请的一些实施例中,在电子设备从其他应用程序的界面切换显示到该第一界面之前,如果检测模块B已经判断第一视图的子视图的数量小于第二阈值,则电子设备在从其他应用程序的界面切换显示第一界面时,测模块B不再针对第一界面执行如图11和图12所示的操作。
示例性的,检测模块B在判断第一视图的子视图的数量小于第二阈值的情况下,可以对第一界面设置已检测标识。该已检测标识用于指示检测模块B已完成对第一视图的子视图的数量小于第二阈值的判断。检测模块B可以根据第一界面是否设置有已检测标识,判断是否对第一界面执行第一视图的子视图的数量是否超过第二阈值的判断。
根据图12所示的方案,在活动管理器完成对ContentFrameLayout加载的情况下,检测模块B判断第一视图的子视图的数量是否超过第二阈值。并在判断第一视图的子视图的数量小于第二阈值的情况下,信息获取模块通过向活动管理器发送信息获取请求,获取到第一信息,并将该第一信息存储在存储器中,和/或将第一信息发送到电子设备的云服务器中。这样,电子设备就可以实现对第一界面异常显示的自动检测。并在检测到第一界面异常显示时,获取第一信息。便于后续开发人员根据该第一信息对第一界面异常显示的原因进行分析。
在本申请的一些实施例中,检测模块可以包括检测模块A,和/或检测模块B。例如,在第一视图的子视图为DecorView时,电子设备可以通过检测模块A执行图7和图9中所提供的方案,判断第一视图的子视图数量是否超过第一阈值。在检测模块A判断第一视图的子视图数量小于第一阈值时,电子设备通过信息获取模块获取第一信息。又如,在第一视图的子视图为ContentFrameLayout时,通过检测模块B执行图11和图12中所提供的方案,判断第一视图的子视图数量是否超过第二阈值。在检测模块B判断第一视图的子视图数量小于第二阈值时,电子设备通过信息获取模块获取第一信息。又如,在第一视图的子视图包括子视图A集合和子视图B集合,该子视图A集合包括DecorView,该子视图B集合包括ContentFrameLayout时,电子设备可以通过检测模块A执行图7和图9中所提供的方案,通过检测模块B执行图11和图12中所提供的方案。并在判断子视图A集合的子视图的数量小于第一阈值,或者子视图B集合的数量小于第二阈值时,电子设备通过信息获取模块获取第一信息。电子设备还可以通过信息获取模块获取第一界面异常显示时对应的第一信息,并将该第一信息存储在存储器中,和/或将第一信息发送到电子设备的云服务器中。便于后续开发人员根据该第一信息对第一界面异常显示的原因进行分析。
上述主要从电子设备的角度对本申请实施例提供的方案进行了介绍。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图13示出了的一种电子设备1300的组成示意图。如图13所示,该电子设备1300可以包括:处理器1301,存储器1302,以及显示屏1303。该存储器1302用于存储计算机执行指令,显示屏1303用于显示电子设备中应用程序的图像界面。示例性的,在一些实施例中,当该处理器1301执行该存储器1302存储的指令时,可以使得该电子设备1300执行上述实施例中任一种所示的技术方案。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图14示出了的一种芯片系统1400的组成示意图。该芯片系统1400可以包括:处理器1401和通信接口1402,用于支持相关设备实现上述实施例中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存电子设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。需要说明的是,在本申请的一些实现方式中,该通信接口1402也可称为接口电路。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(d igita l subscr iber l ine,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(so l id state di sk,SSD))等。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (19)
1.一种信息获取方法,其特征在于,所述方法应用于电子设备,所述电子设备配置有显示屏,所述电子设备安装有第一应用程序,在所述第一应用程序运行时,所述电子设备的显示屏显示与所述第一应用程序对应的第一界面;所述方法包括:
接收用户的第一操作,所述第一操作用以指示运行所述第一应用程序;
响应于所述第一操作,所述电子设备加载第一视图;所述第一视图用于实现所述第一界面的显示,所述第一视图包括至少一个子视图;
在所述第一视图加载完成后,获取所述第一视图包括的子视图的数量;确定所述第一视图的子视图的数量小于预设阈值,获取并存储第一信息;
所述第一视图的子视图包括DecorView以及ContentFrameLayout中的至少一项;所述预设阈值与所述第一视图的子视图相关;所述第一信息包括:所述第一应用程序的名称以及所述第一视图的子视图的数量;
所述第一视图加载完成后,所述显示屏显示第二界面,所述第二界面与所述第一界面不同;所述第一信息对应于所述第二界面;
所述第一界面包括至少一个显示元素;所述第二界面与所述第一界面不同,包括:所述第二界面显示有第一界面的部分显示元素,或者,所述第二界面不显示所述第一界面的任何显示元素。
2.根据权利要求1所述的方法,其特征在于,所述第一视图的子视图包括DecorView,所述第一视图中不同于所述DecorView的子视图以所述DecorView为根节点;
所述预设阈值为与所述DecorView对应的第一阈值;
所述第一视图的子视图的数量小于预设阈值,包括:
所述第一视图的子视图的数量小于所述第一阈值。
3.根据权利要求1所述的方法,其特征在于,所述第一视图的子视图包括ContentFrameLayout;所述第一视图中不同于所述ContentFrameLayout的子视图以所述ContentFrameLayout为根节点;
所述预设阈值为与所述ContentFrameLayout对应的第二阈值;
所述第一视图的子视图的数量小于预设阈值,包括:
所述第一视图的子视图的数量小于所述第二阈值。
4.根据权利要求1所述的方法,其特征在于,所述第一视图的子视图包括第一子视图集合和第二子视图集合;
其中,所述第一子视图集合包括DecorView,所述第一子视图集合中不同于所述DecorView的子视图以所述DecorView为根节点;所述第二子视图集合包括ContentFrameLayout,所述第二子视图集合中不同于所述ContentFrameLayout的子视图以所述ContentFrameLayout为根节点;
所述预设阈值包括与所述DecorView对应的第一阈值,以及与所述ContentFrameLayout对应的第二阈值;
所述第一视图的子视图的数量小于预设阈值,包括:
所述第一子视图集合的子视图的数量小于所述第一阈值,或者所述第二子视图集合的数量小于所述第二阈值。
5.根据权利要求3或4所述的方法,其特征在于,在获取所述第一视图包括的子视图数量之前,所述方法还包括:
确定所述第一应用程序不包括在预设的应用白名单中,所述应用白名单包括至少一个应用程序;在所述应用白名单中的任一个应用程序运行时,所述电子设备不会加载所述ContentFrameLayout。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取所述第一视图的子视图的数量,包括:
针对所述第一视图中的每个子视图,执行遍历处理;
所述电子设备配置有计数器,所述遍历处理包括:
判断第一子视图的标识为第一值或第二值,第一值指示所述第一子视图存在至少一个第二子视图,所述第二子视图是所述第一子视图的子节点;所述第一子视图是所述第一视图中的任一个子视图;
在所述第一子视图的标识为所述第一值的情况下,确定所述第二子视图的数量为第三值,所述计数器加所述第三值;
完成对所述第一视图中的每个子视图的遍历处理后,将所述计数器的值加1确定为所述第一视图的子视图的数量。
7.根据权利要求6所述的方法,其特征在于,所述电子设备包括存储器,所述存储器的第一地址用于存储所述第一视图;
在所述获取所述第一视图包括的子视图的数量之前,所述方法还包括:
从所述第一地址获取所述第一视图。
8.根据权利要求7所述的方法,其特征在于,在从所述第一地址获取所述第一视图之前,所述方法还包括:
执行第一时长的延时线程。
9.根据权利要求8所述的方法,其特征在于,所述从所述第一地址获取所述第一视图包括:
在所述第一时长的延时线程执行结束时,从所述第一地址获取所述第一视图。
10.根据权利要求7-9中任一项所述的方法,其特征在于,在所述从所述第一地址获取所述第一视图之前,所述方法还包括:
判断所述第一界面显示在焦点窗口;所述第一界面显示在焦点窗口对应于所述第一界面显示在当前所述电子设备的显示屏上;
其中,在判断所述第一界面显示在焦点窗口时,所述第一时长的延时线程执行结束。
11.根据权利要求10所述的方法,其特征在于,所述电子设备包括活动管理器,所述活动管理器用于加载所述第一视图;所述判断所述第一界面显示在焦点窗口包括:
在所述活动管理器未执行onPause()方法时,判断所述第一界面为焦点窗口。
12.根据权利要求11所述的方法,其特征在于,所述电子设备包括信息获取模块,所述电子设备通过所述信息获取模块获取所述第一信息,在所述获取所述第一信息之前,所述方法还包括:
向所述信息获取模块发送第一指令;所述第一指令用于指示所述信息获取模块获取所述第一信息。
13.根据权利要求12所述的方法,其特征在于,所述获取所述第一信息包括:
所述信息获取模块接收到所述第一指令后,发送信息获取请求;所述信息获取请求用于指示所述活动管理器返回所述第一信息。
14.根据权利要求11-13中任一项所述的方法,其特征在于,在所述执行第一时长的延时线程之前,所述方法还包括:
确定所述第一视图加载完成。
15.根据权利要求14所述的方法,其特征在于,所述确定所述第一视图加载完成包括:
向所述活动管理器发送回调请求;
其中,所述回调请求用于指示所述活动管理器在执行第一函数时返回回调信息;所述第一函数在所述第一视图加载完成后执行;所述回调信息用于指示所述第一视图加载完成;
在接收到回调信息时,确定所述第一视图加载完成。
16.根据权利要求1-4中任一项所述的方法,其特征在于,所述电子设备配置有云服务器,所述存储第一信息包括:
将所述第一信息存储到所述存储器中;或者,将所述第一信息存储到所述云服务器中。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
响应于所述第一操作,所述电子设备加载第一activity;所述第一activity对应于所述第一界面;所述第一信息还包括第一activity的类名。
18.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器,一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器存储有计算机指令;所述电子设备还包括显示屏,所述显示屏用于显示电子设备中应用程序的用户界面;
当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-17中任一项所述的方法。
19.一种芯片系统,其特征在于,所述芯片系统包括处理器和通信接口;所述处理器用于从存储介质中调用并运行该存储介质中存储的计算机程序,执行如权利要求1-17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310807289.7A CN117724780B (zh) | 2023-07-03 | 2023-07-03 | 一种信息获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310807289.7A CN117724780B (zh) | 2023-07-03 | 2023-07-03 | 一种信息获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117724780A CN117724780A (zh) | 2024-03-19 |
CN117724780B true CN117724780B (zh) | 2024-09-27 |
Family
ID=90202142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310807289.7A Active CN117724780B (zh) | 2023-07-03 | 2023-07-03 | 一种信息获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724780B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083934A (zh) * | 2019-06-13 | 2020-12-15 | 青岛海信移动通信技术股份有限公司 | 一种终端和处理方法 |
CN112698756A (zh) * | 2019-10-23 | 2021-04-23 | 华为终端有限公司 | 用户界面的显示方法及电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150027865A (ko) * | 2013-08-29 | 2015-03-13 | 에스케이플래닛 주식회사 | 애플리케이션의 자동 검증을 위한 단말장치, 검증결과 제공 장치, 자동 검증 시스템, 자동 검증 방법 및 컴퓨터로 판독 가능한 기록 매체 |
CN111459715A (zh) * | 2019-01-20 | 2020-07-28 | 华为技术有限公司 | 应用异常恢复 |
CN112783380A (zh) * | 2019-11-04 | 2021-05-11 | 海信视像科技股份有限公司 | 显示设备和方法 |
CN114237778B (zh) * | 2020-09-09 | 2025-03-07 | 华为技术有限公司 | 界面显示方法及电子设备 |
CN114911377A (zh) * | 2021-01-28 | 2022-08-16 | 华为终端有限公司 | 显示方法和电子设备 |
CN115373930A (zh) * | 2021-05-18 | 2022-11-22 | 武汉斗鱼鱼乐网络科技有限公司 | 视图的管理方法、装置、电子设备及存储介质 |
CN115373553A (zh) * | 2021-05-19 | 2022-11-22 | 华为技术有限公司 | 一种显示方法及终端设备 |
CN116954774A (zh) * | 2022-04-20 | 2023-10-27 | 华为技术有限公司 | 界面显示方法及电子设备 |
CN116088725B (zh) * | 2022-06-20 | 2024-06-04 | 荣耀终端有限公司 | 界面显示方法和装置 |
CN116048325A (zh) * | 2022-06-30 | 2023-05-02 | 荣耀终端有限公司 | 一种应用异常行为的处理方法、电子设备及存储介质 |
-
2023
- 2023-07-03 CN CN202310807289.7A patent/CN117724780B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083934A (zh) * | 2019-06-13 | 2020-12-15 | 青岛海信移动通信技术股份有限公司 | 一种终端和处理方法 |
CN112698756A (zh) * | 2019-10-23 | 2021-04-23 | 华为终端有限公司 | 用户界面的显示方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117724780A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12032820B2 (en) | Fast data copying method and electronic device | |
CN115174733B (zh) | 一种界面显示方法、装置及设备 | |
US20170011010A1 (en) | Method for displaying web content and electronic device supporting the same | |
US20210109644A1 (en) | Display method when application is exited and terminal | |
CN114095610B (zh) | 一种通知消息处理方法及计算机可读存储介质 | |
CN108780400A (zh) | 数据处理方法及电子设备 | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN111935353B (zh) | 移动终端及其短信显示方法 | |
CN117724780B (zh) | 一种信息获取方法 | |
US20230139886A1 (en) | Device control method and device | |
CN116761080B (zh) | 图像数据的处理方法和终端设备 | |
CN116055617B (zh) | 消息的通知方法、电子设备、计算机存储介质和芯片系统 | |
CN115017487B (zh) | 一种电子设备登录账号的切换方法及电子设备 | |
CN113608610B (zh) | 交互控制方法、电子设备及系统 | |
CN113900740A (zh) | 加载多项列表数据的方法及装置 | |
CN118113192A (zh) | 一种终端设备、长截屏方法和存储介质 | |
CN116737037B (zh) | 界面显示中的栈管理方法及相关装置 | |
CN113536387A (zh) | 一种检测内核数据完整性的终端和方法 | |
CN116302295B (zh) | 一种界面显示方法 | |
CN116088955B (zh) | 进程处理方法和终端设备 | |
CN116701134B (zh) | 一种数据处理方法和电子设备 | |
CN115328347B (zh) | 界面展示方法、装置、终端设备和存储介质 | |
CN116541895B (zh) | 一种电路板检测方法、电子装置及芯片系统 | |
CN117891647B (zh) | 日志处理方法、电子设备和计算机可读存储介质 | |
CN117055988B (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 | ||
CP03 | Change of name, title or address |
Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Terminal Co.,Ltd. Country or region after: China Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Patentee before: Honor Device Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |